diff --git a/.github/readme/blueprint.md b/.github/readme/blueprint.md new file mode 100644 index 00000000..f4d8ae9e --- /dev/null +++ b/.github/readme/blueprint.md @@ -0,0 +1,96 @@ +# Contentstack Extensions SDK + +The Extensions SDK allows you to extend Contentstack’s UI by helping you create Custom Fields, Custom Widgets, and Dashboard Widgets. + +**Custom Fields** enable users to introduce simpler interface controls, such as color picker, code editor, video selector, and more, or maybe complex micro web applications such as Shopify or Snipkart. Because of their dissociated nature, custom fields can be reused multiple times. + +**Custom Widgets** are like micro content-processing apps that help you analyze the entry content and provide recommendations. Some of the useful widgets you can create using this type of extension are text intelligence, SEO recommendations, language translation, grammar checker and more. + +**Dashboard Widgets** let you add powerful widgets to the stack’s dashboard that let users do more from a centralized location. Some examples of this type of extension include personal notes, recently published content, notification centre, and stack usage summary. + +This SDK overview document introduces you to the concept of custom extensions. + +## Getting started + +Include the compiled version of the extension client library by adding the following line to your application. + +```html + +``` + +## Extensions examples + +### Custom Fields + +Some of the examples of custom field extensions are: + +- **[Color Picker](https://github.com/contentstack/extensions/tree/master/color-picker)** - Displays a native color picker polyfill that allows users to select color as input value and saves the color code in the backend + +- **[Ace Editor](https://github.com/contentstack/extensions/tree/master/ace-editor)** - Displays a code editor written in JavaScript, allowing you to edit HTML, PHP, JavaScript and more easily + +- **[JSON Editor](https://github.com/contentstack/extensions/tree/master/json-editor)** - Displays a simple editor that lets you view, edit and format JSON code within the field of your content type + +- **[Key-value Field](https://github.com/contentstack/extensions/tree/master/key-value-field)** - Lets you add key-value as input value of a field of your content type + +- **[Progress Bar](https://github.com/contentstack/extensions/tree/master/progress-bar)** - Allows users to set value of a field by sliding the progress bar to the left or right + +- **[Star Ratings](https://github.com/contentstack/extensions/tree/master/ratings)** - Lets you provide rating by choosing number of stars + +- **[Brightcove](https://github.com/contentstack/extensions/tree/master/brightcove)** - Lets you fetch and display your Brightcove videos into a field of your content type. + +- **[Shopify](https://github.com/contentstack/extensions/tree/master/shopify)** - Lets you load products of your Shopify store into the field of your content type. + +- **[Egnyte](https://github.com/contentstack/extensions/tree/master/egnyte)** - Allows you to fetch files of your Egnyte account and display them into a field of your content type. + +- **[Ooyala](https://github.com/contentstack/extensions/tree/master/ooyala)** - Lets you fetch and display your Ooyala videos into a field of your content type. + +- **[Optimizely](https://github.com/contentstack/extensions/tree/master/optimizely)** - Lets you serve personalized content by allowing you to select the audience for each entry. + +- **[Youtube](https://github.com/contentstack/extensions/tree/master/youtube)** - Lets you fetch and display your Youtube videos into a field of your content type. + +- **[External API Lookup](https://github.com/contentstack/extensions/tree/master/external-api-lookup-template)** - Lets you fetch data from an external API and display the data as possible values for the field on an entry page in Contentstack. + +### Custom Widgets + +Some of the examples of custom widget extensions are: + +- [**Text Intelligence**](https://github.com/contentstack/extensions/tree/master/text-intelligence) - Lets you use MonekyLearn APIs to provide helpful recommendations such as content summarizer, keyword extractor, retail classifier, etc. + +- [**Google Analytics**](https://github.com/contentstack/extensions/tree/master/google-analytics) - Displays the traffic analysis and statistics of your entry (using Google Analytics data) on the sidebar of the entry. + +- [**Optimizely Experiments**](https://github.com/contentstack/extensions/tree/master/optimizely-experiments) - Lets you retrieve and display Optimizely Experiments and their details in your entry. + +### Dashboard Widgets + +Some of the examples of the dashboard widget extensions are: + +- [**Google Analytics**](https://github.com/contentstack/extensions/tree/master/dashboard-widget-google-analytics) - Displays the traffic analysis and statistics of your site on the stack dashboard. + +## Using Contentstack styles + +Extensions are rendered within an iframe, you will need to include the ui-extension-sdk.min.css library within your custom extension in order to use any of the styles provided by Contentstack. + +Include the CSS file in your extension code as follows: + +```html + +``` + +For more information on styling your extension, refer to our [style guide](https://www.contentstack.com/docs/extensions/style-guide/). + +## More information + +- [Extensions SDK API reference](https://github.com/contentstack/ui-extensions-sdk/blob/2.2.0/docs/ui-extensions-api-reference.md) +- [Extensions documentation ](https://www.contentstack.com/docs/guide/extensions) + +{{template:license}} diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 00000000..44ef28a0 --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,33 @@ +# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created +# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages + +name: Node.js Package + +on: + release: + types: [created] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: 16 + - run: npm ci + - run: npm test + + publish-npm: + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: 16 + registry-url: https://registry.npmjs.org/ + - run: npm ci + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} diff --git a/.github/workflows/update-copyright-years-in-license-file.yml b/.github/workflows/update-copyright-years-in-license-file.yml new file mode 100644 index 00000000..3bab84d3 --- /dev/null +++ b/.github/workflows/update-copyright-years-in-license-file.yml @@ -0,0 +1,17 @@ +name: Update copyright year(s) in license file + +on: + schedule: + - cron: "0 3 1 1 *" + workflow_dispatch: + +jobs: + run: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: FantasticFiasco/action-update-license-year@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/CODEOWNERS b/CODEOWNERS index da6db11c..bba0ea58 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -* @contentstack/security-admin @contentstack/ecosystem-admin +* @contentstack/security-admin @contentstack/ghost-admin diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..4ba8915e --- /dev/null +++ b/LICENSE @@ -0,0 +1,8 @@ +The MIT License (MIT) +Copyright © 2019-2022 Contentstack. All Rights Reserved + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 6050fb9d..c9fe1f77 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ + +[](#contentstack-extensions-sdk) # Contentstack Extensions SDK -The Extensions SDK allows you to extend Contentstack’s UI by helping you create Custom Fields, Custom Widgets, and Dashboard Widgets. +The Extensions SDK allows you to extend Contentstack’s UI by helping you create Custom Fields, Custom Widgets, and Dashboard Widgets. **Custom Fields** enable users to introduce simpler interface controls, such as color picker, code editor, video selector, and more, or maybe complex micro web applications such as Shopify or Snipkart. Because of their dissociated nature, custom fields can be reused multiple times. @@ -11,80 +13,104 @@ The Extensions SDK allows you to extend Contentstack’s UI by helping you creat This SDK overview document introduces you to the concept of custom extensions. + +[](#getting-started) + ## Getting started Include the compiled version of the extension client library by adding the following line to your application. ```html - + ``` + +[](#extensions-examples) + ## Extensions examples + ### Custom Fields + Some of the examples of custom field extensions are: -- **[Color Picker](https://github.com/contentstack/extensions/tree/master/color-picker)** - Displays a native color picker polyfill that allows users to select color as input value and saves the color code in the backend +- **[Color Picker](https://github.com/contentstack/extensions/tree/master/color-picker)** - Displays a native color picker polyfill that allows users to select color as input value and saves the color code in the backend -- **[Ace Editor](https://github.com/contentstack/extensions/tree/master/ace-editor)** - Displays a code editor written in JavaScript, allowing you to edit HTML, PHP, JavaScript and more easily +- **[Ace Editor](https://github.com/contentstack/extensions/tree/master/ace-editor)** - Displays a code editor written in JavaScript, allowing you to edit HTML, PHP, JavaScript and more easily -- **[JSON Editor](https://github.com/contentstack/extensions/tree/master/json-editor)** - Displays a simple editor that lets you view, edit and format JSON code within the field of your content type +- **[JSON Editor](https://github.com/contentstack/extensions/tree/master/json-editor)** - Displays a simple editor that lets you view, edit and format JSON code within the field of your content type -- **[Key-value Field](https://github.com/contentstack/extensions/tree/master/key-value-field)** - Lets you add key-value as input value of a field of your content type +- **[Key-value Field](https://github.com/contentstack/extensions/tree/master/key-value-field)** - Lets you add key-value as input value of a field of your content type -- **[Progress Bar](https://github.com/contentstack/extensions/tree/master/progress-bar)** - Allows users to set value of a field by sliding the progress bar to the left or right +- **[Progress Bar](https://github.com/contentstack/extensions/tree/master/progress-bar)** - Allows users to set value of a field by sliding the progress bar to the left or right -- **[Star Ratings](https://github.com/contentstack/extensions/tree/master/ratings)** - Lets you provide rating by choosing number of stars +- **[Star Ratings](https://github.com/contentstack/extensions/tree/master/ratings)** - Lets you provide rating by choosing number of stars -- **[Brightcove](https://github.com/contentstack/extensions/tree/master/brightcove)** - Lets you fetch and display your Brightcove videos into a field of your content type. +- **[Brightcove](https://github.com/contentstack/extensions/tree/master/brightcove)** - Lets you fetch and display your Brightcove videos into a field of your content type. -- **[Shopify](https://github.com/contentstack/extensions/tree/master/shopify)** - Lets you load products of your Shopify store into the field of your content type. +- **[Shopify](https://github.com/contentstack/extensions/tree/master/shopify)** - Lets you load products of your Shopify store into the field of your content type. -- **[Egnyte](https://github.com/contentstack/extensions/tree/master/egnyte)** - Allows you to fetch files of your Egnyte account and display them into a field of your content type. +- **[Egnyte](https://github.com/contentstack/extensions/tree/master/egnyte)** - Allows you to fetch files of your Egnyte account and display them into a field of your content type. -- **[Ooyala](https://github.com/contentstack/extensions/tree/master/ooyala)** - Lets you fetch and display your Ooyala videos into a field of your content type. +- **[Ooyala](https://github.com/contentstack/extensions/tree/master/ooyala)** - Lets you fetch and display your Ooyala videos into a field of your content type. -- **[Optimizely](https://github.com/contentstack/extensions/tree/master/optimizely)** - Lets you serve personalized content by allowing you to select the audience for each entry. +- **[Optimizely](https://github.com/contentstack/extensions/tree/master/optimizely)** - Lets you serve personalized content by allowing you to select the audience for each entry. -- **[Youtube](https://github.com/contentstack/extensions/tree/master/youtube)** - Lets you fetch and display your Youtube videos into a field of your content type. +- **[Youtube](https://github.com/contentstack/extensions/tree/master/youtube)** - Lets you fetch and display your Youtube videos into a field of your content type. -- **[External API Lookup](https://github.com/contentstack/extensions/tree/master/external-api-lookup-template)** - Lets you fetch data from an external API and display the data as possible values for the field on an entry page in Contentstack. +- **[External API Lookup](https://github.com/contentstack/extensions/tree/master/external-api-lookup-template)** - Lets you fetch data from an external API and display the data as possible values for the field on an entry page in Contentstack. ### Custom Widgets + Some of the examples of custom widget extensions are: -- [**Text Intelligence**](https://github.com/contentstack/extensions/tree/master/text-intelligence) - Lets you use MonekyLearn APIs to provide helpful recommendations such as content summarizer, keyword extractor, retail classifier, etc. +- [**Text Intelligence**](https://github.com/contentstack/extensions/tree/master/text-intelligence) - Lets you use MonekyLearn APIs to provide helpful recommendations such as content summarizer, keyword extractor, retail classifier, etc. -- [**Google Analytics**](https://github.com/contentstack/extensions/tree/master/google-analytics) - Displays the traffic analysis and statistics of your entry (using Google Analytics data) on the sidebar of the entry. +- [**Google Analytics**](https://github.com/contentstack/extensions/tree/master/google-analytics) - Displays the traffic analysis and statistics of your entry (using Google Analytics data) on the sidebar of the entry. -- [**Optimizely Experiments**](https://github.com/contentstack/extensions/tree/master/optimizely-experiments) - Lets you retrieve and display Optimizely Experiments and their details in your entry. +- [**Optimizely Experiments**](https://github.com/contentstack/extensions/tree/master/optimizely-experiments) - Lets you retrieve and display Optimizely Experiments and their details in your entry. ### Dashboard Widgets + Some of the examples of the dashboard widget extensions are: -- [**Google Analytics**](https://github.com/contentstack/extensions/tree/master/dashboard-widget-google-analytics) - Displays the traffic analysis and statistics of your site on the stack dashboard. +- [**Google Analytics**](https://github.com/contentstack/extensions/tree/master/dashboard-widget-google-analytics) - Displays the traffic analysis and statistics of your site on the stack dashboard. + + +[](#using-contentstack-styles) ## Using Contentstack styles + Extensions are rendered within an iframe, you will need to include the ui-extension-sdk.min.css library within your custom extension in order to use any of the styles provided by Contentstack. Include the CSS file in your extension code as follows: ```html - + ``` For more information on styling your extension, refer to our [style guide](https://www.contentstack.com/docs/extensions/style-guide/). -## More information -- [Extensions SDK API reference](https://github.com/contentstack/ui-extensions-sdk/blob/2.2.0/docs/ui-extensions-api-reference.md) -- [Extensions documentation ](https://www.contentstack.com/docs/guide/extensions -) -### The MIT License (MIT) +[](#more-information) + +## More information -Copyright © 2019 [Contentstack](https://www.contentstack.com/). All Rights Reserved +- [Extensions SDK API reference](https://github.com/contentstack/ui-extensions-sdk/blob/2.2.0/docs/ui-extensions-api-reference.md) +- [Extensions documentation ](https://www.contentstack.com/docs/guide/extensions) -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +[](#license) -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +## License + +Licensed under [MIT](https://opensource.org/licenses/MIT). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..1c5ea16e --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,27 @@ +## Security + +Contentstack takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations. + +If you believe you have found a security vulnerability in any Contentstack-owned repository, please report it to us as described below. + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +Send email to [security@contentstack.com](mailto:security@contentstack.com). + +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + +- Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) +- Full paths of source file(s) related to the manifestation of the issue +- The location of the affected source code (tag/branch/commit or direct URL) +- Any special configuration required to reproduce the issue +- Step-by-step instructions to reproduce the issue +- Proof-of-concept or exploit code (if possible) +- Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +[https://www.contentstack.com/trust/](https://www.contentstack.com/trust/) diff --git a/blueprint.json b/blueprint.json new file mode 100644 index 00000000..7692f418 --- /dev/null +++ b/blueprint.json @@ -0,0 +1,12 @@ +{ + "input": "./.github/readme/blueprint.md", + "headingPrefix": { + "1": "", + "2": "" + }, + "line": "none", + "subresourceIntegrity": { + "js": "sha512-Zvd/rx8MHdudDeY916W50kakd+G/7Z/L4VvG0A/NBWVtmAlD7FPHcWDHc5a4WpGSXoXDgy2SLLDVrASxM7IpNQ==", + "css": "sha512-YFrH8bTpkhIRTf8jgGmJDWvd56LA9GnRzirfMr/K78ldxsyrfedaMxMCZMC9A9d0LzuVFhkkHWo10HWEoAgjjg==" + } +} diff --git a/coverage/html/base.css b/coverage/html/base.css index 417c7adc..f418035b 100644 --- a/coverage/html/base.css +++ b/coverage/html/base.css @@ -152,9 +152,15 @@ table.coverage td span.cline-any { background-position: 0 -10px; } .status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } /* dark red */ .red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } .low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} /* medium red */ .cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } /* light red */ @@ -166,19 +172,25 @@ table.coverage td span.cline-any { /* dark green */ .status-line.high, .high .cover-fill { background:rgb(77,146,33) } .high .chart { border:1px solid rgb(77,146,33) } - - -.medium .chart { border:1px solid #666; } -.medium .cover-fill { background: #666; } - -.cbranch-no { background: yellow !important; color: #111; } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } .cstat-skip { background: #ddd; color: #111; } .fstat-skip { background: #ddd; color: #111 !important; } .cbranch-skip { background: #ddd !important; color: #111; } span.cline-neutral { background: #eaeaea; } -.medium { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} .cover-fill, .cover-empty { display:inline-block; diff --git a/coverage/html/block-navigation.js b/coverage/html/block-navigation.js index 0c719038..cc121302 100644 --- a/coverage/html/block-navigation.js +++ b/coverage/html/block-navigation.js @@ -1,63 +1,87 @@ -var jumpToCode = (function init () { - // Classes of code we would like to highlight - var missingCoverageClasses = [ '.cbranch-no', '.cstat-no', '.fstat-no' ]; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selecter that finds elements on the page to which we can jump - var selector = notSelector + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements.item(currentIndex).classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index) - .scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); } - makeCurrent(nextIndex); - } + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } - function goToNext() { - var nextIndex = 0; + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } - if (typeof currentIndex === 'number' && currentIndex < (missingCoverageElements.length - 1)) { - nextIndex = currentIndex + 1; + makeCurrent(nextIndex); } - makeCurrent(nextIndex); - } - - return function jump(event) { - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); } - }; -}()); + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); window.addEventListener('keydown', jumpToCode); diff --git a/coverage/html/favicon.png b/coverage/html/favicon.png new file mode 100644 index 00000000..66918178 Binary files /dev/null and b/coverage/html/favicon.png differ diff --git a/coverage/html/index.html b/coverage/html/index.html index 9e486236..5ce5cc9e 100644 --- a/coverage/html/index.html +++ b/coverage/html/index.html @@ -1,48 +1,68 @@ + + Code coverage report for All files - + + +
-
-

- All files -

-
-
- 100% - Statements - 467/467 -
-
- 100% - Branches - 299/299 -
-
- 100% - Functions - 125/125 -
-
- 100% - Lines - 451/451 -
+
+

All files

+
+ +
+ 100% + Statements + 525/525 +
+ + +
+ 100% + Branches + 338/338 +
+ + +
+ 100% + Functions + 136/136 +
+ + +
+ 100% + Lines + 508/508 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-
+
+
@@ -60,33 +80,39 @@

- + - + - + - + - + - + - + - + - + - + @@ -99,7 +125,9 @@

- + @@ -112,7 +140,9 @@

- + @@ -125,21 +155,22 @@

lib
+
+
100%158/158217/217 100%92/92133/133 100%44/4455/55 100%150/150208/208
lib/stack
+
+
100%103/103102/102 100%78/7876/76 100% 27/27 100%102/102101/101
lib/stack/api
+
+
100% 134/134 100%
lib/stack/api/asset
+
+
100% 27/27 100%
lib/stack/api/content-type
+
+
100% 45/45 100%
-
-
-
- - - - +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/entry.js.html b/coverage/html/lib/entry.js.html index fcdb56e7..72796863 100644 --- a/coverage/html/lib/entry.js.html +++ b/coverage/html/lib/entry.js.html @@ -1,208 +1,298 @@ + + Code coverage report for lib/entry.js - + + +
-
-

- All files / lib entry.js -

-
-
- 100% - Statements - 38/38 -
-
- 100% - Branches - 18/18 -
-
- 100% - Functions - 8/8 -
-
- 100% - Lines - 36/36 -
+
+

All files / lib entry.js

+
+ +
+ 100% + Statements + 73/73 +
+ + +
+ 100% + Branches + 42/42 +
+ + +
+ 100% + Functions + 16/16 +
+ + +
+ 100% + Lines + 70/70 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115  -  -  -  -  -  -  -  -  -  -  -  -  -36x -  -36x +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197          -36x   -36x   -36x   -36x   -36x -45x         +26x   +26x         -3x +26x   +26x   +26x   +26x   +26x +75x     +26x +75x       @@ -212,46 +302,88 @@

      +1x +  +      -15x -15x -15x   -15x -15x -15x -45x -6x -6x     -105x -39x   -36x -36x   -21x -15x   -6x -6x -6x       -3x     +  +  +  +12x 12x +12x +  +12x +  +12x +1x +  +  +11x +11x +11x +11x +31x +8x +4x   +4x   +8x     +82x +23x +  +22x +  +22x +  +22x +  +10x 12x +  +2x +2x +2x +10x +4x 12x +4x +2x +  +2x +2x +  +  +4x +4x +  +  +  +1x +  +10x +  +  +    +10x +10x +10x       @@ -260,15 +392,67 @@

      -6x -6x +  +2x +2x +1x 3x +  +  +1x +  +  +  +  +  +  +  +  +  +  +2x +2x +1x 3x     +1x +  +  +  +  +  +  +  +  +  +  +2x +2x +1x +3x +  +  +1x +  +  +  +  +  +  +  +  +  +  +2x +2x +1x 3x     +1x +  +       

import Field from './field.js';
@@ -302,6 +486,10 @@ 

this._emitter.on('entrySave', (event) => { thisEntry._data = event.data; }); +  + this._emitter.on('entryChange', (event) => { + thisEntry._changedData = event.data; + }); }   /** @@ -315,8 +503,9 @@

    /** - * Gets the field object which allows you to interact with the field. - * This object will have all the same methods and properties of extension.field except for field.setData(). + * Gets the field object for the saved data, which allows you to interact with the field. + * This object will have all the same methods and properties of extension.field. + * Note: For fields initialized using the getFields function, the setData function currently works only for the following fields: as single_line, multi_line, RTE, markdown, select, number, boolean, date, link, and extension of data type text, number, boolean, and date. * @example * var field = entry.getField('field_uid'); * var fieldSchema = field.schema; @@ -331,39 +520,65 @@

const path = uid.split('.'); let value = this._data; let schema = this.content_type.schema; +  + const isDataEmpty = Object.keys(value).length === 0; +  + if (isDataEmpty) { + throw new Error('The data is unsaved. Save the data before requesting the field.'); + }   try { let skipNext = false; + let skipNextTwo = false; path.forEach((key, index) => { if (skipNext) { - skipNext = false; + if (skipNextTwo) { + skipNextTwo = false; + } else { + skipNext = false; + } return; }   schema = schema.find(x => x.uid === key); if (!schema) { throw Error('schema not found'); } +  + console.log('mayhem', value);   value = value[key]; - if (schema.data_type === 'group' && schema.multiple === false +  + if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === false && path.length !== (index + 1)) { schema = schema.schema; - } else if (schema.data_type === 'group' && schema.multiple === true + } else if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === true && path.length !== (index + 1)) { schema = schema.schema; value = value[path[index + 1]]; skipNext = true; + } else if (schema.data_type === 'blocks' && path.length !== (index + 1)) { + let blockId = Object.keys(value[path[index + 1]])[0]; + schema = schema.blocks.find(block => block.uid === blockId); + if (path.length === index + 2) { // complete block value with uid + value = value[path[index + 1]]; + } else { // block value without uid + value = value[path[index + 1]][blockId]; + schema = schema.schema; + } +  + skipNext = true; + skipNextTwo = true; } }); } catch (e) { throw Error('Invalid uid, Field not found'); } -  const fieldIntilaizationDataObject = { data: { uid, value, schema, data_type: schema.data_type } }; const fieldObject = new Field(fieldIntilaizationDataObject, this._connection, this._emitter); + delete fieldObject.onChange; return fieldObject; }   @@ -383,25 +598,76 @@

throw Error('Callback must be a function'); } } +  + /** + * The field.onChange() function is called when another extension programmatically changes the data of the current extension field using the field.setData() function. This function is only available for extension fields that support the following data types: text, number, boolean, or date. + * @param {function} callback The function to be called when an entry is edited/changed. + */ +  +  + onChange(callback) { + const entryObj = this; + if (callback && typeof (callback) === 'function') { + entryObj._emitter.on('entryChange', (event) => { + callback(event.data); + }); + } else { + throw Error('Callback must be a function'); + } + } +  + /** + * The onPublish() function executes the callback function every time an entry has been published with the respective payload. + * @param {function} callback The function to be called when an entry is published. + */ +  +  + onPublish(callback) { + const entryObj = this; + if (callback && typeof (callback) === 'function') { + entryObj._emitter.on('entryPublish', (event) => { + callback(event.data); + }); + } else { + throw Error('Callback must be a function'); + } + } +  + /** + * The onUnPublish() function executes the callback function every time an entry has been unpublished with the respective payload. + * @param {function} callback The function to be called when an entry is un published. + */ +  +  + onUnPublish(callback) { + const entryObj = this; + if (callback && typeof (callback) === 'function') { + entryObj._emitter.on('entryUnPublish', (event) => { + callback(event.data); + }); + } else { + throw Error('Callback must be a function'); + } + } } export default Entry; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/extension.js.html b/coverage/html/lib/extension.js.html index eae672f3..54ed5dc8 100644 --- a/coverage/html/lib/extension.js.html +++ b/coverage/html/lib/extension.js.html @@ -1,156 +1,192 @@ + + Code coverage report for lib/extension.js - + + +
-
-

- All files / lib extension.js -

-
-
- 100% - Statements - 24/24 -
-
- 100% - Branches - 14/14 -
-
- 100% - Functions - 4/4 -
-
- 100% - Lines - 24/24 -
+
+

All files / lib extension.js

+
+ +
+ 100% + Statements + 32/32 +
+ + +
+ 100% + Branches + 22/22 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 100% + Lines + 32/32 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108  +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124        @@ -158,7 +194,7 @@

      -18x +5x       @@ -167,41 +203,41 @@

      -15x +5x   -15x +5x           -15x +5x         -15x +5x         -15x +5x     -15x +5x         -6x +2x     -6x +2x         -6x +2x       @@ -209,45 +245,57 @@

      -15x +5x   -15x +5x         -9x +3x +  +  +  +5x +        -15x +4x         -12x     +5x   +5x +25x +4x +4x     +25x +4x   -15x   -15x -27x -12x -12x +25x +4x     -27x -12x +25x +4x     +25x +4x     +25x +4x +    -9x       @@ -255,6 +303,10 @@

      +1x +  +  +       

import postRobot from 'post-robot';
@@ -346,10 +398,26 @@ 

emitter.emitEvent('entrySave', [{ data: event.data.data }]); emitter.emitEvent('updateFields', [{ data: event.data.data }]); } +  + if (event.data.name === 'entryChange') { + emitter.emitEvent('entryChange', [{ data: event.data.data }]); + } +  + if (event.data.name === 'entryPublish') { + emitter.emitEvent('entryPublish', [{ data: event.data.data }]); + } +  + if (event.data.name === 'entryUnPublish') { + emitter.emitEvent('entryUnPublish', [{ data: event.data.data }]); + }   if (event.data.name === 'dashboardResize') { emitter.emitEvent('dashboardResize', [{ state: event.data.state }]); } +  + if (event.data.name === 'extensionFieldChange') { + emitter.emitEvent('extensionFieldChange', [{ data: event.data.data }]); + } }); }   @@ -364,23 +432,23 @@

    export default Extension; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/field.js.html b/coverage/html/lib/field.js.html index ce5ebae6..1fbc87f5 100644 --- a/coverage/html/lib/field.js.html +++ b/coverage/html/lib/field.js.html @@ -1,143 +1,211 @@ + + Code coverage report for lib/field.js - + + +
-
-

- All files / lib field.js -

-
-
- 100% - Statements - 31/31 -
-
- 100% - Branches - 18/18 -
-
- 100% - Functions - 9/9 -
-
- 100% - Lines - 30/30 -
+
+

All files / lib field.js

+
+ +
+ 100% + Statements + 47/47 +
+ + +
+ 100% + Branches + 27/27 +
+ + +
+ 100% + Functions + 12/12 +
+ + +
+ 100% + Lines + 46/46 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95  +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +1271x +  +  +30x +30x +30x +12x +10x +10x +15x +  +2x +1x +1x +  +  +30x       @@ -148,49 +216,44 @@

      -60x     +30x     -60x     +30x       -60x   -60x -24x -18x -18x -27x   -6x -3x -3x +30x +30x   +30x   -36x +30x   +30x   -60x +30x   -60x +30x   -60x +30x   -60x -63x -63x +30x +51x +51x   -63x -147x +51x +129x     -63x -33x +51x +21x       @@ -202,37 +265,76 @@

      -6x -6x -6x -3x -3x -3x +4x +4x   +4x   +2x   +2x +1x +1x +1x             -21x       +7x +  +  +  +  +  +  +  +1x         -3x       +2x +2x +1x +1x +1x +1x     - 

/** Class representing a field from Contentstack UI. Only available for Custom Field extension */
+1x
+ 
+ 
+ 
+ 
+ 
+ 
const excludedDataTypesForSetField = ['file', 'reference', 'blocks', 'group', 'global_field'];
+ 
+function separateResolvedData(field, value) {
+  let resolvedData = value;
+  let unResolvedData = value;
+  if (field.data_type === 'file') {
+    if (value) {
+      resolvedData = value;
+      unResolvedData = field.schema.multiple === true ?
+        value.map(file => file.uid) :
+        value.uid;
+    } else if (field.schema.multiple === true) {
+      resolvedData = [];
+      unResolvedData = [];
+    }
+  }
+  return { resolvedData, unResolvedData };
+}
  
+/** Class representing a field from Contentstack UI. Only available for Custom Field extension */
 class Field {
   /**
    * @hideconstructor
@@ -254,20 +356,13 @@ 

* @type {Object} */ this.schema = fieldDataObject.data.schema; + this._emitter = emitter;   - if (this.data_type === 'file') { - if (fieldDataObject.data.value) { - this._resolvedData = fieldDataObject.data.value; - this._data = this.schema.multiple === true ? - fieldDataObject.data.value.map(file => file.uid) : - fieldDataObject.data.value.uid; - } else if (this.schema.multiple === true) { - this._resolvedData = []; - this._data = []; - } - } else { - this._data = fieldDataObject.data.value; - } + let separatedData = separateResolvedData(this, fieldDataObject.data.value); +  + this._data = separatedData.unResolvedData; +  + this._resolvedData = separatedData.resolvedData;   this._connection = connection;   @@ -298,6 +393,11 @@

setData(data) { const currentFieldObj = this; const dataObj = { data, uid: currentFieldObj.uid, self: currentFieldObj._self }; +  + if (!currentFieldObj._self && + ((excludedDataTypesForSetField.indexOf(currentFieldObj.data_type) !== -1) || + !currentFieldObj.data_type)) { return Promise.reject(new Error('Cannot call set data for current field type')); } +  return this._connection.sendToParent('setData', dataObj).then(() => { this._data = data; return Promise.resolve(currentFieldObj); @@ -321,27 +421,43 @@

setFocus() { return this._connection.sendToParent('focus'); } -}   + /** + * This function is called when another extension programmatically changes data of this field using field.setData() function, only available for extension field, only support extensions of data type text, number, boolean or date. + * @param {function} callback The function to be called when an entry is published. + */ + onChange(callback) { + const fieldObj = this; + if (callback && typeof (callback) === 'function') { + fieldObj._emitter.on('extensionFieldChange', (event) => { + this._data = event.data; + this._resolvedData = event.data; + callback(event.data); + }); + } else { + throw Error('Callback must be a function'); + } + } +}   export default Field; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/index.html b/coverage/html/lib/index.html index 57efbd83..9b725c7c 100644 --- a/coverage/html/lib/index.html +++ b/coverage/html/lib/index.html @@ -1,48 +1,68 @@ + + Code coverage report for lib - + + +
-
-

- All files lib -

-
-
- 100% - Statements - 158/158 -
-
- 100% - Branches - 92/92 -
-
- 100% - Functions - 44/44 -
-
- 100% - Lines - 150/150 -
+
+

All files lib

+
+ +
+ 100% + Statements + 217/217 +
+ + +
+ 100% + Branches + 133/133 +
+ + +
+ 100% + Functions + 55/55 +
+ + +
+ 100% + Lines + 208/208 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-
+
+
@@ -60,46 +80,54 @@

- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -112,7 +140,9 @@

- + @@ -125,7 +155,9 @@

- + @@ -138,21 +170,22 @@

entry.js
+
+
100%38/3873/73 100%18/1842/42 100%8/816/16 100%36/3670/70
extension.js
+
+
100%24/2432/32 100%14/1422/22 100% 4/4 100%24/2432/32
field.js
+
+
100%31/3147/47 100%18/1827/27 100%9/912/12 100%30/3046/46
index.js
+
+
100% 8/8 100%
store.js
+
+
100% 18/18 100%
window.js
+
+
100% 39/39 100%
-
-
- -
- - - - +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/index.js.html b/coverage/html/lib/index.js.html index dbd2496c..ec5e4464 100644 --- a/coverage/html/lib/index.js.html +++ b/coverage/html/lib/index.js.html @@ -1,111 +1,131 @@ + + Code coverage report for lib/index.js - + + +
-
-

- All files / lib index.js -

-
-
- 100% - Statements - 8/8 -
-
- 100% - Branches - 2/2 -
-
- 100% - Functions - 4/4 -
-
- 100% - Lines - 7/7 -
+
+

All files / lib index.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59  +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59        -9x +3x       @@ -141,11 +161,11 @@

      -9x -6x -3x -3x 3x +2x +1x +1x +1x       @@ -154,7 +174,7 @@

      -3x +1x       @@ -177,9 +197,9 @@

* ContentstackUIExtension.init in the script tag. * @example * HTML - * <script src="https://www.contentstack.com/sdks/contentstack-ui-extensions/2.0.0/ui-extension-sdk.js"></script> - * <link href="https://www.contentstack.com/sdks/contentstack-ui-extensions/2.0.0/ui-extension-sdk.css" rel="stylesheet" > - * @example <caption>Custom Filed</caption> + * <script src="https://www.contentstack.com/sdks/contentstack-ui-extensions/2.2.0/ui-extension-sdk.js"></script> + * <link href="https://www.contentstack.com/sdks/contentstack-ui-extensions/2.2.0/ui-extension-sdk.css" rel="stylesheet" > + * @example <caption>Custom Field</caption> * // javascript * ContentstackUIExtension.init().then(function (extension) { * var value = extension.field.getData() @@ -217,23 +237,23 @@

}   export default ContentstackUIExtension; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/api/asset/index.html b/coverage/html/lib/stack/api/asset/index.html index 22ced7df..2fe515e0 100644 --- a/coverage/html/lib/stack/api/asset/index.html +++ b/coverage/html/lib/stack/api/asset/index.html @@ -1,48 +1,68 @@ + + Code coverage report for lib/stack/api/asset - + + +
-
-

- All files lib/stack/api/asset -

-
-
- 100% - Statements - 27/27 -
-
- 100% - Branches - 19/19 -
-
- 100% - Functions - 11/11 -
-
- 100% - Lines - 26/26 -
+
+

All files lib/stack/api/asset

+
+ +
+ 100% + Statements + 27/27 +
+ + +
+ 100% + Branches + 19/19 +
+ + +
+ 100% + Functions + 11/11 +
+ + +
+ 100% + Lines + 26/26 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-
+
+
@@ -60,7 +80,9 @@

- + @@ -73,21 +95,22 @@

index.js
+
+
100% 27/27 100%
-
-
- -
- - - - +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/api/asset/index.js.html b/coverage/html/lib/stack/api/asset/index.js.html index 03f94888..33a3981e 100644 --- a/coverage/html/lib/stack/api/asset/index.js.html +++ b/coverage/html/lib/stack/api/asset/index.js.html @@ -1,318 +1,335 @@ + + Code coverage report for lib/stack/api/asset/index.js - + + +
-
-

- All files / lib/stack/api/asset index.js -

-
-
- 100% - Statements - 27/27 -
-
- 100% - Branches - 19/19 -
-
- 100% - Functions - 11/11 -
-
- 100% - Lines - 26/26 -
+
+

All files / lib/stack/api/asset index.js

+
+ +
+ 100% + Statements + 27/27 +
+ + +
+ 100% + Branches + 19/19 +
+ + +
+ 100% + Functions + 11/11 +
+ + +
+ 100% + Lines + 26/26 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239  -  -  -9x -  -  -  -  -  -  -  -  -  -  -  -9x -6x +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239  +  +  +1x +  +  +  +  +  +  +  +        3x +2x       +1x   -33x -33x -33x -33x       +11x +11x +11x +11x       @@ -324,22 +341,24 @@

      -9x -9x     -9x   +3x +3x     -24x +3x       -39x +8x       +13x +  +        @@ -347,7 +366,8 @@

      -3x +  +1x       @@ -358,10 +378,10 @@

      -9x 3x +1x   -6x +2x       @@ -477,10 +497,10 @@

      -6x -3x +2x +1x   -3x +1x       @@ -504,18 +524,18 @@

      -6x -3x +2x +1x   -3x +1x         -288x -288x +96x +96x   -33x +11x       @@ -757,23 +777,23 @@

} }); }; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/api/base.js.html b/coverage/html/lib/stack/api/base.js.html index 1f694fe6..c6e55929 100644 --- a/coverage/html/lib/stack/api/base.js.html +++ b/coverage/html/lib/stack/api/base.js.html @@ -1,122 +1,142 @@ + + Code coverage report for lib/stack/api/base.js - + + +
-
-

- All files / lib/stack/api base.js -

-
-
- 100% - Statements - 24/24 -
-
- 100% - Branches - 15/15 -
-
- 100% - Functions - 8/8 -
-
- 100% - Lines - 20/20 -
+
+

All files / lib/stack/api base.js

+
+ +
+ 100% + Statements + 24/24 +
+ + +
+ 100% + Branches + 15/15 +
+ + +
+ 100% + Functions + 8/8 +
+ + +
+ 100% + Lines + 20/20 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64  +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64          -54x -48x +18x +16x       -6x +2x       @@ -125,37 +145,37 @@

      -219x -216x -216x -216x -216x -216x +73x +72x +72x +72x +72x +72x       -54x +18x         -3x -3x +1x +1x       -6x -3x +2x +1x   -3x +1x       -3x +1x       -51x +17x       @@ -163,9 +183,9 @@

      -51x -51x -51x +17x +17x +17x       @@ -232,23 +252,23 @@

.then(onData).catch(onError); } } - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/api/content-type/entry.js.html b/coverage/html/lib/stack/api/content-type/entry.js.html index db97551b..1cfe2e9c 100644 --- a/coverage/html/lib/stack/api/content-type/entry.js.html +++ b/coverage/html/lib/stack/api/content-type/entry.js.html @@ -1,432 +1,452 @@ + + Code coverage report for lib/stack/api/content-type/entry.js - + + +
-
-

- All files / lib/stack/api/content-type entry.js -

-
-
- 100% - Statements - 37/37 -
-
- 100% - Branches - 27/27 -
-
- 100% - Functions - 12/12 -
-
- 100% - Lines - 37/37 -
+
+

All files / lib/stack/api/content-type entry.js

+
+ +
+ 100% + Statements + 37/37 +
+ + +
+ 100% + Branches + 27/27 +
+ + +
+ 100% + Functions + 12/12 +
+ + +
+ 100% + Lines + 37/37 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373  +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373      -9x -9x +1x +1x         -69x -66x -66x +23x +22x +22x       @@ -440,23 +460,23 @@

      -45x -45x +15x +15x     -45x +15x       -78x +26x       -108x +36x       -60x +20x       @@ -648,7 +668,7 @@

      -3x +1x       @@ -660,11 +680,11 @@

      -6x -3x +2x +1x   -3x -3x +1x +1x       @@ -684,11 +704,11 @@

      -6x -3x +2x +1x   -3x -3x +1x +1x       @@ -708,11 +728,11 @@

      -6x -3x +2x +1x   -3x -3x +1x +1x       @@ -742,10 +762,10 @@

      -6x -3x +2x +1x   -3x +1x       @@ -766,24 +786,24 @@

      -6x -3x +2x +1x   -3x -3x +1x +1x         -117x -117x -117x +39x +39x +39x   -69x -66x +23x +22x     -66x +22x       @@ -1159,23 +1179,23 @@

} }); }; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/api/content-type/index.html b/coverage/html/lib/stack/api/content-type/index.html index 6984e8fa..2f77730d 100644 --- a/coverage/html/lib/stack/api/content-type/index.html +++ b/coverage/html/lib/stack/api/content-type/index.html @@ -1,48 +1,68 @@ + + Code coverage report for lib/stack/api/content-type - + + +
-
-

- All files lib/stack/api/content-type -

-
-
- 100% - Statements - 45/45 -
-
- 100% - Branches - 27/27 -
-
- 100% - Functions - 15/15 -
-
- 100% - Lines - 45/45 -
+
+

All files lib/stack/api/content-type

+
+ +
+ 100% + Statements + 45/45 +
+ + +
+ 100% + Branches + 27/27 +
+ + +
+ 100% + Functions + 15/15 +
+ + +
+ 100% + Lines + 45/45 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-
+
+
@@ -60,7 +80,9 @@

- + @@ -73,7 +95,9 @@

- + @@ -86,21 +110,22 @@

entry.js
+
+
100% 37/37 100%
index.js
+
+
100% 8/8 100%
-
-
- -
- - - - +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/api/content-type/index.js.html b/coverage/html/lib/stack/api/content-type/index.js.html index 2ba756fd..476f6882 100644 --- a/coverage/html/lib/stack/api/content-type/index.js.html +++ b/coverage/html/lib/stack/api/content-type/index.js.html @@ -1,96 +1,116 @@ + + Code coverage report for lib/stack/api/content-type/index.js - + + +
-
-

- All files / lib/stack/api/content-type index.js -

-
-
- 100% - Statements - 8/8 -
-
- 100% - Branches - 0/0 -
-
- 100% - Functions - 3/3 -
-
- 100% - Lines - 8/8 -
+
+

All files / lib/stack/api/content-type index.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 100% + Lines + 8/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40  +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40      -9x +1x         -117x +39x       @@ -101,23 +121,23 @@

      -117x -117x +39x +39x             -117x +39x       -288x -288x +96x +96x     -117x +39x       @@ -134,7 +154,7 @@

* @constructor * @hideconstructor * @name Stack#ContentType#Entry - * @version 2.0.0 + * @version 2.2.0 * @desc An entry is the actual piece of content created using one of the defined content types * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#entries| Entries} */ @@ -160,23 +180,23 @@

} }); }; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/api/index.html b/coverage/html/lib/stack/api/index.html index 5e2a7452..a31c046c 100644 --- a/coverage/html/lib/stack/api/index.html +++ b/coverage/html/lib/stack/api/index.html @@ -1,48 +1,68 @@ + + Code coverage report for lib/stack/api - + + +
-
-

- All files lib/stack/api -

-
-
- 100% - Statements - 134/134 -
-
- 100% - Branches - 83/83 -
-
- 100% - Functions - 28/28 -
-
- 100% - Lines - 128/128 -
+
+

All files lib/stack/api

+
+ +
+ 100% + Statements + 134/134 +
+ + +
+ 100% + Branches + 83/83 +
+ + +
+ 100% + Functions + 28/28 +
+ + +
+ 100% + Lines + 128/128 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-
+
+
@@ -60,7 +80,9 @@

- + @@ -73,7 +95,9 @@

- + @@ -86,21 +110,22 @@

base.js
+
+
100% 24/24 100%
query.js
+
+
100% 110/110 100%
-
-
- -
- - - - +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/api/query.js.html b/coverage/html/lib/stack/api/query.js.html index eb8cd2d6..2c40e74a 100644 --- a/coverage/html/lib/stack/api/query.js.html +++ b/coverage/html/lib/stack/api/query.js.html @@ -1,680 +1,700 @@ + + Code coverage report for lib/stack/api/query.js - + + +
-
-

- All files / lib/stack/api query.js -

-
-
- 100% - Statements - 110/110 -
-
- 100% - Branches - 68/68 -
-
- 100% - Functions - 20/20 -
-
- 100% - Lines - 108/108 -
+
+

All files / lib/stack/api query.js

+
+ +
+ 100% + Statements + 110/110 +
+ + +
+ 100% + Branches + 68/68 +
+ + +
+ 100% + Functions + 20/20 +
+ + +
+ 100% + Lines + 108/108 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554  -  -  -  -27x -24x +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554        -3x +9x +8x     -9x   -270x -111x -96x -96x -96x +1x   -15x +  +1x +  +90x +37x +32x +32x +32x +  +5x       -108x -108x -42x -36x -36x 36x 36x +14x +12x +12x +12x +12x   -6x +2x       -108x -21x -18x -18x -18x +36x +7x +6x +6x +6x   -3x +1x       -108x -51x -51x -54x -12x -42x 36x +17x +17x +18x +4x +14x +12x     -51x -3x +17x +1x   -48x +16x   -51x +17x       -216x -84x -72x 72x +28x +24x +24x   -12x +4x       -108x -42x -36x 36x +14x +12x +12x   -6x +2x       @@ -686,11 +706,11 @@

      -54x -54x -54x -54x -54x +18x +18x +18x +18x +18x       @@ -709,7 +729,7 @@

      -54x +18x       @@ -729,7 +749,7 @@

      -54x +18x       @@ -739,7 +759,7 @@

      -54x +18x       @@ -749,7 +769,7 @@

      -54x +18x       @@ -759,7 +779,7 @@

      -54x +18x       @@ -770,7 +790,7 @@

      -54x +18x       @@ -781,7 +801,7 @@

      -54x +18x       @@ -792,7 +812,7 @@

      -54x +18x       @@ -803,7 +823,7 @@

      -54x +18x       @@ -814,7 +834,7 @@

      -54x +18x       @@ -824,7 +844,7 @@

      -54x +18x       @@ -834,7 +854,7 @@

      -54x +18x       @@ -844,7 +864,7 @@

      -54x +18x       @@ -854,7 +874,7 @@

      -54x +18x       @@ -865,7 +885,7 @@

      -54x +18x       @@ -876,7 +896,7 @@

      -54x +18x       @@ -886,7 +906,7 @@

      -54x +18x       @@ -896,7 +916,7 @@

      -54x +18x       @@ -916,7 +936,7 @@

      -54x +18x       @@ -935,7 +955,7 @@

      -54x +18x       @@ -945,7 +965,7 @@

      -54x +18x       @@ -1013,20 +1033,20 @@

      -21x -18x +7x +6x   -18x +6x   -3x +1x       -27x -24x -24x +9x +8x +8x   -3x +1x       @@ -1035,9 +1055,9 @@

      -6x -6x -6x +2x +2x +2x       @@ -1046,11 +1066,11 @@

      -21x -18x -18x +7x +6x +6x   -3x +1x       @@ -1060,11 +1080,11 @@

      -21x -18x -18x +7x +6x +6x   -3x +1x       @@ -1073,8 +1093,8 @@

      -18x -18x +6x +6x       @@ -1084,7 +1104,7 @@

      -45x +15x       @@ -1101,14 +1121,14 @@

      -24x -21x +8x +7x     -21x -21x +7x +7x   -3x +1x       @@ -1118,11 +1138,11 @@

      -21x -18x -18x +7x +6x +6x   -3x +1x       @@ -1131,8 +1151,8 @@

      -9x -9x +3x +3x       @@ -1141,10 +1161,10 @@

      -12x -12x -12x -12x +4x +4x +4x +4x       @@ -1234,7 +1254,7 @@

  /** * Creates an instance of the query - * @version 2.0.0 + * @version 2.2.0 * @hideconstructor */ class Query { @@ -1702,23 +1722,23 @@

}   export default Query; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/index.html b/coverage/html/lib/stack/index.html index b6584d75..8ad737ac 100644 --- a/coverage/html/lib/stack/index.html +++ b/coverage/html/lib/stack/index.html @@ -1,48 +1,68 @@ + + Code coverage report for lib/stack - + + +
-
-

- All files lib/stack -

-
-
- 100% - Statements - 103/103 -
-
- 100% - Branches - 78/78 -
-
- 100% - Functions - 27/27 -
-
- 100% - Lines - 102/102 -
+
+

All files lib/stack

+
+ +
+ 100% + Statements + 102/102 +
+ + +
+ 100% + Branches + 76/76 +
+ + +
+ 100% + Functions + 27/27 +
+ + +
+ 100% + Lines + 101/101 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-
+
+
@@ -60,7 +80,9 @@

- + @@ -73,34 +95,37 @@

- + - + - + - +
index.js
+
+
100% 33/33 100%
utils.js
+
+
100%70/7069/69 100%61/6159/59 100% 17/17 100%70/7069/69
-
-
- -
- - - - +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/index.js.html b/coverage/html/lib/stack/index.js.html index db461736..342ad77b 100644 --- a/coverage/html/lib/stack/index.js.html +++ b/coverage/html/lib/stack/index.js.html @@ -1,198 +1,218 @@ + + Code coverage report for lib/stack/index.js - + + +
-
-

- All files / lib/stack index.js -

-
-
- 100% - Statements - 33/33 -
-
- 100% - Branches - 17/17 -
-
- 100% - Functions - 10/10 -
-
- 100% - Lines - 32/32 -
+
+

All files / lib/stack index.js

+
+ +
+ 100% + Statements + 33/33 +
+ + +
+ 100% + Branches + 17/17 +
+ + +
+ 100% + Functions + 10/10 +
+ + +
+ 100% + Lines + 32/32 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141  +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141        -36x -18x +12x +6x       -36x +12x       @@ -205,8 +225,8 @@

      -288x -288x +96x +96x       @@ -216,7 +236,7 @@

      -288x +96x       @@ -226,7 +246,7 @@

      -288x +96x       @@ -236,7 +256,7 @@

      -3x +1x       @@ -247,11 +267,12 @@

      -12x +4x +1x +  +3x 3x   -9x -9x       @@ -260,11 +281,11 @@

      +3x +3x +3x +3x   -9x -9x -9x -9x       @@ -273,12 +294,12 @@

      +4x +1x   -12x +3x 3x   -9x -9x       @@ -287,11 +308,11 @@

      +3x +3x +3x +3x   -9x -9x -9x -9x       @@ -300,12 +321,11 @@

      +4x +1x   -12x 3x -  -9x -9x +3x       @@ -315,10 +335,10 @@

      -9x -9x -9x -9x +3x +3x +3x +3x       @@ -350,7 +370,7 @@

/** * @constructor * @hideconstructor - * @version 2.0.0 + * @version 2.2.0 * @desc Content type defines the structure or schema of a page or a section of your web or mobile property * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#content-types| ContentType} * @param {string} uid - Uid of contenttype. @@ -359,7 +379,7 @@

this.ContentType = ContentType(connection); /** * @constructor - * @version 2.0.0 + * @version 2.2.0 * @hideconstructor * @desc An initializer is responsible for creating an Asset object. * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#assets| Asset} @@ -463,23 +483,23 @@

}   export default Stack; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/stack/utils.js.html b/coverage/html/lib/stack/utils.js.html index 617d4063..71473f0f 100644 --- a/coverage/html/lib/stack/utils.js.html +++ b/coverage/html/lib/stack/utils.js.html @@ -1,338 +1,355 @@ + + Code coverage report for lib/stack/utils.js - + + +
-
-

- All files / lib/stack utils.js -

-
-
- 100% - Statements - 70/70 -
-
- 100% - Branches - 61/61 -
-
- 100% - Functions - 17/17 -
-
- 100% - Lines - 70/70 -
+
+

All files / lib/stack utils.js

+
+ +
+ 100% + Statements + 69/69 +
+ + +
+ 100% + Branches + 59/59 +
+ + +
+ 100% + Functions + 17/17 +
+ + +
+ 100% + Lines + 69/69 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137  -540x -39x -39x -  -15x -9x -9x -9x -9x -  -6x +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136  +180x +13x +  +5x +3x +3x +3x +3x   +2x   -18x -12x -12x -12x -12x   6x +4x +4x +4x +4x   +2x   -6x   +2x             -6x -6x -3x -3x   +2x +2x +1x +1x   -6x   +2x       -21x -21x -21x -30x -30x -66x -9x -57x +  +7x +7x +7x +10x +10x +22x 3x +19x +1x   -54x +18x       -21x -21x +7x +7x         -147x -147x -12x +49x +49x +4x   -147x +49x       -33x -24x -24x +11x +8x +8x   -9x +3x       -12x -6x -6x +4x +2x +2x   -6x +2x       -12x -6x -6x +4x +2x +2x   -6x +2x       -6x -3x -3x +2x +1x +1x   -3x +1x       -6x -6x +2x +2x       -6x -6x +2x +2x       -6x -6x +2x +2x       -30x -15x -15x -15x +10x +5x +5x +5x   -15x -6x -6x -6x +5x +2x +2x +2x     -9x +3x   -21x +7x       -3x +1x    
export function transform(type) {
   return function () {
-    this._query[type] = this._query[type] || {};
     switch (arguments.length) {
       case 1:
         if (Array.isArray(arguments[0]) || typeof arguments[0] === 'string') {
-          let query = this._query[type].BASE || [];
+          let query = this._query[`${type}[BASE]`] || [];
           query = query.concat(arguments[0]);
-          this._query[type].BASE = query;
+          this._query[`${type}[BASE]`] = query;
           return this;
         }
         throw Error('Kindly provide valid parameters');
  
       case 2:
         if (typeof arguments[0] === 'string' && (Array.isArray(arguments[1]) || typeof arguments[1] === 'string')) {
-          let query = this._query[type][arguments[0]] || [];
+          let query = this._query[`${type}[${arguments[0]}]`] || [];
           query = query.concat(arguments[1]);
-          this._query[type][arguments[0]] = query;
+          this._query[`${type}[${arguments[0]}]`] = query;
           return this;
         }
         throw Error('Kindly provide valid parameters');
@@ -451,23 +468,23 @@ 

export function getReferences() { return this.fetch(`get${this.constructor.module()}References`); } - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/store.js.html b/coverage/html/lib/store.js.html index 1edbce14..f2ecb678 100644 --- a/coverage/html/lib/store.js.html +++ b/coverage/html/lib/store.js.html @@ -1,127 +1,147 @@ + + Code coverage report for lib/store.js - + + +
-
-

- All files / lib store.js -

-
-
- 100% - Statements - 18/18 -
-
- 100% - Branches - 14/14 -
-
- 100% - Functions - 12/12 -
-
- 100% - Lines - 16/16 -
+
+

All files / lib store.js

+
+ +
+ 100% + Statements + 18/18 +
+ + +
+ 100% + Branches + 14/14 +
+ + +
+ 100% + Functions + 12/12 +
+ + +
+ 100% + Lines + 16/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78  -3x +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78  +1x       @@ -131,7 +151,7 @@

      -45x +15x       @@ -140,9 +160,9 @@

      -6x -3x -3x +2x +1x +1x       @@ -151,8 +171,8 @@

      -3x -3x +1x +1x       @@ -164,11 +184,11 @@

      -6x -3x +2x +1x   -3x -3x +1x +1x       @@ -179,9 +199,9 @@

      -9x -6x 3x +2x +1x       @@ -191,8 +211,8 @@

      -3x -3x +1x +1x       @@ -274,23 +294,23 @@

}   export default Store; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/lib/window.js.html b/coverage/html/lib/window.js.html index 365fd8b7..d3488240 100644 --- a/coverage/html/lib/window.js.html +++ b/coverage/html/lib/window.js.html @@ -1,176 +1,195 @@ + + Code coverage report for lib/window.js - + + +
-
-

- All files / lib window.js -

-
-
- 100% - Statements - 39/39 -
-
- 100% - Branches - 26/26 -
-
- 100% - Functions - 7/7 -
-
- 100% - Lines - 37/37 -
+
+

All files / lib window.js

+
+ +
+ 100% + Statements + 39/39 +
+ + +
+ 100% + Branches + 26/26 +
+ + +
+ 100% + Functions + 7/7 +
+ + +
+ 100% + Lines + 37/37 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -1019x -  -  -  -  -  -  -  -  -  -  -45x -45x -45x -45x -45x -45x -  -  -  -  -  -  -  -6x -3x -3x -  +
+

+
-
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +1011x +  +  +  +  +  +  +  +  +  +  +15x +15x +15x +15x +15x +15x +  +  +  +  +  +  +  +2x +1x +1x       @@ -180,20 +199,20 @@

      -9x -9x -3x   -6x -3x 3x 3x +1x   +2x +1x +1x +1x   -3x   -3x +1x   +1x       @@ -203,15 +222,16 @@

      -36x -33x -27x -6x -3x   -3x +12x +11x +9x +2x +1x   -30x +1x +  +10x       @@ -219,13 +239,13 @@

      -9x 3x +1x   -6x -6x -6x -6x +2x +2x +2x +2x       @@ -233,12 +253,12 @@

      -6x -3x +2x +1x   -3x -3x -3x +1x +1x +1x       @@ -343,23 +363,23 @@

}   export default Window; - 

-
- - - - - - - + 
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/coverage/html/prettify.js b/coverage/html/prettify.js index ef51e038..b3225238 100644 --- a/coverage/html/prettify.js +++ b/coverage/html/prettify.js @@ -1 +1,2 @@ +/* eslint-disable */ window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/html/sorter.js b/coverage/html/sorter.js index 6c5034e4..2bb296a8 100644 --- a/coverage/html/sorter.js +++ b/coverage/html/sorter.js @@ -1,5 +1,6 @@ -var addSorting = (function () { - "use strict"; +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; var cols, currentSort = { index: 0, @@ -7,13 +8,46 @@ var addSorting = (function () { }; // returns the summary table element - function getTable() { return document.querySelector('.coverage-summary'); } + function getTable() { + return document.querySelector('.coverage-summary'); + } // returns the thead element of the summary table - function getTableHeader() { return getTable().querySelector('thead tr'); } + function getTableHeader() { + return getTable().querySelector('thead tr'); + } // returns the tbody element of the summary table - function getTableBody() { return getTable().querySelector('tbody'); } + function getTableBody() { + return getTable().querySelector('tbody'); + } // returns the th element for nth column - function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; } + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } // loads all columns function loadColumns() { @@ -33,7 +67,8 @@ var addSorting = (function () { cols.push(col); if (col.sortable) { col.defaultDescSort = col.type === 'number'; - colNode.innerHTML = colNode.innerHTML + ''; + colNode.innerHTML = + colNode.innerHTML + ''; } } return cols; @@ -70,7 +105,7 @@ var addSorting = (function () { // sorts the table using the data for the ith column function sortByIndex(index, desc) { var key = cols[index].key, - sorter = function (a, b) { + sorter = function(a, b) { a = a.data[key]; b = b.data[key]; return a < b ? -1 : a > b ? 1 : 0; @@ -82,7 +117,7 @@ var addSorting = (function () { i; if (desc) { - finalSorter = function (a, b) { + finalSorter = function(a, b) { return -1 * sorter(a, b); }; } @@ -108,7 +143,9 @@ var addSorting = (function () { } // adds sort indicators for current column being sorted function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; } // adds event listeners for all sorter widgets function enableUI() { @@ -117,7 +154,7 @@ var addSorting = (function () { ithSorter = function ithSorter(i) { var col = cols[i]; - return function () { + return function() { var desc = col.defaultDescSort; if (currentSort.index === i) { @@ -130,7 +167,7 @@ var addSorting = (function () { addSortIndicators(); }; }; - for (i =0 ; i < cols.length; i += 1) { + for (i = 0; i < cols.length; i += 1) { if (cols[i].sortable) { // add the click event handler on the th so users // dont have to click on those tiny arrows @@ -144,12 +181,13 @@ var addSorting = (function () { } } // adds sorting functionality to the UI - return function () { + return function() { if (!getTable()) { return; } cols = loadColumns(); - loadData(cols); + loadData(); + addSearchBox(); addSortIndicators(); enableUI(); }; diff --git a/dist/ui-extension-sdk.js b/dist/ui-extension-sdk.js index c0293cdc..0117d84c 100644 --- a/dist/ui-extension-sdk.js +++ b/dist/ui-extension-sdk.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ContentstackUIExtension=t():e.ContentstackUIExtension=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=4)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.transform=function(e){return function(){switch(this._query[e]=this._query[e]||{},arguments.length){case 1:if(Array.isArray(arguments[0])||"string"==typeof arguments[0]){var t=this._query[e].BASE||[];return t=t.concat(arguments[0]),this._query[e].BASE=t,this}throw Error("Kindly provide valid parameters");case 2:if("string"==typeof arguments[0]&&(Array.isArray(arguments[1])||"string"==typeof arguments[1])){var n=this._query[e][arguments[0]]||[];return n=n.concat(arguments[1]),this._query[e][arguments[0]]=n,this}throw Error("Kindly provide valid parameters");default:throw Error("Kindly provide valid parameters")}}},t.merge=function(e,t){var n=e;e&&t&&Object.keys(t).forEach((function(e){n[e]=t[e]}));return n},t.mergeDeep=function(e,t){var n=e,r=this;return function e(t,n){var o=t;Object.keys(n).forEach((function(t){"object"===r._type(n[t])&&r._type(o[t])===r._type(n[t])?e(o[t],n[t]):"array"===r._type(n[t])&&r._type(o[t])===r._type(n[t])?o[t]=o[t].concat(n[t]):o[t]=n[t]}))}(n,t),n},t._type=function(e){var t=void 0===e?"undefined":r(e);"object"===t&&Array.isArray(e)&&(t="array");return t},t.addParam=function(e,t){if(e&&"string"==typeof e&&t&&"string"==typeof t)return this._query[e]=t,this;throw Error("Kindly provide valid parameters.")},t.addQuery=function(e,t){if(e&&t&&"string"==typeof e)return this._query[e]=t,this;throw Error("First argument should be a String.")},t.language=function(e){if(e&&"string"==typeof e)return this._query.locale=e,this;throw Error("Argument should be a String.")},t.environment=function(e){if(e&&"string"==typeof e)return this._query.environment=e,this;throw Error("Argument should be a String.")},t.includeOwner=function(){return this._query.include_owner=!0,this},t.includeContentType=function(){return this._query.include_content_type=!0,this},t.includeSchema=function(){return this._query.include_schema=!0,this},t.includeReference=function(e){if(Array.isArray(e))for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.resolved,n=void 0!==t&&t;return n?this._resolvedData:this._data}},{key:"setFocus",value:function(){return this._connection.sendToParent("focus")}},{key:"onChange",value:function(e){var t=this;if(!e||"function"!=typeof e)throw Error("Callback must be a function");this._emitter.on("extensionFieldChange",(function(n){t._data=n.data,t._resolvedData=n.data,e(n.data)}))}}]),e}();t.default=i},function(e,t,n){"use strict";e.exports=n(5).default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1];try{if(e===window)return!1}catch(e){return!0}try{if(!e)return!0}catch(e){return!0}try{if(e.closed)return!0}catch(e){return!e||e.message!==i}if(t&&function(e){if(!l(e))return!1;try{if(e===window)return!0;if(a(e)&&c(e))return!0;if(d(window)===d(e))return!0}catch(e){}return!1}(e))try{if(e.mockclosed)return!0}catch(e){}try{if(!e.parent||!e.top)return!0}catch(e){}var n=function(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:window).location.protocol===o.ABOUT_PROTOCOL}function u(e){if(e)try{if(e.parent&&e.parent!==e)return e.parent}catch(e){}}function s(e){if(e&&!u(e))try{return e.opener}catch(e){}}function c(e){try{return e&&e.location&&e.location.href,!0}catch(e){}return!1}function f(e){var t=(e=e||window).location;if(!t)throw new Error("Can not read window location");var n=t.protocol;if(!n)throw new Error("Can not read window protocol");if(n===o.FILE_PROTOCOL)return o.FILE_PROTOCOL+"//";if(n===o.ABOUT_PROTOCOL){var r=u(e);return r&&c(r)?f(r):o.ABOUT_PROTOCOL+"//"}var i=t.host;if(!i)throw new Error("Can not read window host");return n+"//"+i}function d(e){var t=f(e=e||window);return t&&e.mockDomain&&0===e.mockDomain.indexOf(o.MOCK_PROTOCOL)?e.mockDomain:t}function l(e){try{if(e===window)return!0}catch(e){}try{var t=Object.getOwnPropertyDescriptor(e,"location");if(t&&!1===t.enumerable)return!1}catch(e){}try{if(a(e)&&c(e))return!0}catch(e){}try{if(f(e)===f(window))return!0}catch(e){}return!1}function h(e,t){if(!e||!t)return!1;var n=u(t);return n?n===e:-1!==function(e){var t=[];try{for(;e.parent!==e;)t.push(e.parent),e=e.parent}catch(e){}return t}(t).indexOf(e)}function y(e){var t=[],n=void 0;try{n=e.frames}catch(t){n=e}var r=void 0;try{r=n.length}catch(e){}if(0===r)return t;if(r){for(var o=0;o>>0)+"__"+c,function(){if(!window.WeakMap)return!1;if(!window.Object.freeze)return!1;try{var e=new window.WeakMap,t={};return window.Object.freeze(t),e.set(t,"__testvalue__"),"__testvalue__"===e.get(t)}catch(e){return!1}}())try{this.weakmap=new window.WeakMap}catch(e){}this.keys=[],this.values=[]}return e.prototype._cleanupClosedWindows=function(){for(var e=this.weakmap,t=this.keys,n=0;n1&&void 0!==arguments[1]?arguments[1]:1;if(t>=3)return"stringifyError stack overflow";try{if(!e)return"";if("string"==typeof e)return e;if(e instanceof Error){var n=e&&e.stack,r=e&&e.message;if(n&&r)return-1!==n.indexOf(r)?n:r+"\n"+n;if(n)return n;if(r)return r}return"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}catch(e){return"Error while stringifying error: "+p(e,t+1)}}var v=function(e){if(!e)return e;var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}};function m(){}function _(){var e="0123456789abcdef";return"xxxxxxxxxx".replace(/./g,(function(){return e.charAt(Math.floor(Math.random()*e.length))}))}function w(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(n>=100)throw new Error("Self-referential object passed, or object contained too many layers");var r=void 0;if("object"!==(void 0===e?"undefined":y(e))||null===e||Array.isArray(e)){if(!Array.isArray(e))throw new TypeError("Invalid type: "+(void 0===e?"undefined":y(e)));r=[]}else r={};return function(e,t){Array.isArray(e)?function(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=_(),i=Object(o.isPopup)()?d.WINDOW_TYPES.POPUP:Object(o.isIframe)()?d.WINDOW_TYPES.IFRAME:d.WINDOW_TYPES.FULLPAGE,a=Object(o.getDomain)(window);return I({},t,n,{sourceDomain:a,id:t.id||r,windowType:i})}(e,t,{data:function(e,n,r){return w({obj:t.data},(function(t,r){return"function"==typeof t?j(e,n,t,r.toString()):t instanceof Error?(o=t,{__type__:d.SERIALIZATION_TYPES.ERROR,__message__:p(o),__code__:o.code}):window.Promise&&t instanceof window.Promise?function(e,t,n,r){return{__type__:d.SERIALIZATION_TYPES.PROMISE,__then__:j(e,t,(function(e,t){return n.then(e,t)}),r+".then")}}(e,n,t,r.toString()):O.isPromise(t)?function(e,t,n,r){return{__type__:d.SERIALIZATION_TYPES.ZALGO_PROMISE,__then__:j(e,t,(function(e,t){return n.then(e,t)}),r+".then")}}(e,n,t,r.toString()):g(t)?(i=t,{__type__:d.SERIALIZATION_TYPES.REGEX,__source__:i.source}):void 0;var o,i})).obj}(e,n),domain:n}),e===window&&!h.ALLOW_SAME_ORIGIN)throw new Error("Attemping to send message to self");if(Object(o.isWindowClosed)(e))throw new Error("Window is closed");var i=[],a=function(e,t,n){var r=void 0,o=void 0;try{if("{}"!==JSON.stringify({})&&(r=Object.prototype.toJSON,delete Object.prototype.toJSON),"{}"!==JSON.stringify({}))throw new Error("Can not correctly serialize JSON objects");if("[]"!==JSON.stringify([])&&(o=Array.prototype.toJSON,delete Array.prototype.toJSON),"[]"!==JSON.stringify([]))throw new Error("Can not correctly serialize JSON objects")}catch(e){throw new Error("Can not repair JSON.stringify: "+e.message)}var i=JSON.stringify.call(this,e,null,2);try{r&&(Object.prototype.toJSON=r),o&&(Array.prototype.toJSON=o)}catch(e){throw new Error("Can not repair JSON.stringify: "+e.message)}return i}(((r={})[d.WINDOW_PROPS.POSTROBOT]=t,r));return O.map(Object.keys(L),(function(t){return O.try((function(){if(!h.ALLOWED_POST_MESSAGE_METHODS[t])throw new Error("Strategy disallowed: "+t);return L[t](e,a,n)})).then((function(){return i.push(t+": success"),!0}),(function(e){return i.push(t+": "+p(e)+"\n"),!1}))})).then((function(e){var n=e.some(Boolean),r=t.type+" "+t.name+" "+(n?"success":"error")+":\n - "+i.join("\n - ")+"\n";if(!n)throw new Error(r)}))}))}function M(e){return S.responseListeners[e]}function W(e){delete S.responseListeners[e]}function q(e){return Boolean(S.erroredResponseListeners[e])}function N(e){var t=e.name,n=e.win,r=e.domain;if(n===d.WILDCARD&&(n=null),r===d.WILDCARD&&(r=null),!t)throw new Error("Name required to get request listener");var i=S.requestListeners[t];if(i)for(var a=0,u=[n,S.WINDOW_WILDCARD],s=null==u?0:u.length;a1&&void 0!==arguments[1]?arguments[1]:5e3,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Window",r=S.readyPromises.get(e);return r||(r=new O,S.readyPromises.set(e,r),-1!==t&&setTimeout((function(){return r.reject(new Error(n+" did not load after "+t+"ms"))}),t),r)}(a,e.timeout||h.CHILD_WINDOW_TIMEOUT)})).then((function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).origin;if(g(r)&&!e)return C(a)})).then((function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).origin;if(g(r)){if(!Object(o.matchDomain)(r,n))throw new Error("Remote window domain "+n+" does not match regex: "+r.toString());r=n}if("string"!=typeof r&&!Array.isArray(r))throw new TypeError("Expected domain to be a string or array");var i=r;return new O((function(n,r){var l=void 0;if(e.fireAndForget||function(e,t){S.responseListeners[e]=t}(u,l={name:t,window:a,domain:i,respond:function(e,t){e||(s=!0,c.splice(c.indexOf(f,1))),e?r(e):n(t)}}),x(a,{type:d.POST_MESSAGE_TYPE.REQUEST,hash:u,name:t,data:e.data,fireAndForget:e.fireAndForget},i).catch(r),e.fireAndForget)return n();var y=h.ACK_TIMEOUT,p=e.timeout||h.RES_TIMEOUT,v=100;setTimeout((function n(){if(!s){if(Object(o.isWindowClosed)(a))return l.ack?r(new Error("Window closed for "+t+" before response")):r(new Error("Window closed for "+t+" before ack"));if(y=Math.max(y-v,0),-1!==p&&(p=Math.max(p-v,0)),l.ack){if(-1===p)return;v=Math.min(p,2e3)}else{if(0===y)return r(new Error("No ack for postMessage "+t+" in "+Object(o.getDomain)()+" in "+h.ACK_TIMEOUT+"ms"));if(0===p)return r(new Error("No response for postMessage "+t+" in "+Object(o.getDomain)()+" in "+(e.timeout||h.RES_TIMEOUT)+"ms"))}setTimeout(n,v)}}),v)}))}));return f.catch((function(){!function(e){S.erroredResponseListeners[e]=!0}(u),W(u)})),c.push(f),f}))}function z(e,t,n,r){return(r=r||{}).window=e,r.name=t,r.data=n,B(r)}function Q(e,t,n){var r=Object(o.getAncestor)();return r?z(r,e,t,n):new O((function(e,t){return t(new Error("Window does not have a parent"))}))}function Y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e.window)throw new Error("Expected options.window");var t=e.window;return{send:function(n,r){return z(t,n,r,e)}}}S.receivedMessages=S.receivedMessages||[],S.receiveMessage=F,S.requestPromises=S.requestPromises||new f,S.send=z;var J="function"==typeof Symbol&&"symbol"==a(Symbol.iterator)?function(e){return void 0===e?"undefined":a(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":a(e)};function Z(e){if(!e.name)throw new Error("Expected options.name");if(!e.handler)throw new Error("Expected options.handler");var t,n=e.name,r=e.window,i=e.domain,a={handler:e.handler,handleError:e.errorHandler||function(e){throw e},window:r,domain:i||d.WILDCARD,name:n},u=function e(t,n){var r=t.name,o=t.win,i=t.domain;if(!r||"string"!=typeof r)throw new Error("Name required to add request listener");if(Array.isArray(o)){for(var a=[],u=0,s=o,c=null==s?0:s.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2];"function"==typeof t&&(n=t,t={}),t=t||{},n=n||t.handler;var r=t.errorHandler,o=new O((function(o,i){(t=t||{}).name=e,t.once=!0,t.handler=function(e){if(o(e),n)return n(e)},t.errorHandler=function(e){if(i(e),r)return r(e)}})),i=Z(t);return o.cancel=i.cancel,o}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{on:function(t,n){return $(t,e,n)}}}function ee(){delete window[d.WINDOW_PROPS.POSTROBOT],window.removeEventListener("message",H)}S.on=$;var te=Object(o.getAncestor)();function ne(e){var t=S.requestPromises.get(e);if(t)for(var n=0,r=null==t?0:t.length;n3&&void 0!==arguments[3]?arguments[3]:"half_width";o(this,e),this._connection=t,this._autoResizingEnabled=!1,this._resizingEnabled=!1,this.type=n,this.state=i,this._emitter=r}return r(e,[{key:"enableResizing",value:function(){return"DASHBOARD"!==this.type?Promise.resolve():(this._resizingEnabled=!0,this._connection.sendToParent("window",{action:"enableResizing"}))}},{key:"onDashboardResize",value:function(e){var t=this;if("DASHBOARD"!==this.type)return!1;if(!e||"function"!=typeof e)throw Error("Callback must be a function");return t._emitter.on("dashboardResize",(function(n){t.state=n.state,e(n.state)})),!0}},{key:"updateHeight",value:function(e){if("DASHBOARD"===this.type&&"half_width"===this.state)return Promise.resolve();if(!e||isNaN(e))this._height=Math.ceil(document.documentElement.getBoundingClientRect().height);else{if(this._height===e)return Promise.resolve();this._height=e}return this._connection.sendToParent("resize",this._height)}},{key:"enableAutoResizing",value:function(){return this._autoResizingEnabled||"half_width"===this.state&&"DASHBOARD"===this.type||(this._autoResizingEnabled=!0,(a=new MutationObserver(this.updateHeight.bind(this))).observe(window.document.body,i)),this}},{key:"disableAutoResizing",value:function(){return this._autoResizingEnabled?(this._autoResizingEnabled=!1,a.disconnect(),this):this}}]),e}();t.default=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return Promise.reject(new Error("uid is required"));var n={uid:e,params:t,action:"getContentType"};return this._connection.sendToParent("stackQuery",n).then(u).catch(s)}},{key:"getContentTypes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;n.query=e;var r={params:n,action:"getContentTypes"};return this._connection.sendToParent("stackQuery",r).then(u).catch(s)}},{key:"getEnvironment",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return Promise.reject(new Error("name is required"));var n={name:e,params:t,action:"getEnvironment"};return this._connection.sendToParent("stackQuery",n).then(u).catch(s)}},{key:"getEnvironments",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;n.query=e;var r={params:n,action:"getEnvironments"};return this._connection.sendToParent("stackQuery",r).then(u).catch(s)}},{key:"getLocale",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return Promise.reject(new Error("code is required"));var n={code:e,params:t,action:"getLocale"};return this._connection.sendToParent("stackQuery",n).then(u).catch(s)}},{key:"getLocales",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;n.query=e;var r={params:n,action:"getLocales"};return this._connection.sendToParent("stackQuery",r).then(u).catch(s)}}]),e}();t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]&&arguments[0];return e?"Assets":"Asset"}},{key:"getRteAssets",value:function(){return this.connection.sendToParent("stackQuery",{action:"getRteAssets"}).then(d).catch(l)}},{key:"getAssetsOfSpecificTypes",value:function(e){return e&&"string"==typeof e?this.connection.sendToParent("stackQuery",{action:"getAssetsOfSpecificTypes",asset_type:e}).then(d).catch(l):Promise.reject(new Error("Kindly provide valid parameters"))}},{key:"connection",get:function(){return f}}]),t}(u.default);t.default=function(e){return f=e,new Proxy(h,{apply:function(e,t,n){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]&&arguments[0];return e?"Entries":"Entry"}},{key:"connection",get:function(){return f}},{key:"contentTypeUid",get:function(){return d}}]),t}(u.default);t.default=function(e,t){return f=e,d=t,new Proxy(l,{apply:function(e,t,n){var r=new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t (https://www.contentstack.com/)",bugs:{url:"https://github.com/contentstack/ui-extensions-sdk/issues",email:"support@contentstack.com"},repository:{type:"git",url:"https://github.com/contentstack/ui-extensions-sdk.git"},license:"MIT",devDependencies:{"@babel/cli":"7.8.4","babel-eslint":"8.2.3","babel-loader":"7.1.4","babel-preset-env":"1.7.0",braces:"2.3.2",docdash:"1.0.2",eslint:"6.8.0","eslint-config-airbnb":"16.1.0","eslint-loader":"3.0.4","eslint-plugin-import":"2.12.0","inject-loader":"4.0.1",istanbul:"0.4.5","istanbul-instrumenter-loader":"3.0.1",jasmine:"3.3.0","jasmine-core":"2.99.0",jsdoc:"3.6.3","jsdoc-to-markdown":"5.0.0",karma:"5.0.1","karma-chrome-launcher":"2.2.0","karma-coverage":"1.1.2","karma-coverage-istanbul-reporter":"2.0.1","karma-eslint":"2.2.0","karma-firefox-launcher":"1.1.0","karma-jasmine":"1.1.2","karma-jasmine-html-reporter":"0.2.2","karma-safari-applescript-launcher":"0.1.0","karma-sourcemap-loader":"0.3.7","karma-spec-reporter":"0.0.32","karma-summary-reporter":"1.5.2","karma-webpack":"4.0.0-rc.6",nyc:"14.1.1",webpack:"4.29.3","webpack-cli":"3.2.3","webpack-dev-server":"3.10.3","webpack-shell-plugin":"0.5.0"},dependencies:{"post-robot":"8.0.29","wolfy87-eventemitter":"5.2.4"}}}])})); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ContentstackUIExtension=t():e.ContentstackUIExtension=t()}(self,(function(){return(()=>{"use strict";var e={713:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=e.resolved,n=void 0!==t&&t;return n?this._resolvedData:this._data}},{key:"setFocus",value:function(){return this._connection.sendToParent("focus")}},{key:"onChange",value:function(e){var t=this;if(!e||"function"!=typeof e)throw Error("Callback must be a function");this._emitter.on("extensionFieldChange",(function(n){t._data=n.data,t._resolvedData=n.data,e(n.data)}))}}]),e}();t.default=o},386:(e,t,n)=>{var r=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]&&arguments[0];return e?"Assets":"Asset"}},{key:"getRteAssets",value:function(){return this.connection.sendToParent("stackQuery",{action:"getRteAssets"}).then(d).catch(l)}},{key:"getAssetsOfSpecificTypes",value:function(e){return e&&"string"==typeof e?this.connection.sendToParent("stackQuery",{action:"getAssetsOfSpecificTypes",asset_type:e}).then(d).catch(l):Promise.reject(new Error("Kindly provide valid parameters"))}},{key:"connection",get:function(){return f}}]),t}(u.default);t.default=function(e){return f=e,new Proxy(h,{apply:function(e,t,n){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t{Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]&&arguments[0];return e?"Entries":"Entry"}},{key:"connection",get:function(){return f}},{key:"contentTypeUid",get:function(){return d}}]),t}(u.default);t.default=function(e,t){return f=e,d=t,new Proxy(l,{apply:function(e,t,n){var r=new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return Promise.reject(new Error("uid is required"));var n={uid:e,params:t,action:"getContentType"};return this._connection.sendToParent("stackQuery",n).then(u).catch(s)}},{key:"getContentTypes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;n.query=e;var r={params:n,action:"getContentTypes"};return this._connection.sendToParent("stackQuery",r).then(u).catch(s)}},{key:"getEnvironment",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return Promise.reject(new Error("name is required"));var n={name:e,params:t,action:"getEnvironment"};return this._connection.sendToParent("stackQuery",n).then(u).catch(s)}},{key:"getEnvironments",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;n.query=e;var r={params:n,action:"getEnvironments"};return this._connection.sendToParent("stackQuery",r).then(u).catch(s)}},{key:"getLocale",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return Promise.reject(new Error("code is required"));var n={code:e,params:t,action:"getLocale"};return this._connection.sendToParent("stackQuery",n).then(u).catch(s)}},{key:"getLocales",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;n.query=e;var r={params:n,action:"getLocales"};return this._connection.sendToParent("stackQuery",r).then(u).catch(s)}}]),e}();t.default=c},653:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.transform=function(e){return function(){switch(arguments.length){case 1:if(Array.isArray(arguments[0])||"string"==typeof arguments[0]){var t=this._query[e+"[BASE]"]||[];return t=t.concat(arguments[0]),this._query[e+"[BASE]"]=t,this}throw Error("Kindly provide valid parameters");case 2:if("string"==typeof arguments[0]&&(Array.isArray(arguments[1])||"string"==typeof arguments[1])){var n=this._query[e+"["+arguments[0]+"]"]||[];return n=n.concat(arguments[1]),this._query[e+"["+arguments[0]+"]"]=n,this}throw Error("Kindly provide valid parameters");default:throw Error("Kindly provide valid parameters")}}},t.merge=function(e,t){var n=e;return e&&t&&Object.keys(t).forEach((function(e){n[e]=t[e]})),n},t.mergeDeep=function(e,t){var n=e,r=this;return function e(t,n){var o=t;Object.keys(n).forEach((function(t){"object"===r._type(n[t])&&r._type(o[t])===r._type(n[t])?e(o[t],n[t]):"array"===r._type(n[t])&&r._type(o[t])===r._type(n[t])?o[t]=o[t].concat(n[t]):o[t]=n[t]}))}(n,t),n},t._type=function(e){var t=void 0===e?"undefined":n(e);return"object"===t&&Array.isArray(e)&&(t="array"),t},t.addParam=function(e,t){if(e&&"string"==typeof e&&t&&"string"==typeof t)return this._query[e]=t,this;throw Error("Kindly provide valid parameters.")},t.addQuery=function(e,t){if(e&&t&&"string"==typeof e)return this._query[e]=t,this;throw Error("First argument should be a String.")},t.language=function(e){if(e&&"string"==typeof e)return this._query.locale=e,this;throw Error("Argument should be a String.")},t.environment=function(e){if(e&&"string"==typeof e)return this._query.environment=e,this;throw Error("Argument should be a String.")},t.includeOwner=function(){return this._query.include_owner=!0,this},t.includeContentType=function(){return this._query.include_content_type=!0,this},t.includeSchema=function(){return this._query.include_schema=!0,this},t.includeReference=function(e){if(Array.isArray(e))for(var t=0;t{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var n=0;n3&&void 0!==arguments[3]?arguments[3]:"half_width";r(this,e),this._connection=t,this._autoResizingEnabled=!1,this._resizingEnabled=!1,this.type=n,this.state=i,this._emitter=o}return n(e,[{key:"enableResizing",value:function(){return"DASHBOARD"!==this.type?Promise.resolve():(this._resizingEnabled=!0,this._connection.sendToParent("window",{action:"enableResizing"}))}},{key:"onDashboardResize",value:function(e){var t=this;if("DASHBOARD"!==this.type)return!1;if(!e||"function"!=typeof e)throw Error("Callback must be a function");return t._emitter.on("dashboardResize",(function(n){t.state=n.state,e(n.state)})),!0}},{key:"updateHeight",value:function(e){if("DASHBOARD"===this.type&&"half_width"===this.state)return Promise.resolve();if(!e||isNaN(e))this._height=Math.ceil(document.documentElement.getBoundingClientRect().height);else{if(this._height===e)return Promise.resolve();this._height=e}return this._connection.sendToParent("resize",this._height)}},{key:"enableAutoResizing",value:function(){return this._autoResizingEnabled||"half_width"===this.state&&"DASHBOARD"===this.type||(this._autoResizingEnabled=!0,(i=new MutationObserver(this.updateHeight.bind(this))).observe(window.document.body,o)),this}},{key:"disableAutoResizing",value:function(){return this._autoResizingEnabled?(this._autoResizingEnabled=!1,i.disconnect(),this):this}}]),e}();t.default=a},263:(e,t,n)=>{e.exports=n(386).default},967:(e,t,n)=>{var r,o,i;e=n.nmd(e);var a,u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};"undefined"!=typeof self&&self,a=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="./src/index.js")}({"./node_modules/cross-domain-utils/src/index.js":function(e,t,n){var r=n("./node_modules/cross-domain-utils/src/utils.js");n.d(t,"getActualDomain",(function(){return r.a})),n.d(t,"getAncestor",(function(){return r.b})),n.d(t,"getDomain",(function(){return r.c})),n.d(t,"getUserAgent",(function(){return r.d})),n.d(t,"isActuallySameDomain",(function(){return r.e})),n.d(t,"isAncestor",(function(){return r.f})),n.d(t,"isIframe",(function(){return r.g})),n.d(t,"isPopup",(function(){return r.h})),n.d(t,"isWindow",(function(){return r.i})),n.d(t,"isWindowClosed",(function(){return r.j})),n.d(t,"matchDomain",(function(){return r.k})),n.d(t,"stringifyDomainPattern",(function(){return r.l}));var o=n("./node_modules/cross-domain-utils/src/types.js");n.n(o)},"./node_modules/cross-domain-utils/src/types.js":function(e,t){},"./node_modules/cross-domain-utils/src/utils.js":function(e,t,n){function r(e){return"[object RegExp]"===Object.prototype.toString.call(e)}t.a=f,t.c=d,t.e=l,t.j=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];try{if(e===window)return!1}catch(e){return!0}try{if(!e)return!0}catch(e){return!0}try{if(e.closed)return!0}catch(e){return!e||e.message!==i}if(t&&function(e){if(!l(e))return!1;try{if(e===window)return!0;if(a(e)&&c(e))return!0;if(d(window)===d(e))return!0}catch(e){}return!1}(e))try{if(e.mockclosed)return!0}catch(e){}try{if(!e.parent||!e.top)return!0}catch(e){}var n=function(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:window).location.protocol===o.ABOUT_PROTOCOL}function u(e){if(e)try{if(e.parent&&e.parent!==e)return e.parent}catch(e){}}function s(e){if(e&&!u(e))try{return e.opener}catch(e){}}function c(e){try{return e&&e.location&&e.location.href,!0}catch(e){}return!1}function f(e){var t=(e=e||window).location;if(!t)throw new Error("Can not read window location");var n=t.protocol;if(!n)throw new Error("Can not read window protocol");if(n===o.FILE_PROTOCOL)return o.FILE_PROTOCOL+"//";if(n===o.ABOUT_PROTOCOL){var r=u(e);return r&&c(r)?f(r):o.ABOUT_PROTOCOL+"//"}var i=t.host;if(!i)throw new Error("Can not read window host");return n+"//"+i}function d(e){var t=f(e=e||window);return t&&e.mockDomain&&0===e.mockDomain.indexOf(o.MOCK_PROTOCOL)?e.mockDomain:t}function l(e){try{if(e===window)return!0}catch(e){}try{var t=Object.getOwnPropertyDescriptor(e,"location");if(t&&!1===t.enumerable)return!1}catch(e){}try{if(a(e)&&c(e))return!0}catch(e){}try{if(f(e)===f(window))return!0}catch(e){}return!1}function h(e,t){if(!e||!t)return!1;var n=u(t);return n?n===e:-1!==function(e){var t=[];try{for(;e.parent!==e;)t.push(e.parent),e=e.parent}catch(e){}return t}(t).indexOf(e)}function y(e){var t=[],n=void 0;try{n=e.frames}catch(t){n=e}var r=void 0;try{r=n.length}catch(e){}if(0===r)return t;if(r){for(var o=0;o>>0)+"__"+c,function(){if(!window.WeakMap)return!1;if(!window.Object.freeze)return!1;try{var e=new window.WeakMap,t={};return window.Object.freeze(t),e.set(t,"__testvalue__"),"__testvalue__"===e.get(t)}catch(e){return!1}}())try{this.weakmap=new window.WeakMap}catch(e){}this.keys=[],this.values=[]}return e.prototype._cleanupClosedWindows=function(){for(var e=this.weakmap,t=this.keys,n=0;n1&&void 0!==arguments[1]?arguments[1]:1;if(t>=3)return"stringifyError stack overflow";try{if(!e)return"";if("string"==typeof e)return e;if(e instanceof Error){var n=e&&e.stack,r=e&&e.message;if(n&&r)return-1!==n.indexOf(r)?n:r+"\n"+n;if(n)return n;if(r)return r}return"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}catch(e){return"Error while stringifying error: "+p(e,t+1)}}var v=function(e){if(!e)return e;var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}};function m(){}function _(){var e="0123456789abcdef";return"xxxxxxxxxx".replace(/./g,(function(){return e.charAt(Math.floor(Math.random()*e.length))}))}function w(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(n>=100)throw new Error("Self-referential object passed, or object contained too many layers");var r=void 0;if("object"!==(void 0===e?"undefined":y(e))||null===e||Array.isArray(e)){if(!Array.isArray(e))throw new TypeError("Invalid type: "+(void 0===e?"undefined":y(e)));r=[]}else r={};return function(e,t){Array.isArray(e)?function(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=_(),i=Object(o.isPopup)()?d.WINDOW_TYPES.POPUP:Object(o.isIframe)()?d.WINDOW_TYPES.IFRAME:d.WINDOW_TYPES.FULLPAGE,a=Object(o.getDomain)(window);return I({},t,n,{sourceDomain:a,id:t.id||r,windowType:i})}(e,t,{data:function(e,n,r){return w({obj:t.data},(function(t,r){return"function"==typeof t?j(e,n,t,r.toString()):t instanceof Error?(o=t,{__type__:d.SERIALIZATION_TYPES.ERROR,__message__:p(o),__code__:o.code}):window.Promise&&t instanceof window.Promise?function(e,t,n,r){return{__type__:d.SERIALIZATION_TYPES.PROMISE,__then__:j(e,t,(function(e,t){return n.then(e,t)}),r+".then")}}(e,n,t,r.toString()):O.isPromise(t)?function(e,t,n,r){return{__type__:d.SERIALIZATION_TYPES.ZALGO_PROMISE,__then__:j(e,t,(function(e,t){return n.then(e,t)}),r+".then")}}(e,n,t,r.toString()):g(t)?(i=t,{__type__:d.SERIALIZATION_TYPES.REGEX,__source__:i.source}):void 0;var o,i})).obj}(e,n),domain:n}),e===window&&!h.ALLOW_SAME_ORIGIN)throw new Error("Attemping to send message to self");if(Object(o.isWindowClosed)(e))throw new Error("Window is closed");var i=[],a=function(e,t,n){var r=void 0,o=void 0;try{if("{}"!==JSON.stringify({})&&(r=Object.prototype.toJSON,delete Object.prototype.toJSON),"{}"!==JSON.stringify({}))throw new Error("Can not correctly serialize JSON objects");if("[]"!==JSON.stringify([])&&(o=Array.prototype.toJSON,delete Array.prototype.toJSON),"[]"!==JSON.stringify([]))throw new Error("Can not correctly serialize JSON objects")}catch(e){throw new Error("Can not repair JSON.stringify: "+e.message)}var i=JSON.stringify.call(this,e,null,2);try{r&&(Object.prototype.toJSON=r),o&&(Array.prototype.toJSON=o)}catch(e){throw new Error("Can not repair JSON.stringify: "+e.message)}return i}(((r={})[d.WINDOW_PROPS.POSTROBOT]=t,r));return O.map(Object.keys(L),(function(t){return O.try((function(){if(!h.ALLOWED_POST_MESSAGE_METHODS[t])throw new Error("Strategy disallowed: "+t);return L[t](e,a,n)})).then((function(){return i.push(t+": success"),!0}),(function(e){return i.push(t+": "+p(e)+"\n"),!1}))})).then((function(e){var n=e.some(Boolean),r=t.type+" "+t.name+" "+(n?"success":"error")+":\n - "+i.join("\n - ")+"\n";if(!n)throw new Error(r)}))}))}function W(e){return S.responseListeners[e]}function q(e){delete S.responseListeners[e]}function M(e){return Boolean(S.erroredResponseListeners[e])}function N(e){var t=e.name,n=e.win,r=e.domain;if(n===d.WILDCARD&&(n=null),r===d.WILDCARD&&(r=null),!t)throw new Error("Name required to get request listener");var i=S.requestListeners[t];if(i)for(var a=0,u=[n,S.WINDOW_WILDCARD],s=null==u?0:u.length;a1&&void 0!==arguments[1]?arguments[1]:5e3,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Window",r=S.readyPromises.get(e);return r||(r=new O,S.readyPromises.set(e,r),-1!==t&&setTimeout((function(){return r.reject(new Error(n+" did not load after "+t+"ms"))}),t),r)}(a,e.timeout||h.CHILD_WINDOW_TIMEOUT)})).then((function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).origin;if(g(r)&&!e)return C(a)})).then((function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).origin;if(g(r)){if(!Object(o.matchDomain)(r,n))throw new Error("Remote window domain "+n+" does not match regex: "+r.toString());r=n}if("string"!=typeof r&&!Array.isArray(r))throw new TypeError("Expected domain to be a string or array");var i=r;return new O((function(n,r){var l=void 0;if(e.fireAndForget||function(e,t){S.responseListeners[e]=t}(u,l={name:t,window:a,domain:i,respond:function(e,t){e||(s=!0,c.splice(c.indexOf(f,1))),e?r(e):n(t)}}),x(a,{type:d.POST_MESSAGE_TYPE.REQUEST,hash:u,name:t,data:e.data,fireAndForget:e.fireAndForget},i).catch(r),e.fireAndForget)return n();var y=h.ACK_TIMEOUT,p=e.timeout||h.RES_TIMEOUT,v=100;setTimeout((function n(){if(!s){if(Object(o.isWindowClosed)(a))return l.ack?r(new Error("Window closed for "+t+" before response")):r(new Error("Window closed for "+t+" before ack"));if(y=Math.max(y-v,0),-1!==p&&(p=Math.max(p-v,0)),l.ack){if(-1===p)return;v=Math.min(p,2e3)}else{if(0===y)return r(new Error("No ack for postMessage "+t+" in "+Object(o.getDomain)()+" in "+h.ACK_TIMEOUT+"ms"));if(0===p)return r(new Error("No response for postMessage "+t+" in "+Object(o.getDomain)()+" in "+(e.timeout||h.RES_TIMEOUT)+"ms"))}setTimeout(n,v)}}),v)}))}));return f.catch((function(){!function(e){S.erroredResponseListeners[e]=!0}(u),q(u)})),c.push(f),f}))}function z(e,t,n,r){return(r=r||{}).window=e,r.name=t,r.data=n,B(r)}function Q(e,t,n){var r=Object(o.getAncestor)();return r?z(r,e,t,n):new O((function(e,t){return t(new Error("Window does not have a parent"))}))}function Y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e.window)throw new Error("Expected options.window");var t=e.window;return{send:function(n,r){return z(t,n,r,e)}}}S.receivedMessages=S.receivedMessages||[],S.receiveMessage=F,S.requestPromises=S.requestPromises||new f,S.send=z;var J="function"==typeof Symbol&&"symbol"==u(Symbol.iterator)?function(e){return void 0===e?"undefined":u(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":u(e)};function Z(e){if(!e.name)throw new Error("Expected options.name");if(!e.handler)throw new Error("Expected options.handler");var t,n=e.name,r=e.window,i=e.domain,a={handler:e.handler,handleError:e.errorHandler||function(e){throw e},window:r,domain:i||d.WILDCARD,name:n},u=function e(t,n){var r=t.name,o=t.win,i=t.domain;if(!r||"string"!=typeof r)throw new Error("Name required to add request listener");if(Array.isArray(o)){for(var a=[],u=0,s=o,c=null==s?0:s.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2];"function"==typeof t&&(n=t,t={}),t=t||{},n=n||t.handler;var r=t.errorHandler,o=new O((function(o,i){(t=t||{}).name=e,t.once=!0,t.handler=function(e){if(o(e),n)return n(e)},t.errorHandler=function(e){if(i(e),r)return r(e)}})),i=Z(t);return o.cancel=i.cancel,o}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{on:function(t,n){return $(t,e,n)}}}function ee(){delete window[d.WINDOW_PROPS.POSTROBOT],window.removeEventListener("message",H)}S.on=$;var te=Object(o.getAncestor)();function ne(e){var t=S.requestPromises.get(e);if(t)for(var n=0,r=null==t?0:t.length;n{e.exports=n(967),e.exports.default=e.exports},78:(e,t,n)=>{var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(t){function i(){}var a=i.prototype,u=t.EventEmitter;function s(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function c(e){return function(){return this[e].apply(this,arguments)}}function f(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!==(void 0===e?"undefined":o(e)))&&f(e.listener)}a.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp)for(n in t={},r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n]);else t=r[e]||(r[e]=[]);return t},a.flattenListeners=function(e){var t,n=[];for(t=0;t{e.exports=JSON.parse('{"name":"@contentstack/ui-extensions-sdk","version":"2.2.1","description":"The Extensions SDK allows you to extend Contentstack’s UI by helping you create Custom Fields, Custom Widgets, and Dashboard Widgets.","main":"dist/ui-extension-sdk.js","scripts":{"test":"karma start --single-run --browsers ChromeHeadless karma.conf.js","test-local":"karma start --single-run","generate:docs":"node_modules/.bin/jsdoc --configure .jsdoc.json --verbose","build":"npx webpack","generate:sri":"node ./subresourceIntegrity.js","generate:readme":"npm run generate:sri && npx @appnest/readme generate"},"keywords":["contentstack","contentstack-ui-extension-sdk","ui-extension-sdk"],"homepage":"https://github.com/contentstack/ui-extensions-sdk","author":"Contentstack (https://www.contentstack.com/)","bugs":{"url":"https://github.com/contentstack/ui-extensions-sdk/issues","email":"support@contentstack.com"},"repository":{"type":"git","url":"https://github.com/contentstack/ui-extensions-sdk.git"},"license":"MIT","devDependencies":{"@babel/cli":"^7.17.6","babel-eslint":"8.2.3","babel-loader":"7.1.4","babel-preset-env":"1.7.0","braces":"2.3.2","docdash":"1.0.2","eslint":"6.8.0","eslint-config-airbnb":"16.1.0","eslint-loader":"3.0.4","eslint-plugin-import":"2.12.0","inject-loader":"4.0.1","istanbul":"0.4.5","istanbul-instrumenter-loader":"3.0.1","jasmine":"3.3.0","jasmine-core":"2.99.0","jsdoc":"^3.6.10","jsdoc-to-markdown":"^7.1.1","jsonfile":"^6.1.0","karma":"^6.3.19","karma-chrome-launcher":"3.1.1","karma-coverage":"^2.2.0","karma-coverage-istanbul-reporter":"^3.0.3","karma-eslint":"2.2.0","karma-firefox-launcher":"1.1.0","karma-jasmine":"1.1.2","karma-jasmine-html-reporter":"0.2.2","karma-safari-applescript-launcher":"0.1.0","karma-sourcemap-loader":"0.3.7","karma-spec-reporter":"0.0.32","karma-summary-reporter":"1.5.2","karma-webpack":"^5.0.0","nyc":"14.1.1","ssri":"^9.0.0","webpack":"^5.70.0","webpack-cli":"^4.9.2","webpack-dev-server":"^4.7.4","webpack-shell-plugin-next":"^2.2.2"},"dependencies":{"post-robot":"8.0.29","wolfy87-eventemitter":"5.2.4"}}')}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r](i,i.exports,n),i.loaded=!0,i.exports}return n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n(263)})()})); //# sourceMappingURL=ui-extension-sdk.js.map \ No newline at end of file diff --git a/dist/ui-extension-sdk.js.map b/dist/ui-extension-sdk.js.map index 57d977e0..949c921b 100644 --- a/dist/ui-extension-sdk.js.map +++ b/dist/ui-extension-sdk.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://ContentstackUIExtension/webpack/universalModuleDefinition","webpack://ContentstackUIExtension/webpack/bootstrap","webpack://ContentstackUIExtension/./lib/stack/utils.js","webpack://ContentstackUIExtension/./lib/stack/api/base.js","webpack://ContentstackUIExtension/./node_modules/post-robot/index.js","webpack://ContentstackUIExtension/./lib/field.js","webpack://ContentstackUIExtension/./webpack-entry.js","webpack://ContentstackUIExtension/./lib/index.js","webpack://ContentstackUIExtension/./lib/extension.js","webpack://ContentstackUIExtension/./node_modules/post-robot/dist/post-robot.js","webpack://ContentstackUIExtension/(webpack)/buildin/module.js","webpack://ContentstackUIExtension/./lib/window.js","webpack://ContentstackUIExtension/./lib/stack/index.js","webpack://ContentstackUIExtension/./lib/stack/api/asset/index.js","webpack://ContentstackUIExtension/./lib/stack/api/query.js","webpack://ContentstackUIExtension/./lib/stack/api/content-type/index.js","webpack://ContentstackUIExtension/./lib/stack/api/content-type/entry.js","webpack://ContentstackUIExtension/./lib/entry.js","webpack://ContentstackUIExtension/./lib/store.js","webpack://ContentstackUIExtension/./node_modules/wolfy87-eventemitter/EventEmitter.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","transform","type","this","_query","arguments","length","Array","isArray","query","BASE","concat","Error","merge","target","source","newTraget","keys","forEach","mergeDeep","oldTarget","oldSource","newTarget","self","_mergeRecursive","anotherTarget","_type","val","__typeof","addParam","addQuery","language","languageCode","locale","environment","environmentCode","includeOwner","include_owner","includeContentType","include_content_type","includeSchema","include_schema","includeReference","getReferences","fetch","constructor","onData","data","Promise","reject","resolve","onError","error","Base","uid","only","except","payload","action","options","content_type_uid","contentTypeUid","params","connection","sendToParent","then","catch","Query","require","default","excludedDataTypesForSetField","Field","fieldDataObject","emitter","data_type","schema","_emitter","field","resolvedData","unResolvedData","separatedData","multiple","map","file","_data","_resolvedData","_connection","_self","fieldObj","on","event","path","split","currentFieldObj","dataObj","indexOf","e","resolved","callback","postRobot","CONFIG","LOG_LEVEL","ContentstackUIExtension","_extension","Extension","initialize","version","initializationData","EventEmitter","initData","config","currentUser","user","fieldConfig","field_config","store","Store","entry","Entry","Window","dashboard_width","stack","Stack","emitEvent","state","configurable","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0__utils__","a","b","f","g","h","j","k","__WEBPACK_IMPORTED_MODULE_1__types__","isRegex","item","toString","getActualDomain","getDomain","isActuallySameDomain","win","allowMock","err","closed","message","IE_WIN_ACCESS_ERROR","isAboutProtocol","canReadFromWindow","mockclosed","parent","top","iframeIndex","collection","iframeWindows","frame","iframeFrames","contentWindow","parentNode","doc","ownerDocument","body","contains","navigator","mockUserAgent","userAgent","getAncestor","child","actualParent","getParent","isAncestorParent","_i7","_getAllChildFrames4","getAllChildFrames","result","_i3","_getFrames2","getFrames","_length2","push","_i5","_getAllChildFrames2","_length4","childFrame","_length6","_i16","_getFrames8","_length14","Boolean","getOpener","matchDomain","pattern","origin","CONSTANTS","WILDCARD","match","JSON","stringify","some","subpattern","join","obj","__cross_domain_utils_window_check__","MOCK_PROTOCOL","FILE_PROTOCOL","ABOUT_PROTOCOL","location","protocol","opener","href","host","domain","mockDomain","desc","getOwnPropertyDescriptor","childParent","frames","len","_i","_frame","weakmap_CrossDomainSafeWeakMap","src_interface_namespaceObject","cleanUpWindow","promise_ZalgoPromise","bridge","init","public_parent","_send","request","client","_on","listen","server_once","server_listener","constants_CONSTANTS","disable","src","safeIndexOf","_ALLOWED_POST_MESSAGE","counter","Date","now","CrossDomainSafeWeakMap","instance","Constructor","TypeError","Math","random","WeakMap","freeze","testWeakMap","testKey","set","weakmap","values","_cleanupClosedWindows","isWindow","isWindowClosed","delete","splice","isSafeToReadWrite","writable","index","has","POST_MESSAGE_TYPE","REQUEST","RESPONSE","ACK","POST_MESSAGE_ACK","SUCCESS","ERROR","POST_MESSAGE_NAMES","METHOD","HELLO","OPEN_TUNNEL","WINDOW_TYPES","FULLPAGE","POPUP","IFRAME","WINDOW_PROPS","POSTROBOT","SERIALIZATION_TYPES","PROMISE","ZALGO_PROMISE","REGEX","SEND_STRATEGIES","POST_MESSAGE","BRIDGE","GLOBAL","BRIDGE_NAME_PREFIX","POSTROBOT_PROXY","ALLOW_POSTMESSAGE_POPUP","__ALLOW_POSTMESSAGE_POPUP__","BRIDGE_TIMEOUT","CHILD_WINDOW_TIMEOUT","ACK_TIMEOUT","RES_TIMEOUT","ALLOWED_POST_MESSAGE_METHODS","ALLOW_SAME_ORIGIN","_typeof","iterator","stringifyError","level","newErr","once","method","called","apply","util_noop","uniqueID","chars","replace","charAt","floor","replaceObject","depth","newobj","_key","childItem","utils_isPromise","_toString","getGlobal","glob","zalgoGlobal","__zalgopromise__","flushPromises","activeCount","possiblyUnhandledPromiseHandlers","dispatchedErrors","ZalgoPromise","handler","_this","rejected","errorHandled","handlers","_result","_error","isAsync","res","dispatch","_this2","_err","setTimeout","promise","asyncReject","_this3","dispatching","_loop","_handlers$i","onSuccess","flushQueue","finally","onFinally","try","timeout","time","_this4","clearTimeout","toPromise","all","promises","count","results","_loop2","prom","hash","items","onPossiblyUnhandledException","cancel","context","args","delay","_delay","isPromise","flush","promisesToFlush","_i2","global","registerSelf","serialize__typeof","methods","listenForMethods","_ref","meth","id","isSerialized","__type__","serializeMethod","destination","__id__","__name__","deserializeMethod","wrapper","slice","send","_ref2","__xdomain__","deserializeZalgoPromise","__then__","sayHello","readyPromises","SEND_MESSAGE_STRATEGIES","serializedMessage","dom","postMessage","_RECEIVE_MESSAGE_TYPE","_extends","assign","sendMessage","_jsonStringify","isPopup","isIframe","sourceDomain","windowType","__message__","__code__","code","regex","__source__","messages","replacer","indent","objectToJSON","arrayToJSON","toJSON","strategyName","success","status","getResponseListener","responseListeners","deleteResponseListener","isResponseListenerErrored","erroredResponseListeners","getRequestListener","nameListeners","requestListeners","_ref3","WINDOW_WILDCARD","winQualifier","winListeners","_i4","_winListeners$__DOMAI2","_ref5","listener","types__extends","RECEIVE_MESSAGE_TYPES","pathname","ack","respond","fireAndForget","originalSource","handleError","stringifyDomainPattern","response","receive__typeof","receiveMessage","parsedMessage","parse","receivedMessages","RegExp","messageListener","sourceElement","originalEvent","targetWindow","el","document","getElementById","tagName","toLowerCase","HTMLIFrameElement","hasResult","requestPromises","requestPromise","isAncestor","actualDomain","responseListener","ackTimeout","resTimeout","cycleTime","cycle","max","min","server__typeof","listenerOptions","errorHandler","requestListener","addRequestListener","_ref6","listenersCollection","_i6","_win2","_i8","_length8","_listenersCollection","_i10","_domain2","_length10","_item","_i12","_length12","existingListener","strDomain","regexListeners","regexListener","_handler","errorOnClose","interval","runInterval","onceListener","removeEventListener","popupWindowsByWin","remoteWindows","initialized","addEventListener","attachEvent","webpackPolyfill","deprecate","paths","children","attributes","childList","subtree","observer","_autoResizingEnabled","_resizingEnabled","windowObj","height","isNaN","_height","ceil","documentElement","getBoundingClientRect","MutationObserver","updateHeight","observe","disconnect","ContentType","Asset","optionParams","entryQuery","plural","assetType","asset_type","uiConnection","Proxy","Target","thisArg","argumentsList","Utils","_extend","file_size","bool","$exists","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","notEqualTo","containedIn","notContainedIn","exists","notExists","ascending","descending","beforeUid","afterUid","skip","limit","or","and","tags","include_count","$regex","$options","typeahead","singleEntry","contentType","entryTarget","content_type","thisEntry","_changedData","skipNext","skipNextTwo","find","x","blockId","blocks","block","fieldIntilaizationDataObject","fieldObject","onChange","proto","originalGlobalValue","indexOfListener","listeners","alias","getListeners","evt","events","_getEvents","test","flattenListeners","flatListeners","getListenersAsObject","addListener","isValidListener","listenerIsWrapped","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","remove","single","removeEvent","_events","removeAllListeners","listenersMap","_getOnceReturnValue","trigger","emit","setOnceReturnValue","_onceReturnValue","noConflict"],"mappings":"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","file":"ui-extension-sdk.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ContentstackUIExtension\"] = factory();\n\telse\n\t\troot[\"ContentstackUIExtension\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","export function transform(type) {\n return function () {\n this._query[type] = this._query[type] || {};\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === 'string') {\n let query = this._query[type].BASE || [];\n query = query.concat(arguments[0]);\n this._query[type].BASE = query;\n return this;\n }\n throw Error('Kindly provide valid parameters');\n\n case 2:\n if (typeof arguments[0] === 'string' && (Array.isArray(arguments[1]) || typeof arguments[1] === 'string')) {\n let query = this._query[type][arguments[0]] || [];\n query = query.concat(arguments[1]);\n this._query[type][arguments[0]] = query;\n return this;\n }\n throw Error('Kindly provide valid parameters');\n\n default:\n throw Error('Kindly provide valid parameters');\n }\n };\n}\n\n\n// merge two objects\nexport function merge(target, source) {\n const newTraget = target;\n if (target && source) {\n Object.keys(source).forEach((key) => {\n newTraget[key] = source[key];\n });\n }\n return newTraget;\n}\n\n// merge two objects\nexport function mergeDeep(oldTarget, oldSource) {\n const newTarget = oldTarget;\n const self = this;\n const _mergeRecursive = (anotherTarget, source) => {\n const target = anotherTarget;\n Object.keys(source).forEach((key) => {\n if (self._type(source[key]) === 'object' && self._type(target[key]) === self._type(source[key])) {\n _mergeRecursive(target[key], source[key]);\n } else if (self._type(source[key]) === 'array' && self._type(target[key]) === self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n });\n };\n _mergeRecursive(newTarget, oldSource);\n return newTarget;\n}\n\n\nexport function _type(val) {\n let __typeof = typeof val;\n if (__typeof === 'object' && Array.isArray(val)) {\n __typeof = 'array';\n }\n return __typeof;\n}\n\nexport function addParam(key, value) {\n if (key && typeof key === 'string' && value && typeof value === 'string') {\n this._query[key] = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n}\n\nexport function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n }\n throw Error('First argument should be a String.');\n}\n\nexport function language(languageCode) {\n if (languageCode && typeof languageCode === 'string') {\n this._query.locale = languageCode;\n return this;\n }\n throw Error('Argument should be a String.');\n}\n\nexport function environment(environmentCode) {\n if (environmentCode && typeof environmentCode === 'string') {\n this._query.environment = environmentCode;\n return this;\n }\n throw Error('Argument should be a String.');\n}\n\nexport function includeOwner() {\n this._query.include_owner = true;\n return this;\n}\n\nexport function includeContentType() {\n this._query.include_content_type = true;\n return this;\n}\n\nexport function includeSchema() {\n this._query.include_schema = true;\n return this;\n}\n\nexport function includeReference(val) {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i += 1) {\n this._query['include[]'] = this._query['include[]'] || [];\n this._query['include[]'] = this._query['include[]'].concat(val[i]);\n }\n } else if (typeof val === 'string') {\n for (let i = 0; i < arguments.length; i += 1) {\n this._query['include[]'] = this._query['include[]'] || [];\n this._query['include[]'] = this._query['include[]'].concat(arguments[i]);\n }\n } else {\n throw Error('Argument should be a String or an Array.');\n }\n return this;\n}\n\nexport function getReferences() {\n return this.fetch(`get${this.constructor.module()}References`);\n}\n","import Query from './query.js';\nimport { transform, addParam } from '../utils.js';\n\n\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n/**\n * This is Base class, it holds all the methods required for Modle instance,\n * eg ContentType('uid').delete() or Asset('uid').update({...})\n * @ignore\n */\nexport default class Base {\n constructor(uid) {\n if (!uid) { throw new Error('uid is required'); }\n this.uid = uid;\n this._query = {};\n this.only = transform('only');\n this.except = transform('except');\n this.addParam = addParam;\n }\n\n static Query() {\n return new Query(this.connection, this.module(true), this.contentTypeUid);\n }\n\n\n static create(payload) {\n const options = { payload, content_type_uid: this.contentTypeUid, action: `create${this.module()}` };\n return this.connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n update(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch(`update${this.constructor.module()}`, payload);\n }\n\n delete() {\n return this.fetch(`delete${this.constructor.module()}`);\n }\n\n fetch(action, payload) {\n const options = {\n payload,\n content_type_uid: this.constructor.contentTypeUid,\n uid: this.uid,\n params: this._query,\n action: action || `get${this.constructor.module()}`\n };\n\n if (!payload) { delete options.payload; }\n if (!this.constructor.contentTypeUid) { delete options.content_type_uid; }\n return this.constructor.connection.sendToParent('stackQuery', options)\n .then(onData).catch(onError);\n }\n}\n","/* @flow */\n\n// eslint-disable-next-line import/no-commonjs\nmodule.exports = require('./dist/post-robot');\n\n// eslint-disable-next-line import/no-commonjs\nmodule.exports.default = module.exports;\n","const excludedDataTypesForSetField = ['file', 'reference', 'blocks', 'group', 'global_field'];\n\nfunction separateResolvedData(field, value) {\n let resolvedData = value;\n let unResolvedData = value;\n if (field.data_type === 'file') {\n if (value) {\n resolvedData = value;\n unResolvedData = field.schema.multiple === true ?\n value.map(file => file.uid) :\n value.uid;\n } else if (field.schema.multiple === true) {\n resolvedData = [];\n unResolvedData = [];\n }\n }\n return { resolvedData, unResolvedData };\n}\n\n/** Class representing a field from Contentstack UI. Only available for Custom Field extension */\nclass Field {\n /**\n * @hideconstructor\n */\n constructor(fieldDataObject, connection, emitter) {\n /**\n * The UID of the current field is defined in the content type of the entry.\n * @type {string}\n */\n this.uid = fieldDataObject.data.uid;\n /**\n * The data type of the current field is set using this method.\n * @type {string}\n */\n this.data_type = fieldDataObject.data.schema.data_type;\n /**\n * The schema of the current field (schema of fields such as ‘Single Line Textbox’, ‘Number’,\n * and so on) is set using this method.\n * @type {Object}\n */\n this.schema = fieldDataObject.data.schema;\n this._emitter = emitter;\n\n let separatedData = separateResolvedData(this, fieldDataObject.data.value);\n\n this._data = separatedData.unResolvedData;\n\n this._resolvedData = separatedData.resolvedData;\n\n this._connection = connection;\n\n this._self = fieldDataObject.data.self || false;\n\n const fieldObj = this;\n\n emitter.on('updateFields', (event) => {\n const path = fieldObj.uid.split('.');\n let value = event.data;\n\n path.forEach((key) => {\n if (value) { value = value[key]; }\n });\n\n if (fieldObj._data !== value) {\n fieldObj._data = value;\n }\n });\n }\n\n /**\n * Sets the data for the current field.\n * @param {Object|string|number} data Data to be set on the field\n * @return {external:Promise} A promise object which is resolved when data is set for a field. Note: The data set by this function will only be saved when user saves the entry.\n */\n\n setData(data) {\n const currentFieldObj = this;\n const dataObj = { data, uid: currentFieldObj.uid, self: currentFieldObj._self };\n\n if (!currentFieldObj._self &&\n ((excludedDataTypesForSetField.indexOf(currentFieldObj.data_type) !== -1) ||\n !currentFieldObj.data_type)) { return Promise.reject(new Error('Cannot call set data for current field type')); }\n\n return this._connection.sendToParent('setData', dataObj).then(() => {\n this._data = data;\n return Promise.resolve(currentFieldObj);\n }).catch(e => Promise.reject(e));\n }\n\n /**\n * Gets the data of the current field\n * @param {Object} options Options object for get Data method.\n * @param {boolean} options.resolved If the resolved parameter is set to true for the File field, then the method will return a resolved asset object along with all the field metadata, e.g. 'field.getData({resolved:true})'.\n * @return {Object|string|number} Returns the field data.\n */\n getData({ resolved = false } = {}) {\n return resolved ? this._resolvedData : this._data;\n }\n\n /**\n * Sets the focus for a field when an extension is being used. This method shows user presence and highlights the extension field that the user is currently accessing in Contentstack UI.\n * @return {Object} A promise object which is resolved when Contentstack UI returns an acknowledgement of the focused state.\n */\n setFocus() {\n return this._connection.sendToParent('focus');\n }\n\n /**\n * This function is called when another extension programmatically changes data of this field using field.setData() function, only available for extension field, only support extensions of data type text, number, boolean or date.\n * @param {function} callback The function to be called when an entry is published.\n */\n onChange(callback) {\n const fieldObj = this;\n if (callback && typeof (callback) === 'function') {\n fieldObj._emitter.on('extensionFieldChange', (event) => {\n this._data = event.data;\n this._resolvedData = event.data;\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n}\n\nexport default Field;\n","module.exports = require('./lib/index.js').default;\n","import Extension from './extension.js';\nimport postRobot from 'post-robot';\nimport { version } from '../package.json';\n\npostRobot.CONFIG.LOG_LEVEL = 'error';\n\n/** Class to initialize the plugin on Contentstack UI. */\n/**\n * @hideconstructor\n */\n\nclass ContentstackUIExtension {\n /**\n * You need to first include Contentstack UI Extensions SDK and\n * Contentstack UI Stylesheet in you HTML file and then call\n * ContentstackUIExtension.init in the script tag.\n * @example\n * HTML\n * \n * \n * @example Custom Filed\n * // javascript\n * ContentstackUIExtension.init().then(function (extension) {\n * var value = extension.field.getData()\n * extension.field.setData(\"New Field Data\")\n * })\n * @example Custom Widget\n * // javascript\n * ContentstackUIExtension.init().then(function (extension) {\n * var entry = extension.entry.getData()\n * })\n * @example Dashboard Widget\n * // javascript\n * ContentstackUIExtension.init().then(function (extension) {\n * var stack = extension.stack;\n * var stackData = stack.getData();\n * })\n * @return {external:Promise} A promise object which will be resolved with an instance of the {@link Extension} class which is instantiated using the data received from the Contentstack UI.\n */\n static init() {\n if (this._extension) { return Promise.resolve(this._extension); }\n return Extension.initialize(version).then((initializationData) => {\n this._extension = new Extension(initializationData);\n return Promise.resolve(this._extension);\n }).catch((e) => Promise.reject(e));\n }\n\n\n /**\n * Version of Contentstack UI extension.\n * @type {string}\n */\n static get SDK_VERSION() {\n return version;\n }\n}\n\nexport default ContentstackUIExtension;\n","import postRobot from 'post-robot';\nimport Field from './field.js';\nimport Window from './window.js';\nimport Stack from './stack';\nimport Entry from './entry.js';\nimport Store from './store.js';\nimport EventEmitter from 'wolfy87-eventemitter';\n\nconst emitter = new EventEmitter();\n\n/** Class representing an extension from Contentstack UI. */\n\nclass Extension {\n /**\n * @hideconstructor\n */\n constructor(initData) {\n const initializationData = initData;\n\n this.postRobot = postRobot;\n /**\n * This method gives you the configuration parameters. Check out our {@link https://www.contentstack.com/docs/guide/extensions|UI Extension documentation} .\n * @type {Object}\n */\n\n this.config = initializationData.data.config;\n /**\n * This object holds details of the current user.\n * @type {Object}\n */\n this.currentUser = initializationData.data.user;\n /**\n * type of extension, 'FIELD' || 'WIDGET' || 'DASHBOARD'.\n * @type {string}\n */\n this.type = initializationData.data.type || 'FIELD';\n\n\n if (this.type === 'FIELD') {\n /**\n * This method gives you the instance configuration parameters set from the content type builder page in the field settings. This is only available for the Custom Field extension.\n * @type {Object}\n */\n this.fieldConfig = initializationData.data.field_config;\n\n\n initializationData.data.self = true;\n /**\n * Gives you the extension field object which allows you to interact with the field. Only available for the Custom Field extension.\n * @type {Field}\n */\n this.field = new Field(initializationData, postRobot, emitter);\n }\n\n /**\n * Store to persist data for extension.\n * Note: Data is stored in the browser {@link external:localStorage} and will be lost if the {@link external:localStorage} is cleared in the browser.\n * @type {Store}\n */\n this.store = new Store(postRobot);\n\n if (this.type !== 'DASHBOARD') {\n /**\n * This gives you the entry object which allows you to interact with the current entry. Not available in case of the Dashboard Widget extension.\n * @type {Entry}\n */\n this.entry = new Entry(initializationData, postRobot, emitter);\n }\n\n\n if (this.type === 'FIELD' || this.type === 'DASHBOARD') {\n /**\n * The window object provides users with methods that allow them to adjust the size of the iframe that contains the extension. Not available in case of custom widgets.\n * @type {Window}\n */\n this.window = new Window(postRobot, this.type, emitter, initializationData.data.dashboard_width);\n }\n\n /**\n * This method returns stack object which allows users to read and manipulate a range of objects in a stack.\n * @type {Stack}\n */\n this.stack = new Stack(initializationData.data.stack, postRobot);\n\n postRobot.on('extensionEvent', (event) => {\n if (event.data.name === 'entrySave') {\n emitter.emitEvent('entrySave', [{ data: event.data.data }]);\n emitter.emitEvent('updateFields', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'entryChange') {\n emitter.emitEvent('entryChange', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'entryPublish') {\n emitter.emitEvent('entryPublish', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'entryUnPublish') {\n emitter.emitEvent('entryUnPublish', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'dashboardResize') {\n emitter.emitEvent('dashboardResize', [{ state: event.data.state }]);\n }\n\n if (event.data.name === 'extensionFieldChange') {\n emitter.emitEvent('extensionFieldChange', [{ data: event.data.data }]);\n }\n });\n }\n\n static initialize(version) {\n return postRobot.sendToParent('init', { version });\n }\n\n setReady() {\n return this.postRobot.sendToParent('ready');\n }\n}\n\n\nexport default Extension;\n","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"postRobot\", [], factory) : \"object\" == typeof exports ? exports.postRobot = factory() : root.postRobot = factory();\n}(\"undefined\" != typeof self ? self : this, function() {\n return function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n configurable: !1,\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n }({\n \"./node_modules/cross-domain-utils/src/index.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(\"./node_modules/cross-domain-utils/src/utils.js\");\n __webpack_require__.d(__webpack_exports__, \"getActualDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.a;\n });\n __webpack_require__.d(__webpack_exports__, \"getAncestor\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.b;\n });\n __webpack_require__.d(__webpack_exports__, \"getDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.c;\n });\n __webpack_require__.d(__webpack_exports__, \"getUserAgent\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.d;\n });\n __webpack_require__.d(__webpack_exports__, \"isActuallySameDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.e;\n });\n __webpack_require__.d(__webpack_exports__, \"isAncestor\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.f;\n });\n __webpack_require__.d(__webpack_exports__, \"isIframe\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.g;\n });\n __webpack_require__.d(__webpack_exports__, \"isPopup\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.h;\n });\n __webpack_require__.d(__webpack_exports__, \"isWindow\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.i;\n });\n __webpack_require__.d(__webpack_exports__, \"isWindowClosed\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.j;\n });\n __webpack_require__.d(__webpack_exports__, \"matchDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.k;\n });\n __webpack_require__.d(__webpack_exports__, \"stringifyDomainPattern\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.l;\n });\n var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__(\"./node_modules/cross-domain-utils/src/types.js\");\n __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__types__);\n },\n \"./node_modules/cross-domain-utils/src/types.js\": function(module, exports) {},\n \"./node_modules/cross-domain-utils/src/utils.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n function isRegex(item) {\n return \"[object RegExp]\" === Object.prototype.toString.call(item);\n }\n __webpack_exports__.a = getActualDomain;\n __webpack_exports__.c = getDomain;\n __webpack_exports__.e = isActuallySameDomain;\n __webpack_exports__.j = function(win) {\n var allowMock = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n try {\n if (win === window) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (!win) return !0;\n } catch (err) {\n return !0;\n }\n try {\n if (win.closed) return !0;\n } catch (err) {\n return !err || err.message !== IE_WIN_ACCESS_ERROR;\n }\n if (allowMock && function(win) {\n if (!isActuallySameDomain(win)) return !1;\n try {\n if (win === window) return !0;\n if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;\n if (getDomain(window) === getDomain(win)) return !0;\n } catch (err) {}\n return !1;\n }(win)) try {\n if (win.mockclosed) return !0;\n } catch (err) {}\n try {\n if (!win.parent || !win.top) return !0;\n } catch (err) {}\n var iframeIndex = function(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }(iframeWindows, win);\n if (-1 !== iframeIndex) {\n var frame = iframeFrames[iframeIndex];\n if (frame && function(frame) {\n if (!frame.contentWindow) return !0;\n if (!frame.parentNode) return !0;\n var doc = frame.ownerDocument;\n return !(!doc || !doc.body || doc.body.contains(frame));\n }(frame)) return !0;\n }\n return !1;\n };\n __webpack_exports__.d = function(win) {\n return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;\n };\n __webpack_exports__.b = getAncestor;\n __webpack_exports__.f = function(parent, child) {\n var actualParent = getAncestor(child);\n if (actualParent) return actualParent === parent;\n if (child === parent) return !1;\n if (function(win) {\n if (win) {\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (getParent(win) === win) return win;\n try {\n if (isAncestorParent(window, win) && window.top) return window.top;\n } catch (err) {}\n try {\n if (isAncestorParent(win, window) && window.top) return window.top;\n } catch (err) {}\n for (var _i7 = 0, _getAllChildFrames4 = function getAllChildFrames(win) {\n for (var result = [], _i3 = 0, _getFrames2 = getFrames(win), _length2 = null == _getFrames2 ? 0 : _getFrames2.length; _i3 < _length2; _i3++) {\n var frame = _getFrames2[_i3];\n result.push(frame);\n for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame), _length4 = null == _getAllChildFrames2 ? 0 : _getAllChildFrames2.length; _i5 < _length4; _i5++) {\n var childFrame = _getAllChildFrames2[_i5];\n result.push(childFrame);\n }\n }\n return result;\n }(win), _length6 = null == _getAllChildFrames4 ? 0 : _getAllChildFrames4.length; _i7 < _length6; _i7++) {\n var frame = _getAllChildFrames4[_i7];\n try {\n if (frame.top) return frame.top;\n } catch (err) {}\n if (getParent(frame) === frame) return frame;\n }\n }\n }(child) === child) return !1;\n for (var _i16 = 0, _getFrames8 = getFrames(parent), _length14 = null == _getFrames8 ? 0 : _getFrames8.length; _i16 < _length14; _i16++) if (_getFrames8[_i16] === child) return !0;\n return !1;\n };\n __webpack_exports__.h = function() {\n return Boolean(getOpener(window));\n };\n __webpack_exports__.g = function() {\n return Boolean(getParent(window));\n };\n __webpack_exports__.k = function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return pattern === CONSTANTS.WILDCARD || origin === pattern;\n if (isRegex(origin)) return !1;\n if (Array.isArray(origin)) return !1;\n }\n return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some(function(subpattern) {\n return matchDomain(subpattern, origin);\n }));\n };\n __webpack_exports__.l = function(pattern) {\n return Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() : pattern.toString();\n };\n __webpack_exports__.i = function(obj) {\n try {\n if (obj === window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (\"[object Window]\" === Object.prototype.toString.call(obj)) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (window.Window && obj instanceof window.Window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.self === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.parent === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.top === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n obj && obj.__cross_domain_utils_window_check__;\n } catch (err) {\n return !0;\n }\n return !1;\n };\n var CONSTANTS = {\n MOCK_PROTOCOL: \"mock:\",\n FILE_PROTOCOL: \"file:\",\n ABOUT_PROTOCOL: \"about:\",\n WILDCARD: \"*\"\n }, IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function isAboutProtocol() {\n return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window).location.protocol === CONSTANTS.ABOUT_PROTOCOL;\n }\n function getParent(win) {\n if (win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n if (win && !getParent(win)) try {\n return win.opener;\n } catch (err) {}\n }\n function canReadFromWindow(win) {\n try {\n win && win.location && win.location.href;\n return !0;\n } catch (err) {}\n return !1;\n }\n function getActualDomain(win) {\n var location = (win = win || window).location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = location.protocol;\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (protocol === CONSTANTS.FILE_PROTOCOL) return CONSTANTS.FILE_PROTOCOL + \"//\";\n if (protocol === CONSTANTS.ABOUT_PROTOCOL) {\n var parent = getParent(win);\n return parent && canReadFromWindow(parent) ? getActualDomain(parent) : CONSTANTS.ABOUT_PROTOCOL + \"//\";\n }\n var host = location.host;\n if (!host) throw new Error(\"Can not read window host\");\n return protocol + \"//\" + host;\n }\n function getDomain(win) {\n var domain = getActualDomain(win = win || window);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(CONSTANTS.MOCK_PROTOCOL) ? win.mockDomain : domain;\n }\n function isActuallySameDomain(win) {\n try {\n if (win === window) return !0;\n } catch (err) {}\n try {\n var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n if (desc && !1 === desc.enumerable) return !1;\n } catch (err) {}\n try {\n if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;\n } catch (err) {}\n try {\n if (getActualDomain(win) === getActualDomain(window)) return !0;\n } catch (err) {}\n return !1;\n }\n function isAncestorParent(parent, child) {\n if (!parent || !child) return !1;\n var childParent = getParent(child);\n return childParent ? childParent === parent : -1 !== function(win) {\n var result = [];\n try {\n for (;win.parent !== win; ) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var result = [], frames = void 0;\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n var len = void 0;\n try {\n len = frames.length;\n } catch (err) {}\n if (0 === len) return result;\n if (len) {\n for (var i = 0; i < len; i++) {\n var frame = void 0;\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n result.push(frame);\n }\n return result;\n }\n for (var _i = 0; _i < 100; _i++) {\n var _frame = void 0;\n try {\n _frame = frames[_i];\n } catch (err) {\n return result;\n }\n if (!_frame) return result;\n result.push(_frame);\n }\n return result;\n }\n var iframeWindows = [], iframeFrames = [];\n function getAncestor(win) {\n return getOpener(win = win || window) || getParent(win) || void 0;\n }\n },\n \"./src/index.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n Object.defineProperty(__webpack_exports__, \"__esModule\", {\n value: !0\n });\n __webpack_require__.d({}, \"WeakMap\", function() {\n return weakmap_CrossDomainSafeWeakMap;\n });\n var src_interface_namespaceObject = {};\n __webpack_require__.d(src_interface_namespaceObject, \"cleanUpWindow\", function() {\n return cleanUpWindow;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"Promise\", function() {\n return promise_ZalgoPromise;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"bridge\", function() {\n return bridge;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"init\", function() {\n return init;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"parent\", function() {\n return public_parent;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"send\", function() {\n return _send;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"request\", function() {\n return request;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"sendToParent\", function() {\n return sendToParent;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"client\", function() {\n return client;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"on\", function() {\n return _on;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"listen\", function() {\n return listen;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"once\", function() {\n return server_once;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"listener\", function() {\n return server_listener;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"CONFIG\", function() {\n return CONFIG;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"CONSTANTS\", function() {\n return constants_CONSTANTS;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"disable\", function() {\n return disable;\n });\n var src = __webpack_require__(\"./node_modules/cross-domain-utils/src/index.js\");\n function safeIndexOf(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }\n var _ALLOWED_POST_MESSAGE, defineProperty = Object.defineProperty, counter = Date.now() % 1e9, weakmap_CrossDomainSafeWeakMap = function() {\n function CrossDomainSafeWeakMap() {\n !function(instance, Constructor) {\n if (!(instance instanceof CrossDomainSafeWeakMap)) throw new TypeError(\"Cannot call a class as a function\");\n }(this);\n counter += 1;\n this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\" + counter;\n if (function() {\n if (!window.WeakMap) return !1;\n if (!window.Object.freeze) return !1;\n try {\n var testWeakMap = new window.WeakMap(), testKey = {};\n window.Object.freeze(testKey);\n testWeakMap.set(testKey, \"__testvalue__\");\n return \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new window.WeakMap();\n } catch (err) {}\n this.keys = [];\n this.values = [];\n }\n CrossDomainSafeWeakMap.prototype._cleanupClosedWindows = function() {\n for (var weakmap = this.weakmap, keys = this.keys, i = 0; i < keys.length; i++) {\n var value = keys[i];\n if (Object(src.isWindow)(value) && Object(src.isWindowClosed)(value)) {\n if (weakmap) try {\n weakmap.delete(value);\n } catch (err) {}\n keys.splice(i, 1);\n this.values.splice(i, 1);\n i -= 1;\n }\n }\n };\n CrossDomainSafeWeakMap.prototype.isSafeToReadWrite = function(key) {\n if (Object(src.isWindow)(key)) return !1;\n try {\n key && key.self;\n key && key[this.name];\n } catch (err) {\n return !1;\n }\n return !0;\n };\n CrossDomainSafeWeakMap.prototype.set = function(key, value) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var name = this.name, entry = key[name];\n entry && entry[0] === key ? entry[1] = value : defineProperty(key, name, {\n value: [ key, value ],\n writable: !0\n });\n } else {\n this._cleanupClosedWindows();\n var keys = this.keys, values = this.values, index = safeIndexOf(keys, key);\n if (-1 === index) {\n keys.push(key);\n values.push(value);\n } else values[index] = value;\n }\n };\n CrossDomainSafeWeakMap.prototype.get = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return weakmap.get(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (!this.isSafeToReadWrite(key)) {\n this._cleanupClosedWindows();\n var index = safeIndexOf(this.keys, key);\n if (-1 === index) return;\n return this.values[index];\n }\n var entry = key[this.name];\n if (entry && entry[0] === key) return entry[1];\n };\n CrossDomainSafeWeakMap.prototype.delete = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var entry = key[this.name];\n entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n } else {\n this._cleanupClosedWindows();\n var keys = this.keys, index = safeIndexOf(keys, key);\n if (-1 !== index) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n }\n };\n CrossDomainSafeWeakMap.prototype.has = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n return weakmap.has(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var entry = key[this.name];\n return !(!entry || entry[0] !== key);\n }\n this._cleanupClosedWindows();\n return -1 !== safeIndexOf(this.keys, key);\n };\n return CrossDomainSafeWeakMap;\n }(), constants_CONSTANTS = {\n POST_MESSAGE_TYPE: {\n REQUEST: \"postrobot_message_request\",\n RESPONSE: \"postrobot_message_response\",\n ACK: \"postrobot_message_ack\"\n },\n POST_MESSAGE_ACK: {\n SUCCESS: \"success\",\n ERROR: \"error\"\n },\n POST_MESSAGE_NAMES: {\n METHOD: \"postrobot_method\",\n HELLO: \"postrobot_ready\",\n OPEN_TUNNEL: \"postrobot_open_tunnel\"\n },\n WINDOW_TYPES: {\n FULLPAGE: \"fullpage\",\n POPUP: \"popup\",\n IFRAME: \"iframe\"\n },\n WINDOW_PROPS: {\n POSTROBOT: \"__postRobot__\"\n },\n SERIALIZATION_TYPES: {\n METHOD: \"postrobot_method\",\n ERROR: \"postrobot_error\",\n PROMISE: \"postrobot_promise\",\n ZALGO_PROMISE: \"postrobot_zalgo_promise\",\n REGEX: \"regex\"\n },\n SEND_STRATEGIES: {\n POST_MESSAGE: \"postrobot_post_message\",\n BRIDGE: \"postrobot_bridge\",\n GLOBAL: \"postrobot_global\"\n },\n MOCK_PROTOCOL: \"mock:\",\n FILE_PROTOCOL: \"file:\",\n BRIDGE_NAME_PREFIX: \"__postrobot_bridge__\",\n POSTROBOT_PROXY: \"__postrobot_proxy__\",\n WILDCARD: \"*\"\n }, POST_MESSAGE_NAMES = {\n METHOD: \"postrobot_method\",\n HELLO: \"postrobot_hello\",\n OPEN_TUNNEL: \"postrobot_open_tunnel\"\n }, CONFIG = (Object.keys(POST_MESSAGE_NAMES).map(function(key) {\n return POST_MESSAGE_NAMES[key];\n }), {\n ALLOW_POSTMESSAGE_POPUP: !(\"__ALLOW_POSTMESSAGE_POPUP__\" in window) || window.__ALLOW_POSTMESSAGE_POPUP__,\n BRIDGE_TIMEOUT: 5e3,\n CHILD_WINDOW_TIMEOUT: 5e3,\n ACK_TIMEOUT: -1 !== window.navigator.userAgent.match(/MSIE/i) ? 2e3 : 1e3,\n RES_TIMEOUT: -1,\n ALLOWED_POST_MESSAGE_METHODS: (_ALLOWED_POST_MESSAGE = {}, _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = !0, \n _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.BRIDGE] = !0, _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.GLOBAL] = !0, \n _ALLOWED_POST_MESSAGE),\n ALLOW_SAME_ORIGIN: !1\n });\n 0 === window.location.href.indexOf(constants_CONSTANTS.FILE_PROTOCOL) && (CONFIG.ALLOW_POSTMESSAGE_POPUP = !0);\n var _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function stringifyError(err) {\n var level = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;\n if (level >= 3) return \"stringifyError stack overflow\";\n try {\n if (!err) return \"\";\n if (\"string\" == typeof err) return err;\n if (err instanceof Error) {\n var stack = err && err.stack, message = err && err.message;\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n if (stack) return stack;\n if (message) return message;\n }\n return \"function\" == typeof err.toString ? err.toString() : Object.prototype.toString.call(err);\n } catch (newErr) {\n return \"Error while stringifying error: \" + stringifyError(newErr, level + 1);\n }\n }\n var once = function(method) {\n if (!method) return method;\n var called = !1;\n return function() {\n if (!called) {\n called = !0;\n return method.apply(this, arguments);\n }\n };\n };\n function util_noop() {}\n function uniqueID() {\n var chars = \"0123456789abcdef\";\n return \"xxxxxxxxxx\".replace(/./g, function() {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n });\n }\n function replaceObject(item, callback) {\n var depth = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\n if (depth >= 100) throw new Error(\"Self-referential object passed, or object contained too many layers\");\n var newobj = void 0;\n if (\"object\" !== (void 0 === item ? \"undefined\" : _typeof(item)) || null === item || Array.isArray(item)) {\n if (!Array.isArray(item)) throw new TypeError(\"Invalid type: \" + (void 0 === item ? \"undefined\" : _typeof(item)));\n newobj = [];\n } else newobj = {};\n !function(item, callback) {\n Array.isArray(item) ? function(item, callback) {\n for (var i = 0; i < item.length; i++) callback(item[i], i);\n }(item, callback) : \"object\" === (void 0 === item ? \"undefined\" : _typeof(item)) && null !== item && function(item, callback) {\n for (var _key in item) item.hasOwnProperty(_key) && callback(item[_key], _key);\n }(item, callback);\n }(item, function(childItem, key) {\n var result = callback(childItem, key);\n void 0 !== result ? newobj[key] = result : \"object\" === (void 0 === childItem ? \"undefined\" : _typeof(childItem)) && null !== childItem ? newobj[key] = replaceObject(childItem, callback, depth + 1) : newobj[key] = childItem;\n });\n return newobj;\n }\n function isRegex(item) {\n return \"[object RegExp]\" === Object.prototype.toString.call(item);\n }\n function utils_isPromise(item) {\n try {\n if (!item) return !1;\n if (\"undefined\" != typeof Promise && item instanceof Promise) return !0;\n if (\"undefined\" != typeof window && window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && window.constructor && item instanceof window.constructor) return !1;\n var _toString = {}.toString;\n if (_toString) {\n var name = _toString.call(item);\n if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n }\n if (\"function\" == typeof item.then) return !0;\n } catch (err) {\n return !1;\n }\n return !1;\n }\n function getGlobal() {\n var glob = void 0;\n if (\"undefined\" != typeof window) glob = window; else {\n if (\"undefined\" == typeof window) throw new TypeError(\"Can not find global\");\n glob = window;\n }\n var zalgoGlobal = glob.__zalgopromise__ = glob.__zalgopromise__ || {};\n zalgoGlobal.flushPromises = zalgoGlobal.flushPromises || [];\n zalgoGlobal.activeCount = zalgoGlobal.activeCount || 0;\n zalgoGlobal.possiblyUnhandledPromiseHandlers = zalgoGlobal.possiblyUnhandledPromiseHandlers || [];\n zalgoGlobal.dispatchedErrors = zalgoGlobal.dispatchedErrors || [];\n return zalgoGlobal;\n }\n var promise_ZalgoPromise = function() {\n function ZalgoPromise(handler) {\n var _this = this;\n !function(instance, Constructor) {\n if (!(instance instanceof ZalgoPromise)) throw new TypeError(\"Cannot call a class as a function\");\n }(this);\n this.resolved = !1;\n this.rejected = !1;\n this.errorHandled = !1;\n this.handlers = [];\n if (handler) {\n var _result = void 0, _error = void 0, resolved = !1, rejected = !1, isAsync = !1;\n try {\n handler(function(res) {\n if (isAsync) _this.resolve(res); else {\n resolved = !0;\n _result = res;\n }\n }, function(err) {\n if (isAsync) _this.reject(err); else {\n rejected = !0;\n _error = err;\n }\n });\n } catch (err) {\n this.reject(err);\n return;\n }\n isAsync = !0;\n resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n ZalgoPromise.prototype.resolve = function(result) {\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(result)) throw new Error(\"Can not resolve promise with another promise\");\n this.resolved = !0;\n this.value = result;\n this.dispatch();\n return this;\n };\n ZalgoPromise.prototype.reject = function(error) {\n var _this2 = this;\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(error)) throw new Error(\"Can not reject promise with another promise\");\n if (!error) {\n var _err = error && \"function\" == typeof error.toString ? error.toString() : Object.prototype.toString.call(error);\n error = new Error(\"Expected reject to be called with Error, got \" + _err);\n }\n this.rejected = !0;\n this.error = error;\n this.errorHandled || setTimeout(function() {\n _this2.errorHandled || function(err, promise) {\n if (-1 === getGlobal().dispatchedErrors.indexOf(err)) {\n getGlobal().dispatchedErrors.push(err);\n setTimeout(function() {\n throw err;\n }, 1);\n for (var j = 0; j < getGlobal().possiblyUnhandledPromiseHandlers.length; j++) getGlobal().possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n }(error, _this2);\n }, 1);\n this.dispatch();\n return this;\n };\n ZalgoPromise.prototype.asyncReject = function(error) {\n this.errorHandled = !0;\n this.reject(error);\n };\n ZalgoPromise.prototype.dispatch = function() {\n var _this3 = this, dispatching = this.dispatching, resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n if (!dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n getGlobal().activeCount += 1;\n for (var _loop = function(i) {\n var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise, result = void 0;\n if (resolved) try {\n result = onSuccess ? onSuccess(_this3.value) : _this3.value;\n } catch (err) {\n promise.reject(err);\n return \"continue\";\n } else if (rejected) {\n if (!onError) {\n promise.reject(_this3.error);\n return \"continue\";\n }\n try {\n result = onError(_this3.error);\n } catch (err) {\n promise.reject(err);\n return \"continue\";\n }\n }\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n result.resolved ? promise.resolve(result.value) : promise.reject(result.error);\n result.errorHandled = !0;\n } else utils_isPromise(result) ? result instanceof ZalgoPromise && (result.resolved || result.rejected) ? result.resolved ? promise.resolve(result.value) : promise.reject(result.error) : result.then(function(res) {\n promise.resolve(res);\n }, function(err) {\n promise.reject(err);\n }) : promise.resolve(result);\n }, i = 0; i < handlers.length; i++) _loop(i);\n handlers.length = 0;\n this.dispatching = !1;\n getGlobal().activeCount -= 1;\n 0 === getGlobal().activeCount && ZalgoPromise.flushQueue();\n }\n };\n ZalgoPromise.prototype.then = function(onSuccess, onError) {\n if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n var promise = new ZalgoPromise();\n this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n });\n this.errorHandled = !0;\n this.dispatch();\n return promise;\n };\n ZalgoPromise.prototype.catch = function(onError) {\n return this.then(void 0, onError);\n };\n ZalgoPromise.prototype.finally = function(onFinally) {\n if (onFinally && \"function\" != typeof onFinally && !onFinally.call) throw new Error(\"Promise.finally expected a function\");\n return this.then(function(result) {\n return ZalgoPromise.try(onFinally).then(function() {\n return result;\n });\n }, function(err) {\n return ZalgoPromise.try(onFinally).then(function() {\n throw err;\n });\n });\n };\n ZalgoPromise.prototype.timeout = function(time, err) {\n var _this4 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout(function() {\n _this4.resolved || _this4.rejected || _this4.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }, time);\n return this.then(function(result) {\n clearTimeout(timeout);\n return result;\n });\n };\n ZalgoPromise.prototype.toPromise = function() {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\n };\n ZalgoPromise.resolve = function(value) {\n return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise(function(resolve, reject) {\n return value.then(resolve, reject);\n }) : new ZalgoPromise().resolve(value);\n };\n ZalgoPromise.reject = function(error) {\n return new ZalgoPromise().reject(error);\n };\n ZalgoPromise.all = function(promises) {\n var promise = new ZalgoPromise(), count = promises.length, results = [];\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n for (var _loop2 = function(i) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n return \"continue\";\n }\n } else if (!utils_isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n return \"continue\";\n }\n ZalgoPromise.resolve(prom).then(function(result) {\n results[i] = result;\n 0 == (count -= 1) && promise.resolve(results);\n }, function(err) {\n promise.reject(err);\n });\n }, i = 0; i < promises.length; i++) _loop2(i);\n 0 === count && promise.resolve(results);\n return promise;\n };\n ZalgoPromise.hash = function(promises) {\n var result = {};\n return ZalgoPromise.all(Object.keys(promises).map(function(key) {\n return ZalgoPromise.resolve(promises[key]).then(function(value) {\n result[key] = value;\n });\n })).then(function() {\n return result;\n });\n };\n ZalgoPromise.map = function(items, method) {\n return ZalgoPromise.all(items.map(method));\n };\n ZalgoPromise.onPossiblyUnhandledException = function(handler) {\n return function(handler) {\n getGlobal().possiblyUnhandledPromiseHandlers.push(handler);\n return {\n cancel: function() {\n getGlobal().possiblyUnhandledPromiseHandlers.splice(getGlobal().possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\n };\n ZalgoPromise.try = function(method, context, args) {\n if (method && \"function\" != typeof method && !method.call) throw new Error(\"Promise.try expected a function\");\n var result = void 0;\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n return ZalgoPromise.reject(err);\n }\n return ZalgoPromise.resolve(result);\n };\n ZalgoPromise.delay = function(_delay) {\n return new ZalgoPromise(function(resolve) {\n setTimeout(resolve, _delay);\n });\n };\n ZalgoPromise.isPromise = function(value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n };\n ZalgoPromise.flush = function() {\n var promise = new ZalgoPromise();\n getGlobal().flushPromises.push(promise);\n 0 === getGlobal().activeCount && ZalgoPromise.flushQueue();\n return promise;\n };\n ZalgoPromise.flushQueue = function() {\n var promisesToFlush = getGlobal().flushPromises;\n getGlobal().flushPromises = [];\n for (var _i2 = 0, _length2 = null == promisesToFlush ? 0 : promisesToFlush.length; _i2 < _length2; _i2++) promisesToFlush[_i2].resolve();\n };\n return ZalgoPromise;\n }(), global = window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] = window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] || {};\n global.registerSelf = function() {};\n var serialize__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n global.methods = global.methods || new weakmap_CrossDomainSafeWeakMap();\n var listenForMethods = once(function() {\n global.on(constants_CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n origin: constants_CONSTANTS.WILDCARD\n }, function(_ref) {\n var source = _ref.source, origin = _ref.origin, data = _ref.data, methods = global.methods.get(source);\n if (!methods) throw new Error(\"Could not find any methods this window has privileges to call\");\n var meth = methods[data.id];\n if (!meth) throw new Error(\"Could not find method with id: \" + data.id);\n if (!Object(src.matchDomain)(meth.domain, origin)) throw new Error(\"Method domain \" + meth.domain + \" does not match origin \" + origin);\n return promise_ZalgoPromise.try(function() {\n return meth.method.apply({\n source: source,\n origin: origin,\n data: data\n }, data.args);\n }).then(function(result) {\n return {\n result: result,\n id: data.id,\n name: data.name\n };\n });\n });\n });\n function isSerialized(item, type) {\n return \"object\" === (void 0 === item ? \"undefined\" : serialize__typeof(item)) && null !== item && item.__type__ === type;\n }\n function serializeMethod(destination, domain, method, name) {\n var id = uniqueID(), methods = global.methods.get(destination);\n if (!methods) {\n methods = {};\n global.methods.set(destination, methods);\n }\n methods[id] = {\n domain: domain,\n method: method\n };\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.METHOD,\n __id__: id,\n __name__: name\n };\n }\n function deserializeMethod(source, origin, obj) {\n function wrapper() {\n var args = Array.prototype.slice.call(arguments);\n return global.send(source, constants_CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n id: obj.__id__,\n name: obj.__name__,\n args: args\n }, {\n domain: origin,\n timeout: -1\n }).then(function(_ref2) {\n return _ref2.data.result;\n }, function(err) {\n throw err;\n });\n }\n wrapper.__name__ = obj.__name__;\n wrapper.__xdomain__ = !0;\n wrapper.source = source;\n wrapper.origin = origin;\n return wrapper;\n }\n function deserializeZalgoPromise(source, origin, prom) {\n return new promise_ZalgoPromise(function(resolve, reject) {\n return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n });\n }\n global.readyPromises = global.readyPromises || new weakmap_CrossDomainSafeWeakMap();\n function sayHello(win) {\n return global.send(win, constants_CONSTANTS.POST_MESSAGE_NAMES.HELLO, {}, {\n domain: constants_CONSTANTS.WILDCARD,\n timeout: -1\n }).then(function(_ref2) {\n return {\n origin: _ref2.origin\n };\n });\n }\n var SEND_MESSAGE_STRATEGIES = {};\n SEND_MESSAGE_STRATEGIES[constants_CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = function(win, serializedMessage, domain) {\n (Array.isArray(domain) ? domain : \"string\" == typeof domain ? [ domain ] : [ constants_CONSTANTS.WILDCARD ]).map(function(dom) {\n if (0 === dom.indexOf(constants_CONSTANTS.MOCK_PROTOCOL)) {\n if (window.location.protocol === constants_CONSTANTS.FILE_PROTOCOL) return constants_CONSTANTS.WILDCARD;\n if (!Object(src.isActuallySameDomain)(win)) throw new Error(\"Attempting to send messsage to mock domain \" + dom + \", but window is actually cross-domain\");\n return Object(src.getActualDomain)(win);\n }\n return 0 === dom.indexOf(constants_CONSTANTS.FILE_PROTOCOL) ? constants_CONSTANTS.WILDCARD : dom;\n }).forEach(function(dom) {\n return win.postMessage(serializedMessage, dom);\n });\n };\n var _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n };\n function sendMessage(win, message, domain) {\n return promise_ZalgoPromise.try(function() {\n var _jsonStringify;\n message = function(win, message) {\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, id = uniqueID(), type = Object(src.isPopup)() ? constants_CONSTANTS.WINDOW_TYPES.POPUP : Object(src.isIframe)() ? constants_CONSTANTS.WINDOW_TYPES.IFRAME : constants_CONSTANTS.WINDOW_TYPES.FULLPAGE, sourceDomain = Object(src.getDomain)(window);\n return _extends({}, message, options, {\n sourceDomain: sourceDomain,\n id: message.id || id,\n windowType: type\n });\n }(win, message, {\n data: function(destination, domain, obj) {\n return replaceObject({\n obj: message.data\n }, function(item, key) {\n return \"function\" == typeof item ? serializeMethod(destination, domain, item, key.toString()) : item instanceof Error ? (err = item, \n {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.ERROR,\n __message__: stringifyError(err),\n __code__: err.code\n }) : window.Promise && item instanceof window.Promise ? function(destination, domain, promise, name) {\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.PROMISE,\n __then__: serializeMethod(destination, domain, function(resolve, reject) {\n return promise.then(resolve, reject);\n }, name + \".then\")\n };\n }(destination, domain, item, key.toString()) : promise_ZalgoPromise.isPromise(item) ? function(destination, domain, promise, name) {\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE,\n __then__: serializeMethod(destination, domain, function(resolve, reject) {\n return promise.then(resolve, reject);\n }, name + \".then\")\n };\n }(destination, domain, item, key.toString()) : isRegex(item) ? (regex = item, {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.REGEX,\n __source__: regex.source\n }) : void 0;\n var err, regex;\n }).obj;\n }(win, domain),\n domain: domain\n });\n if (win === window && !CONFIG.ALLOW_SAME_ORIGIN) throw new Error(\"Attemping to send message to self\");\n if (Object(src.isWindowClosed)(win)) throw new Error(\"Window is closed\");\n var messages = [], serializedMessage = function(obj, replacer, indent) {\n var objectToJSON = void 0, arrayToJSON = void 0;\n try {\n if (\"{}\" !== JSON.stringify({})) {\n objectToJSON = Object.prototype.toJSON;\n delete Object.prototype.toJSON;\n }\n if (\"{}\" !== JSON.stringify({})) throw new Error(\"Can not correctly serialize JSON objects\");\n if (\"[]\" !== JSON.stringify([])) {\n arrayToJSON = Array.prototype.toJSON;\n delete Array.prototype.toJSON;\n }\n if (\"[]\" !== JSON.stringify([])) throw new Error(\"Can not correctly serialize JSON objects\");\n } catch (err) {\n throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n }\n var result = JSON.stringify.call(this, obj, null, 2);\n try {\n objectToJSON && (Object.prototype.toJSON = objectToJSON);\n arrayToJSON && (Array.prototype.toJSON = arrayToJSON);\n } catch (err) {\n throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n }\n return result;\n }(((_jsonStringify = {})[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] = message, \n _jsonStringify));\n return promise_ZalgoPromise.map(Object.keys(SEND_MESSAGE_STRATEGIES), function(strategyName) {\n return promise_ZalgoPromise.try(function() {\n if (!CONFIG.ALLOWED_POST_MESSAGE_METHODS[strategyName]) throw new Error(\"Strategy disallowed: \" + strategyName);\n return SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n }).then(function() {\n messages.push(strategyName + \": success\");\n return !0;\n }, function(err) {\n messages.push(strategyName + \": \" + stringifyError(err) + \"\\n\");\n return !1;\n });\n }).then(function(results) {\n var success = results.some(Boolean), status = message.type + \" \" + message.name + \" \" + (success ? \"success\" : \"error\") + \":\\n - \" + messages.join(\"\\n - \") + \"\\n\";\n if (!success) throw new Error(status);\n });\n });\n }\n global.responseListeners = global.responseListeners || {};\n global.requestListeners = global.requestListeners || {};\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new function() {}();\n global.erroredResponseListeners = global.erroredResponseListeners || {};\n var _RECEIVE_MESSAGE_TYPE, __DOMAIN_REGEX__ = \"__domain_regex__\";\n function getResponseListener(hash) {\n return global.responseListeners[hash];\n }\n function deleteResponseListener(hash) {\n delete global.responseListeners[hash];\n }\n function isResponseListenerErrored(hash) {\n return Boolean(global.erroredResponseListeners[hash]);\n }\n function getRequestListener(_ref) {\n var name = _ref.name, win = _ref.win, domain = _ref.domain;\n win === constants_CONSTANTS.WILDCARD && (win = null);\n domain === constants_CONSTANTS.WILDCARD && (domain = null);\n if (!name) throw new Error(\"Name required to get request listener\");\n var nameListeners = global.requestListeners[name];\n if (nameListeners) for (var _i2 = 0, _ref3 = [ win, global.WINDOW_WILDCARD ], _length2 = null == _ref3 ? 0 : _ref3.length; _i2 < _length2; _i2++) {\n var winQualifier = _ref3[_i2], winListeners = winQualifier && nameListeners.get(winQualifier);\n if (winListeners) {\n if (domain && \"string\" == typeof domain) {\n if (winListeners[domain]) return winListeners[domain];\n if (winListeners[__DOMAIN_REGEX__]) for (var _i4 = 0, _winListeners$__DOMAI2 = winListeners[__DOMAIN_REGEX__], _length4 = null == _winListeners$__DOMAI2 ? 0 : _winListeners$__DOMAI2.length; _i4 < _length4; _i4++) {\n var _ref5 = _winListeners$__DOMAI2[_i4], regex = _ref5.regex, listener = _ref5.listener;\n if (Object(src.matchDomain)(regex, domain)) return listener;\n }\n }\n if (winListeners[constants_CONSTANTS.WILDCARD]) return winListeners[constants_CONSTANTS.WILDCARD];\n }\n }\n }\n var types__extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }, RECEIVE_MESSAGE_TYPES = ((_RECEIVE_MESSAGE_TYPE = {})[constants_CONSTANTS.POST_MESSAGE_TYPE.ACK] = function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message ack for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Ack origin \" + origin + \" does not match domain \" + options.domain.toString());\n options.ack = !0;\n }\n }, _RECEIVE_MESSAGE_TYPE[constants_CONSTANTS.POST_MESSAGE_TYPE.REQUEST] = function(source, origin, message) {\n var options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n function respond(data) {\n return message.fireAndForget || Object(src.isWindowClosed)(source) ? promise_ZalgoPromise.resolve() : sendMessage(source, types__extends({\n target: message.originalSource,\n hash: message.hash,\n name: message.name\n }, data), origin);\n }\n return promise_ZalgoPromise.all([ respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.ACK\n }), promise_ZalgoPromise.try(function() {\n if (!options) throw new Error(\"No handler found for post message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Request origin \" + origin + \" does not match domain \" + options.domain.toString());\n var data = message.data;\n return options.handler({\n source: source,\n origin: origin,\n data: data\n });\n }).then(function(data) {\n return respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n ack: constants_CONSTANTS.POST_MESSAGE_ACK.SUCCESS,\n data: data\n });\n }, function(err) {\n var error = stringifyError(err).replace(/^Error: /, \"\"), code = err.code;\n return respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n ack: constants_CONSTANTS.POST_MESSAGE_ACK.ERROR,\n error: error,\n code: code\n });\n }) ]).then(util_noop).catch(function(err) {\n if (options && options.handleError) return options.handleError(err);\n throw err;\n });\n }, _RECEIVE_MESSAGE_TYPE[constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE] = function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message response for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Response origin \" + origin + \" does not match domain \" + Object(src.stringifyDomainPattern)(options.domain));\n deleteResponseListener(message.hash);\n if (message.ack === constants_CONSTANTS.POST_MESSAGE_ACK.ERROR) {\n var err = new Error(message.error);\n message.code && (err.code = message.code);\n return options.respond(err, null);\n }\n if (message.ack === constants_CONSTANTS.POST_MESSAGE_ACK.SUCCESS) {\n var data = message.data || message.response;\n return options.respond(null, {\n source: source,\n origin: origin,\n data: data\n });\n }\n }\n }, _RECEIVE_MESSAGE_TYPE), receive__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n global.receivedMessages = global.receivedMessages || [];\n function receiveMessage(event) {\n if (!window || window.closed) throw new Error(\"Message recieved in closed window\");\n try {\n if (!event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source, origin = event.origin, message = function(message) {\n var item, parsedMessage = void 0;\n try {\n parsedMessage = (item = message, JSON.parse(item));\n } catch (err) {\n return;\n }\n if (parsedMessage && \"object\" === (void 0 === parsedMessage ? \"undefined\" : receive__typeof(parsedMessage)) && null !== parsedMessage && (parsedMessage = parsedMessage[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT]) && \"object\" === (void 0 === parsedMessage ? \"undefined\" : receive__typeof(parsedMessage)) && null !== parsedMessage && parsedMessage.type && \"string\" == typeof parsedMessage.type && RECEIVE_MESSAGE_TYPES[parsedMessage.type]) return parsedMessage;\n }(event.data);\n if (message) {\n if (!message.sourceDomain || \"string\" != typeof message.sourceDomain) throw new Error(\"Expected message to have sourceDomain\");\n 0 !== message.sourceDomain.indexOf(constants_CONSTANTS.MOCK_PROTOCOL) && 0 !== message.sourceDomain.indexOf(constants_CONSTANTS.FILE_PROTOCOL) || (origin = message.sourceDomain);\n if (-1 === global.receivedMessages.indexOf(message.id)) {\n global.receivedMessages.push(message.id);\n if (!Object(src.isWindowClosed)(source) || message.fireAndForget) {\n message.data && (message.data = function(source, origin, obj) {\n return replaceObject({\n obj: message.data\n }, function(item) {\n if (\"object\" === (void 0 === item ? \"undefined\" : serialize__typeof(item)) && null !== item) return isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.METHOD) ? deserializeMethod(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.ERROR) ? function(source, origin, obj) {\n var err = new Error(obj.__message__);\n obj.__code__ && (err.code = obj.__code__);\n return err;\n }(0, 0, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.PROMISE) ? function(source, origin, prom) {\n return window.Promise ? new window.Promise(function(resolve, reject) {\n return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n }) : deserializeZalgoPromise(source, origin, prom);\n }(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE) ? deserializeZalgoPromise(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.REGEX) ? function(source, origin, item) {\n return new RegExp(item.__source__);\n }(0, 0, item) : void 0;\n }).obj;\n }(source, origin));\n RECEIVE_MESSAGE_TYPES[message.type](source, origin, message);\n }\n }\n }\n }\n function messageListener(event) {\n try {\n event.source;\n } catch (err) {\n return;\n }\n receiveMessage({\n source: event.source || event.sourceElement,\n origin: event.origin || event.originalEvent && event.originalEvent.origin,\n data: event.data\n });\n }\n global.receiveMessage = receiveMessage;\n global.requestPromises = global.requestPromises || new weakmap_CrossDomainSafeWeakMap();\n function request(options) {\n return promise_ZalgoPromise.try(function() {\n if (!options.name) throw new Error(\"Expected options.name\");\n var name = options.name, targetWindow = void 0, domain = void 0;\n if (\"string\" == typeof options.window) {\n var el = document.getElementById(options.window);\n if (!el) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be a valid element id\");\n if (\"iframe\" !== el.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be an iframe\");\n if (!el.contentWindow) throw new Error(\"Iframe must have contentWindow. Make sure it has a src attribute and is in the DOM.\");\n targetWindow = el.contentWindow;\n } else if (options.window instanceof HTMLIFrameElement) {\n if (\"iframe\" !== options.window.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be an iframe\");\n if (options.window && !options.window.contentWindow) throw new Error(\"Iframe must have contentWindow. Make sure it has a src attribute and is in the DOM.\");\n options.window && options.window.contentWindow && (targetWindow = options.window.contentWindow);\n } else targetWindow = options.window;\n if (!targetWindow) throw new Error(\"Expected options.window to be a window object, iframe, or iframe element id.\");\n var win = targetWindow;\n domain = options.domain || constants_CONSTANTS.WILDCARD;\n var hash = options.name + \"_\" + uniqueID();\n if (Object(src.isWindowClosed)(win)) throw new Error(\"Target window is closed\");\n var hasResult = !1, requestPromises = global.requestPromises.get(win);\n if (!requestPromises) {\n requestPromises = [];\n global.requestPromises.set(win, requestPromises);\n }\n var requestPromise = promise_ZalgoPromise.try(function() {\n if (Object(src.isAncestor)(window, win)) return function(win) {\n var timeout = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 5e3, name = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"Window\", promise = global.readyPromises.get(win);\n if (promise) return promise;\n promise = new promise_ZalgoPromise();\n global.readyPromises.set(win, promise);\n -1 !== timeout && setTimeout(function() {\n return promise.reject(new Error(name + \" did not load after \" + timeout + \"ms\"));\n }, timeout);\n return promise;\n }(win, options.timeout || CONFIG.CHILD_WINDOW_TIMEOUT);\n }).then(function() {\n var origin = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).origin;\n if (isRegex(domain) && !origin) return sayHello(win);\n }).then(function() {\n var origin = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).origin;\n if (isRegex(domain)) {\n if (!Object(src.matchDomain)(domain, origin)) throw new Error(\"Remote window domain \" + origin + \" does not match regex: \" + domain.toString());\n domain = origin;\n }\n if (\"string\" != typeof domain && !Array.isArray(domain)) throw new TypeError(\"Expected domain to be a string or array\");\n var actualDomain = domain;\n return new promise_ZalgoPromise(function(resolve, reject) {\n var responseListener = void 0;\n options.fireAndForget || function(hash, listener) {\n global.responseListeners[hash] = listener;\n }(hash, responseListener = {\n name: name,\n window: win,\n domain: actualDomain,\n respond: function(err, result) {\n if (!err) {\n hasResult = !0;\n requestPromises.splice(requestPromises.indexOf(requestPromise, 1));\n }\n err ? reject(err) : resolve(result);\n }\n });\n sendMessage(win, {\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.REQUEST,\n hash: hash,\n name: name,\n data: options.data,\n fireAndForget: options.fireAndForget\n }, actualDomain).catch(reject);\n if (options.fireAndForget) return resolve();\n var ackTimeout = CONFIG.ACK_TIMEOUT, resTimeout = options.timeout || CONFIG.RES_TIMEOUT, cycleTime = 100;\n setTimeout(function cycle() {\n if (!hasResult) {\n if (Object(src.isWindowClosed)(win)) return responseListener.ack ? reject(new Error(\"Window closed for \" + name + \" before response\")) : reject(new Error(\"Window closed for \" + name + \" before ack\"));\n ackTimeout = Math.max(ackTimeout - cycleTime, 0);\n -1 !== resTimeout && (resTimeout = Math.max(resTimeout - cycleTime, 0));\n if (responseListener.ack) {\n if (-1 === resTimeout) return;\n cycleTime = Math.min(resTimeout, 2e3);\n } else {\n if (0 === ackTimeout) return reject(new Error(\"No ack for postMessage \" + name + \" in \" + Object(src.getDomain)() + \" in \" + CONFIG.ACK_TIMEOUT + \"ms\"));\n if (0 === resTimeout) return reject(new Error(\"No response for postMessage \" + name + \" in \" + Object(src.getDomain)() + \" in \" + (options.timeout || CONFIG.RES_TIMEOUT) + \"ms\"));\n }\n setTimeout(cycle, cycleTime);\n }\n }, cycleTime);\n });\n });\n requestPromise.catch(function() {\n !function(hash) {\n global.erroredResponseListeners[hash] = !0;\n }(hash);\n deleteResponseListener(hash);\n });\n requestPromises.push(requestPromise);\n return requestPromise;\n });\n }\n function _send(window, name, data, options) {\n (options = options || {}).window = window;\n options.name = name;\n options.data = data;\n return request(options);\n }\n function sendToParent(name, data, options) {\n var win = Object(src.getAncestor)();\n return win ? _send(win, name, data, options) : new promise_ZalgoPromise(function(resolve, reject) {\n return reject(new Error(\"Window does not have a parent\"));\n });\n }\n function client() {\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n if (!options.window) throw new Error(\"Expected options.window\");\n var win = options.window;\n return {\n send: function(name, data) {\n return _send(win, name, data, options);\n }\n };\n }\n global.send = _send;\n var server__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function listen(options) {\n if (!options.name) throw new Error(\"Expected options.name\");\n if (!options.handler) throw new Error(\"Expected options.handler\");\n var name = options.name, win = options.window, domain = options.domain, listenerOptions = {\n handler: options.handler,\n handleError: options.errorHandler || function(err) {\n throw err;\n },\n window: win,\n domain: domain || constants_CONSTANTS.WILDCARD,\n name: name\n }, requestListener = function addRequestListener(_ref6, listener) {\n var name = _ref6.name, win = _ref6.win, domain = _ref6.domain;\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (Array.isArray(win)) {\n for (var listenersCollection = [], _i6 = 0, _win2 = win, _length6 = null == _win2 ? 0 : _win2.length; _i6 < _length6; _i6++) {\n var item = _win2[_i6];\n listenersCollection.push(addRequestListener({\n name: name,\n domain: domain,\n win: item\n }, listener));\n }\n return {\n cancel: function() {\n for (var _i8 = 0, _length8 = null == listenersCollection ? 0 : listenersCollection.length; _i8 < _length8; _i8++) listenersCollection[_i8].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n for (var _listenersCollection = [], _i10 = 0, _domain2 = domain, _length10 = null == _domain2 ? 0 : _domain2.length; _i10 < _length10; _i10++) {\n var _item = _domain2[_i10];\n _listenersCollection.push(addRequestListener({\n name: name,\n win: win,\n domain: _item\n }, listener));\n }\n return {\n cancel: function() {\n for (var _i12 = 0, _length12 = null == _listenersCollection ? 0 : _listenersCollection.length; _i12 < _length12; _i12++) _listenersCollection[_i12].cancel();\n }\n };\n }\n var existingListener = getRequestListener({\n name: name,\n win: win,\n domain: domain\n });\n win && win !== constants_CONSTANTS.WILDCARD || (win = global.WINDOW_WILDCARD);\n domain = domain || constants_CONSTANTS.WILDCARD;\n if (existingListener) throw win && domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString() + \" for \" + (win === global.WINDOW_WILDCARD ? \"wildcard\" : \"specified\") + \" window\") : win ? new Error(\"Request listener already exists for \" + name + \" for \" + (win === global.WINDOW_WILDCARD ? \"wildcard\" : \"specified\") + \" window\") : domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString()) : new Error(\"Request listener already exists for \" + name);\n var requestListeners = global.requestListeners, nameListeners = requestListeners[name];\n if (!nameListeners) {\n nameListeners = new weakmap_CrossDomainSafeWeakMap();\n requestListeners[name] = nameListeners;\n }\n var winListeners = nameListeners.get(win);\n if (!winListeners) {\n winListeners = {};\n nameListeners.set(win, winListeners);\n }\n var strDomain = domain.toString(), regexListeners = winListeners[__DOMAIN_REGEX__], regexListener = void 0;\n if (isRegex(domain)) {\n if (!regexListeners) {\n regexListeners = [];\n winListeners[__DOMAIN_REGEX__] = regexListeners;\n }\n regexListener = {\n regex: domain,\n listener: listener\n };\n regexListeners.push(regexListener);\n } else winListeners[strDomain] = listener;\n return {\n cancel: function() {\n if (winListeners) {\n delete winListeners[strDomain];\n win && 0 === Object.keys(winListeners).length && nameListeners.delete(win);\n regexListener && regexListeners.splice(regexListeners.indexOf(regexListener, 1));\n }\n }\n };\n }({\n name: name,\n win: win,\n domain: domain\n }, listenerOptions);\n if (options.once) {\n var _handler = listenerOptions.handler;\n listenerOptions.handler = once(function() {\n requestListener.cancel();\n return _handler.apply(this, arguments);\n });\n }\n if (listenerOptions.window && options.errorOnClose) var interval = function(method, time) {\n var timeout = void 0;\n timeout = setTimeout(function runInterval() {\n timeout = setTimeout(runInterval, 50);\n (function() {\n if (win && \"object\" === (void 0 === win ? \"undefined\" : server__typeof(win)) && Object(src.isWindowClosed)(win)) {\n interval.cancel();\n listenerOptions.handleError(new Error(\"Post message target window is closed\"));\n }\n }).call();\n }, 50);\n return {\n cancel: function() {\n clearTimeout(timeout);\n }\n };\n }();\n return {\n cancel: function() {\n requestListener.cancel();\n }\n };\n }\n function _on(name, options, handler) {\n if (\"function\" == typeof options) {\n handler = options;\n options = {};\n }\n (options = options || {}).name = name;\n options.handler = handler || options.handler;\n return listen(options);\n }\n function server_once(name) {\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, handler = arguments[2];\n if (\"function\" == typeof options) {\n handler = options;\n options = {};\n }\n options = options || {};\n handler = handler || options.handler;\n var errorHandler = options.errorHandler, promise = new promise_ZalgoPromise(function(resolve, reject) {\n (options = options || {}).name = name;\n options.once = !0;\n options.handler = function(event) {\n resolve(event);\n if (handler) return handler(event);\n };\n options.errorHandler = function(err) {\n reject(err);\n if (errorHandler) return errorHandler(err);\n };\n }), onceListener = listen(options);\n promise.cancel = onceListener.cancel;\n return promise;\n }\n function server_listener() {\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return {\n on: function(name, handler) {\n return _on(name, options, handler);\n }\n };\n }\n global.on = _on;\n function disable() {\n delete window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT];\n window.removeEventListener(\"message\", messageListener);\n }\n var public_parent = Object(src.getAncestor)();\n function cleanUpWindow(win) {\n var requestPromises = global.requestPromises.get(win);\n if (requestPromises) for (var _i2 = 0, _length2 = null == requestPromises ? 0 : requestPromises.length; _i2 < _length2; _i2++) requestPromises[_i2].reject(new Error(\"No response from window - cleaned up\"));\n global.popupWindowsByWin && global.popupWindowsByWin.delete(win);\n global.remoteWindows && global.remoteWindows.delete(win);\n global.requestPromises.delete(win);\n global.methods.delete(win);\n global.readyPromises.delete(win);\n }\n var bridge = null;\n function init() {\n if (!global.initialized) {\n handler = messageListener, (obj = window).addEventListener ? obj.addEventListener(\"message\", handler) : obj.attachEvent(\"onmessage\", handler);\n !function() {\n handler = function(_ref3) {\n var source = _ref3.source, origin = _ref3.origin, promise = global.readyPromises.get(source) || new promise_ZalgoPromise();\n promise.resolve({\n origin: origin\n });\n global.readyPromises.set(source, promise);\n }, global.on(constants_CONSTANTS.POST_MESSAGE_NAMES.HELLO, {\n domain: constants_CONSTANTS.WILDCARD\n }, function(_ref) {\n var source = _ref.source, origin = _ref.origin;\n return handler({\n source: source,\n origin: origin\n });\n });\n var handler, parent = Object(src.getAncestor)();\n parent && sayHello(parent).catch(util_noop);\n }();\n listenForMethods({\n on: _on,\n send: _send\n });\n }\n var obj, handler;\n global.initialized = !0;\n }\n init();\n __webpack_require__.d(__webpack_exports__, \"cleanUpWindow\", function() {\n return cleanUpWindow;\n });\n __webpack_require__.d(__webpack_exports__, \"Promise\", function() {\n return promise_ZalgoPromise;\n });\n __webpack_require__.d(__webpack_exports__, \"bridge\", function() {\n return bridge;\n });\n __webpack_require__.d(__webpack_exports__, \"init\", function() {\n return init;\n });\n __webpack_require__.d(__webpack_exports__, \"parent\", function() {\n return public_parent;\n });\n __webpack_require__.d(__webpack_exports__, \"send\", function() {\n return _send;\n });\n __webpack_require__.d(__webpack_exports__, \"request\", function() {\n return request;\n });\n __webpack_require__.d(__webpack_exports__, \"sendToParent\", function() {\n return sendToParent;\n });\n __webpack_require__.d(__webpack_exports__, \"client\", function() {\n return client;\n });\n __webpack_require__.d(__webpack_exports__, \"on\", function() {\n return _on;\n });\n __webpack_require__.d(__webpack_exports__, \"listen\", function() {\n return listen;\n });\n __webpack_require__.d(__webpack_exports__, \"once\", function() {\n return server_once;\n });\n __webpack_require__.d(__webpack_exports__, \"listener\", function() {\n return server_listener;\n });\n __webpack_require__.d(__webpack_exports__, \"CONFIG\", function() {\n return CONFIG;\n });\n __webpack_require__.d(__webpack_exports__, \"CONSTANTS\", function() {\n return constants_CONSTANTS;\n });\n __webpack_require__.d(__webpack_exports__, \"disable\", function() {\n return disable;\n });\n __webpack_exports__.default = src_interface_namespaceObject;\n }\n });\n});\n//# sourceMappingURL=post-robot.js.map\n//# sourceMappingURL=post-robot.js.map","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","const config = { attributes: true, childList: true, subtree: true };\nlet observer;\n/**\n * Class representing an iframe window from Contentstack UI. Not available for Custom Widgets.\n */\n\nclass Window {\n /**\n * @hideconstructor\n */\n constructor(connection, type, emitter, state = 'half_width') {\n this._connection = connection;\n this._autoResizingEnabled = false;\n this._resizingEnabled = false;\n this.type = type;\n this.state = state;\n this._emitter = emitter;\n }\n\n /**\n * This method activates the resize button that gives you the provision to resize the window size of your Dashboard Widget.\n * @return {external:Promise} A promise object which will resolve when a resize button is visible on the Dashboard Widget.\n */\n enableResizing() {\n if (this.type !== 'DASHBOARD') { return Promise.resolve(); }\n this._resizingEnabled = true;\n return this._connection.sendToParent('window', { action: 'enableResizing' });\n }\n\n\n /**\n * This function executes the callback function whenever a Dashboard Widget extension is maximized or minimized. Only applicable on Dashboard Widget extensions.\n * @param {function} callback Function to be called when a Dashboard Widget extension is maximized or minimized\n * @return {boolean} Will return true\n */\n\n onDashboardResize(callback) {\n const windowObj = this;\n if (this.type !== 'DASHBOARD') {\n return false;\n }\n if (callback && typeof (callback) === 'function') {\n windowObj._emitter.on('dashboardResize', (event) => {\n windowObj.state = event.state;\n callback(event.state);\n });\n } else {\n throw Error('Callback must be a function');\n }\n return true;\n }\n\n\n /**\n * This method updates the extension height on Contentstack UI.\n * If the ‘height’ argument is not passed, it will calculate the scroll height and set the height of extension window accordingly.\n * @param {string|number} height Desired height of the iframe window\n * @return {external:Promise} A promise object which will be resolved when Contentstack UI sends an acknowledgement stating that the height has been updated.\n */\n updateHeight(height) {\n if (this.type === 'DASHBOARD' && this.state === 'half_width') { return Promise.resolve(); }\n if (!height || isNaN(height)) {\n this._height = Math.ceil(document.documentElement.getBoundingClientRect().height);\n } else if (this._height === height) {\n return Promise.resolve();\n } else {\n this._height = height;\n }\n return this._connection.sendToParent('resize', this._height);\n }\n\n /**\n * This method enables auto resizing of the extension height.\n * @return {Window}.\n */\n enableAutoResizing() {\n if (this._autoResizingEnabled || (this.state === 'half_width' && this.type === 'DASHBOARD')) {\n return this;\n }\n this._autoResizingEnabled = true;\n observer = new MutationObserver(this.updateHeight.bind(this));\n observer.observe(window.document.body, config);\n return this;\n }\n\n /**\n * This method disables auto resizing of the extension height.\n * @return {Window}.\n */\n disableAutoResizing() {\n if (!this._autoResizingEnabled) {\n return this;\n }\n this._autoResizingEnabled = false;\n observer.disconnect();\n return this;\n }\n}\n\nexport default Window;\n","import Asset from './api/asset/index.js';\nimport ContentType from './api/content-type/index.js';\n\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n\n\n/**\n * Class representing the current stack in Contentstack UI.\n */\n\nclass Stack {\n /**\n * @hideconstructor\n */\n constructor(data, connection) {\n this._connection = connection;\n this._data = data;\n /**\n * @constructor\n * @hideconstructor\n * @version 2.2.0\n * @desc Content type defines the structure or schema of a page or a section of your web or mobile property\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#content-types| ContentType}\n * @param {string} uid - Uid of contenttype.\n * @example extension.stack.ContentType('content_type_uid')\n * */\n this.ContentType = ContentType(connection);\n /**\n * @constructor\n * @version 2.2.0\n * @hideconstructor\n * @desc An initializer is responsible for creating an Asset object.\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#assets| Asset}\n * @param {string} uid - UID of the asset.\n * @example extension.stack.Asset('asset_uid')\n * */\n this.Asset = Asset(connection);\n }\n\n\n /**\n * This method returns the data of the current stack.\n * @return {Object} Returns stack data.\n */\n\n getData() {\n return this._data;\n }\n\n\n /**\n * This API allows you to retrieve data of a content type of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-a-single-content-type| Content Type API} requests. This method returns a Promise object.\n * @param {string} uid Uid of the desired content type\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with content type details.\n */\n getContentType(uid, params = {}) {\n if (!uid) {\n return Promise.reject(new Error('uid is required'));\n }\n const options = { uid, params, action: 'getContentType' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrieve data of a content types of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-all-content-types| Content Types API} requests. This method returns a Promise object.\n * @param {Object} query Query for the GET call\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with details of the content type.\n */\n getContentTypes(query = {}, params = {}) {\n const optionParams = params;\n optionParams.query = query;\n const options = { params: optionParams, action: 'getContentTypes' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrieve environment details of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-a-single-environment| Environment API} requests. This method returns a Promise object.\n * @param {string} name Name of the desired environment\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with environment details.\n */\n getEnvironment(name, params = {}) {\n if (!name) {\n return Promise.reject(new Error('name is required'));\n }\n const options = { name, params, action: 'getEnvironment' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrieve details of environments of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-all-environments| Environments API} requests. This method returns a Promise object.\n * @param {Object} query Query for the GET call\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A Promise object which will be resolved with details of the environments.\n */\n getEnvironments(query = {}, params = {}) {\n const optionParams = params;\n optionParams.query = query;\n const options = { params: optionParams, action: 'getEnvironments' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrive a locale of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-a-language| Language API} requests. Method returns a Promise object.\n * @param {string} code Code of the desired locale\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with locale details.\n */\n getLocale(code, params = {}) {\n if (!code) {\n return Promise.reject(new Error('code is required'));\n }\n const options = { code, params, action: 'getLocale' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrive the locales of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-all-content-types| Languages API} requests. Method returns a Promise object.\n * @param {Object} query Query for the GET call\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A Promise object which will be resolved with details of the locales.\n */\n getLocales(query = {}, params = {}) {\n const optionParams = params;\n optionParams.query = query;\n const options = { params: optionParams, action: 'getLocales' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n}\n\nexport default Stack;\n","import Base from '../base.js';\nimport { getReferences, language, environment } from '../../utils.js';\n\nlet connection = {};\n\n/**\n * @summary Creates an instance of `Asset`.\n * @description An initializer is responsible for creating an Asset object.\n * @param {String} uid - uid of the asset\n * @example\n * let Asset = extension.stack.Asset('bltsomething123');\n * @returns {Asset}\n * @ignore\n */\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n\nclass Asset extends Base {\n constructor(uid) {\n super(uid);\n this.getReferences = getReferences;\n this.environment = environment;\n return this;\n }\n\n /**\n * @function\n * @name Stack#Asset.Query\n * @description This static method instantiates the query module for assets. To see the list of methods that can be used for querying assets, refer the {@link Query} module.\n * @example\n * let assetQuery = extension.stack.Asset.Query();\n * assetQuery.where(\"title\": \"main.js\").limit(10).skip(10).find().then(...).catch(...);\n * @return {Query}\n */\n\n\n static Query() {\n const entryQuery = super.Query();\n Object.assign(entryQuery, {\n language, environment\n });\n return entryQuery;\n }\n\n static module(plural = false) {\n return plural ? 'Assets' : 'Asset';\n }\n\n static get connection() {\n return connection;\n }\n\n /**\n * @function\n * @name Stack#Asset.getRteAssets\n * @description This static method retrieves comprehensive information on all assets uploaded through the Rich Text Editor field.\n * @return {external:Promise}\n */\n\n static getRteAssets() {\n return this.connection.sendToParent('stackQuery', { action: 'getRteAssets' }).then(onData).catch(onError);\n }\n\n /**\n * @function\n * @name Stack#Asset.getAssetsOfSpecificTypes\n * @description This static method retrieves assets that are either image or video files, based on the request query.\n * @param {String} assetType Type of asset to be received for e.g., ‘image/png’\n * @return {external:Promise}\n */\n static getAssetsOfSpecificTypes(assetType) {\n if (!assetType || typeof assetType !== 'string') {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.connection.sendToParent('stackQuery', { action: 'getAssetsOfSpecificTypes', asset_type: assetType }).then(onData).catch(onError);\n }\n\n\n /**\n * @name Stack#Asset#only\n * @function\n * @description This method is used to show the selected fields of the assets in the result set.\n * @param {String} [key=BASE] - Single field of an asset\n * @param {Array} values - Array of fields to be shown in the result set\n * @example\n * Only with the field UID \n * extension.stack.Asset('bltsomething123').only('title').fetch();\n * @example\n * Only with the field UID \n * extension.stack.Asset('bltsomething123').only('BASE','title').fetch();\n * @example\n * Only with the field UIDs(array) \n * extension.stack.Asset('bltsomething123').only(['title','description']).fetch();\n * @returns {Stack#Asset}\n */\n\n /**\n * @name Stack#Asset#except\n * @function\n * @description This method is used to hide the selected fields of the assets in result set.\n * @param {String} [key=BASE] - Single field of an asset\n * @param {Array} values - Array of fields to be hidden in the result set\n * @example\n * .Except with the field UID \n * extension.stack.Asset('bltsomething123').except('title').fetch();\n * @example\n * .Except with the field UID \n * extension.stack.Asset('bltsomething123').except('BASE','title').fetch();\n * @example\n * .Except with the field UIDs(array) \n * extension.stack.Asset('bltsomething123').except(['title','description']).fetch();\n * @returns {Stack#Asset}\n */\n\n /**\n * @function\n * @name Stack#Asset#environment\n * @description This method is used to set the environment name of which you want to retrieve the data.\n * @param {String} environment_uid - UID/Name of environment\n * @example extension.stack.Asset('bltsomething123').environment('development').fetch()\n * @returns {Stack#Asset}\n */\n\n\n /**\n This method includes a query parameter in your query.\n @name Stack#Asset#addParam\n @function\n @example extension.stack.Asset('uid').addParam('key', 'value').fetch().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Stack#Asset}\n */\n\n /**\n This method includes a query parameter in your query.\n @name Stack#Asset#addQuery\n @function\n @example extension.stack.Asset('uid').addQuery('key', 'value').fetch().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Stack#Asset}\n */\n\n\n /**\n This method will fetch the details of the entries and the assets in which the specified asset is referenced.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#get-all-references-of-asset|\n Asset References}\n @name Stack#Asset#getReferences\n @function\n @example extension.stack.Asset('uid').getReferences().then().catch();\n @return {external:Promise}\n */\n\n /**\n This method deletes an existing asset.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#delete-an-asset|\n Delete Asset}\n @name Stack#Asset#delete\n @function\n @example extension.stack.Asset('uid').delete().then().catch();\n @return {external:Promise}\n */\n\n\n /**\n * @name Stack#Asset#publish\n * @function\n * @description This method allows you to publish the asset either immediately or schedule the publish for a later date/time.\n * @param {object} payload - Payload for the request.\n * @example extension.stack.Asset('bltsomething123')\n .publish(\n {\n \"asset\": {\n \"locales\": [\n \"en-us\"\n ],\n \"environments\": [\n \"development\"\n ]\n },\n \"version\": 1,\n \"scheduled_at\": \"2019-02-08T18:30:00.000Z\"\n });\n * @return {external:Promise}\n */\n publish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch('publishAsset', payload);\n }\n\n /**\n * @function\n * @name Stack#Asset#unpublish\n * @description This method will instantly unpublish the asset, and also give you the provision to automatically unpublish the asset at a later date/time.\n * @param {object} payload - Payload for the request.\n * @example extension.stack.Asset('bltsomething123')\n .unpublish({\n \"asset\": {\n \"locales\": [\n \"en-us\"\n ],\n \"environments\": [\n \"development\"\n ]\n },\n \"version\": 1,\n \"scheduled_at\": \"2019-02-08T18:30:00.000Z\"\n });\n * @return {external:Promise}\n */\n unpublish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch('unpublishAsset', payload);\n }\n}\n\nexport default (uiConnection) => {\n connection = uiConnection;\n return new Proxy(Asset, {\n apply(Target, thisArg, argumentsList) {\n return new Target(...argumentsList);\n }\n });\n};\n","import * as Utils from '../utils.js';\n\n\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n\nconst _extend = {\n compare(type) {\n return function (key, value) {\n if (key && value && typeof key === 'string' && typeof value !== 'undefined') {\n this._query.query[key] = this._query.query.file_size || {};\n this._query.query[key][type] = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n };\n },\n contained(bool) {\n const type = (bool) ? '$in' : '$nin';\n return function (key, value) {\n if (key && value && typeof key === 'string' && Array.isArray(value)) {\n this._query.query[key] = this._query.query[key] || {};\n this._query.query[key][type] = this._query.query[key][type] || [];\n this._query.query[key][type] = this._query.query[key][type].concat(value);\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n };\n },\n exists(bool) {\n return function (key) {\n if (key && typeof key === 'string') {\n this._query.query[key] = this._query.query[key] || {};\n this._query.query[key].$exists = bool;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n };\n },\n logical(type) {\n return function () {\n const _query = [];\n for (let i = 0, _i = arguments.length; i < _i; i += 1) {\n if (arguments[i] instanceof Query && arguments[i]._query.query) {\n _query.push(arguments[i]._query.query);\n } else if (typeof arguments[i] === 'object') {\n _query.push(arguments[i]);\n }\n }\n if (this._query.query[type]) {\n this._query.query[type] = this._query.query[type].concat(_query);\n } else {\n this._query.query[type] = _query;\n }\n return this;\n };\n },\n sort(type) {\n return function (key) {\n if (key && typeof key === 'string') {\n this._query[type] = key;\n return this;\n }\n throw Error('Argument should be a string.');\n };\n },\n pagination(type) {\n return function (value) {\n if (typeof value === 'number') {\n this._query[type] = value;\n return this;\n }\n throw Error('Argument should be a number.');\n };\n }\n};\n\n/**\n * Creates an instance of the query\n * @version 2.2.0\n * @hideconstructor\n */\nclass Query {\n constructor(connection, module, contentTypeUid) {\n this.module = module;\n this._connection = connection;\n this._query = {};\n this._query.query = this._query.query || {};\n this.contentTypeUid = contentTypeUid;\n /**\n * @name Query#only\n * @function\n * @description This method is used to show the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be shown in the result set\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry.Query().only('title').find();\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry.Query().only('BASE','title').find();\n * @example\n * Only with field UIDs(array) \n * extension.stack.ContentType('content_type_uid').Entry.Query().only(['title','description']).find();\n * @returns {Query}\n */\n\n this.only = Utils.transform('only');\n\n /**\n * @name Query#except\n * @function\n * @description This method is used to hide the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be hidden in the result set\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry.Query().except('title').find();\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry.Query().except('BASE','title').find();\n * @example\n * Except with field uids(array) \n * extension.stack.ContentType('content_type_uid').Entry.Query().except(['title','description']).find();\n * @returns {Query}\n */\n\n this.except = Utils.transform('except');\n /**\n This method includes a query parameter in your query.\n @name Query#addQuery\n @function\n @example extension.stack.ContentType('content_type_uid').Entry.Query().addQuery('key', 'value').find().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Query}\n */\n this.addQuery = Utils.addQuery;\n\n /**\n * @name Query#lessThan\n * @description This method provides only the entries with values less than the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').lessThan('created_at','2015-06-22')\n * @returns {Query}\n */\n this.lessThan = _extend.compare('$lt');\n\n /**\n * @name Query#lessThanOrEqualTo\n * @description This method provides only the entries with values less than or equal to the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').lessThanOrEqualTo('created_at','2015-03-12')\n * @returns {Query}\n */\n this.lessThanOrEqualTo = _extend.compare('$lte');\n /**\n * @function\n * @name Query#greaterThan\n * @description This method provides only the entrieswith values\n * greater than the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').greaterThan('created_at','2015-03-12')\n * @returns {Query}\n */\n this.greaterThan = _extend.compare('$gt');\n\n /**\n * @function\n * @name Query#greaterThanOrEqualTo\n * @description This method provides only the entries with values greater than or equal to the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').greaterThanOrEqualTo('created_at', '2015-06-22')\n * @returns {Query}\n */\n this.greaterThanOrEqualTo = _extend.compare('$gte');\n\n /**\n * @function\n * @name Query#notEqualTo\n * @description This method provides only the entries with values not equal to the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').notEqualTo('title','Demo')\n * @returns {Query}\n */\n this.notEqualTo = _extend.compare('$ne');\n\n /**\n * @function\n * @name Query#containedIn\n * @description This method provides only the entries with values matching the specified values for a field.\n * @param {String} key - UID of the field\n * @param {*} value - An array of values that are to be used to match or compare\n * @example extension.stack.ContentType('blog').containedIn('title', ['Demo', 'Welcome'])\n * @returns {Query}\n */\n this.containedIn = _extend.contained(true);\n\n /**\n * @function\n * @name Query#notContainedIn\n * @description This method provides only the entries that do not contain values matching the specified values for a field.\n * @param {String} key - UID of the field\n * @param {Array} value - An array of values that are to be used to match or compare\n * @example extension.stack.ContentType('blog').notContainedIn('title', ['Demo', 'Welcome'])\n * @returns {Query}\n */\n this.notContainedIn = _extend.contained(false);\n\n /**\n * @function\n * @name Query#exists\n * @description This method provides only the entries that contains the field matching the specified field UID.\n * @param {String} key - UID of the field\n * @example extension.stack.ContentType('blog').exists('featured')\n * @returns {Query}\n */\n this.exists = _extend.exists(true);\n\n /**\n * @function\n * @name Query#notExists\n * @description This method provides only the entries that do not contain the field matching the specified field UID.\n * @param {String} key - UID of the field\n * @example extension.stack.ContentType('blog').notExists('featured')\n * @returns {Query}\n */\n this.notExists = _extend.exists(false);\n\n /**\n * @function\n * @name Query#ascending\n * @description This parameter sorts the entries in ascending order on the basis of the value of the specified field.\n * @param {String} key - Field UID to be used for sorting.\n * @example extension.stack.ContentType('blog').ascending('created_at')\n * @returns {Query}\n */\n this.ascending = _extend.sort('asc');\n\n /**\n * @function\n * @name Query#descending\n * @description This method sorts the entries in descending order on the basis of the specified field.\n * @param {String} key - Field UID to be used for sorting\n * @example extension.stack.ContentType('blog').descending('created_at')\n * @returns {Query}\n */\n this.descending = _extend.sort('desc');\n\n /**\n * @function\n * @name Query#beforeUid\n * @description This method provides only the entries that are placed before the specified entry ID.\n * @param {String} uid - UID of the entry\n * @example extension.stack.ContentType('blog').beforeUid('blt1234567890abcdef')\n * @returns {Query}\n * @ignore\n */\n this.beforeUid = _extend.sort('before_uid');\n\n /**\n * @function\n * @name Query#afterUid\n * @description This method provides only the entries that are placed after the specified entry ID.\n * @param {String} uid - UID of the entry\n * @example extension.stack.ContentType('blog').afterUid('blt1234567890abcdef')\n * @returns {Query}\n * @ignore\n */\n this.afterUid = _extend.sort('after_uid');\n\n /**\n * @function\n * @name Query#skip\n * @description This method skips the specified number of entries.\n * @param {Number} skip - Number of entries to be skipped\n * @example extension.stack.ContentType('blog').skip(5)\n * @returns {Query}\n */\n this.skip = _extend.pagination('skip');\n\n /**\n * @function\n * @name Query#limit\n * @description This method limits the response by providing only the specified number of entries.\n * @param {Number} limit - Maximum number of entries to be returned in the result.\n * @example extension.stack.ContentType('blog').limit(10)\n * @returns {Query}\n */\n this.limit = _extend.pagination('limit');\n\n /**\n * @function\n * @name Query#or\n * @description This method performs the OR operation on the specified query objects and provides only the matching entries.\n * @param {object} Array of query objects/raw queries\n * to be taken into consideration\n * @example\n * OR with query instances\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo')\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10)\n * let blogQuery = extension.stack.ContentType('blog').or(Query1, Query2)\n * @example\n * OR with query instances\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo').getQuery()\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10).getQuery()\n * let blogQuery = extension.stack.ContentType('blog').or(Query1, Query2)\n * @returns {Query}\n */\n this.or = _extend.logical('$or');\n\n /**\n * @function\n * @name Query#and\n * @description This method performs the AND operation on the specified query objects and provides only the matching entries.\n * @param {object} Array of query objects/raw queries to be taken into consideration\n * @example\n * AND with raw queries\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo');\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10);\n * let blogQuery = extension.stack.ContentType('blog').and(Query1, Query2)\n * @example\n * .and with raw queries\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo').getQuery();\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10).getQuery();\n * let blogQuery = extension.stack.ContentType('blog').and(Query1, Query2)\n * @returns {Query}\n */\n this.and = _extend.logical('$and');\n /**\n This method includes a query parameter in your query.\n @name Query#addParam\n @function\n @example extension.stack.ContentType('content_type_uid').Entry.Query().addParam('key', 'value').find().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Query}\n */\n this.addParam = Utils.addParam;\n }\n\n // -------------------------------------Entry Queries--------------------------------------------------\n /**\n * @function\n * @name Query#includeReference\n * @description This method is used to include referenced entries from other content types. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example\n * .includeReference with reference_field_uids as array \n * stack.ContentType('contenttype_uid').Entry.Query().includeReference(['category', 'author']).find()\n * @example\n * .includeReference with reference_field_uids \n * stack.ContentType('contenttype_uid').Entry.Query().includeReference('category', 'author').find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#includeSchema\n * @description This method is used to include the schema of the current contenttype in result set along with the entry/entries. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().includeSchema().find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#language\n * @description This method is used to set the language code of which you want to retrieve the data. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @param {String} languageCode - Language code, for e.g. 'en-us', 'ja-jp', and so on\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().language('en-us').find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#includeContentType\n * @description This method is used to include the current content type in the result set along with the entry(ies). Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().includeContentType().find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#includeOwner\n * @description This method is used to include the owner of the entry(ies) in the result set. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().includeOwner().find()\n * @returns {Query}\n */\n // -----------------------------------------Entry Queries End------------------------------------------------------\n\n /**\n * @function\n * @name Query#environment\n * @description This method is used to set the environment name of which you want to retrieve the data.\n * @param {String} environment_uid - UID/Name of environment\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().environment('development').find()\n * @returns {Query}\n */\n\n /**\n * @description This method provides only the entries containing field values matching the specified condition.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').where('title','Demo')\n * @returns {Query}\n */\n equalTo(key, value) {\n if (key && typeof key === 'string') {\n this._query.query[key] = value;\n\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n where(key, value) {\n if (key && typeof key === 'string') {\n this._query.query[key] = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n /**\n * @description This method provides only the number of entries matching the specified filters.\n * @example extension.stack.ContentType('blog').count()\n * @returns {Query}\n */\n count() {\n this._query.count = true;\n const options = { content_type_uid: this.contentTypeUid, params: this._query, action: `get${this.module}` };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * @description This method is used to set raw queries on the Query instance.\n * @param {object} query - Raw{json} queries to filter the entries in the result set.\n * @returns {Query}\n */\n query(query) {\n if (typeof query === 'object') {\n this._query.query = Utils.mergeDeep(this._query.query, query);\n return this;\n }\n throw Error('Kindly provide valid parameters');\n }\n\n /**\n * @description The ’tags’ parameter allows you to specify an array of tags to search for objects.\n * @param {Array} values - Tags\n * @example extension.stack.ContentType('blog').tags(['technology', 'business'])\n * @returns {Query}\n */\n tags(values) {\n if (Array.isArray(values)) {\n this._query.tags = values;\n return this;\n }\n throw Error('Kindly provide valid parameters');\n }\n\n /**\n * @description This method also includes the total number of entries returned in the response.\n * @example extension.stack.ContentType('blog').includeCount()\n * @returns {Query}\n */\n includeCount() {\n this._query.include_count = true;\n return this;\n }\n\n /**\n * @summary returns Returns the raw query which can be used for further calls (.and/.or).\n * @description This method provides raw{json} queries based on the filters applied on the Query object.\n * @example extension.stack.ContentType('blog').where('title','Demo').getQuery()\n * @returns {Query}\n */\n getQuery() {\n return this._query.query;\n }\n\n /**\n * @description This method provides only the entries matching the regular expression for the specified field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @param {String} [options] - Match or compare a value in the entry\n * @example\n * .regex without options\n * let blogQuery = extension.stack.ContentType('blog').regex('title','^Demo')\n * @example\n * .regex with options\n * let blogQuery = extension.stack.ContentType('blog').regex('title','^Demo', 'i')\n * @returns {Query}\n */\n regex(key, value, options) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query.query[key] = {\n $regex: value\n };\n if (options) this._query.query[key].$options = options;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n /**\n * @description This method is used to search data in entries.\n * @param {string} value - Value to search in the entries.\n * @example extension.stack.ContentType('blog').search('Welcome to demo')\n * @returns {Query}\n */\n search(value) {\n if (value && typeof value === 'string') {\n this._query.typeahead = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n /**\n * @description This method provides all the entries which satisfy the specified query.\n * @example\n * let blogQuery = extension.stack.ContentType('blog').find()\n */\n find() {\n const options = { content_type_uid: this.contentTypeUid, params: this._query, action: `get${this.module}` };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * @description This method provides a single entry from the result set.\n * @example\n * let blogQuery = extension.stack.ContentType('blog').findOne()\n */\n findOne() {\n this.singleEntry = true;\n this._query.limit = 1;\n const options = { content_type_uid: this.contentTypeUid, params: this._query, action: `get${this.module}` };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n}\n\nexport default Query;\n","import Entry from './entry.js';\nimport Base from '../base.js';\n\nlet connection = {};\n\n\nclass ContentType extends Base {\n constructor(uid) {\n super(uid);\n /**\n * @constructor\n * @hideconstructor\n * @name Stack#ContentType#Entry\n * @version 2.2.0\n * @desc An entry is the actual piece of content created using one of the defined content types\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#entries| Entries}\n */\n\n\n this.Entry = Entry(this.constructor.connection, this.uid);\n return this;\n }\n\n // static module(plural = false) {\n // return plural ? 'ContentTypes' : 'ContentType';\n // }\n static get connection() {\n return connection;\n }\n}\nexport default (uiConnection) => {\n connection = uiConnection;\n return new Proxy(ContentType, {\n // target = Foo\n apply(Target, thisArg, argumentsList) {\n return new Target(...argumentsList);\n }\n });\n};\n","import Base from '../base.js';\nimport { getReferences, addQuery, language, environment, includeOwner, includeContentType, includeSchema, includeReference } from '../../utils.js';\n\nlet connection = {};\nlet contentTypeUid = '';\n\n\nclass Entry extends Base {\n constructor(uid) {\n super(uid);\n this._query = {};\n return this;\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry.Query\n * @description This static method instantiates the query module for entries. To see the list of methods that can be used for querying entries, refer the {@link Query} module.\n * @example\n * let entryQuery = extension.stack.ContentType('content_type_uid').Entry.Query();\n * entryQuery.where(\"field_uid\": \"10\").limit(10).skip(10).find().then(...).catch(...);\n * @return {Query}\n */\n\n static Query() {\n const entryQuery = super.Query();\n Object.assign(entryQuery, {\n language, environment, includeOwner, includeContentType, includeSchema, includeReference\n });\n return entryQuery;\n }\n\n static get connection() {\n return connection;\n }\n\n static get contentTypeUid() {\n return contentTypeUid;\n }\n\n static module(plural = false) {\n return plural ? 'Entries' : 'Entry';\n }\n /**\n This method creates a new entry.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#create-a-an-entry|\n Create Entry}\n @name Stack#ContentType#Entry.create\n @function\n @example extension.stack.ContentType('content_type_uid').Entry.create({\n \"entry\": {\n \"title\": \"example\",\n \"url\": \"/example\"\n }\n }).then(...).catch(...);\n @param {Object} payload Data to create an entry\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n /**\n * @name Stack#ContentType#Entry#only\n * @function\n * @description This method is used to show the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be shown in the result set\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').only('title').fetch();\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').only('BASE','title').fetch();\n * @example\n * Only with field UIDs(array) \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').only(['title','description']).fetch();\n * @returns {Stack#ContentType#Entry}\n */\n\n /**\n * @name Stack#ContentType#Entry#except\n * @function\n * @description This method is used to hide the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be hidden in the result set\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').except('title').fetch();\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').except('BASE','title').fetch();\n * @example\n * Except with field uids(array) \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').except(['title','description']).fetch();\n * @returns {Stack#ContentType#Entry}\n */\n\n /**\n * This method includes a query parameter in your query.\n * @name Stack#ContentType#Entry#addParam\n * @function\n * @example extension.stack.ContentType('content_type_uid').Entry('uid').addParam('include_count', 'true').fetch().then().catch();\n * @param {string} key - Key of the parameter\n * @param {string} value - Value of the parameter\n * @return {Stack#ContentType#Entry} Returns\n */\n\n\n /**\n This method will fetch all the entries in which the current entry is referenced.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#get-all-references-of-an-entry|\n Entry References}\n @name Stack#ContentType#Entry#getReferences\n @function\n @example extension.stack.ContentType('content_type_uid').Entry('uid').getReferences().then().catch();\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n\n /**\n @example extension.stack.ContentType('content_type_uid').Entry('uid').update({\"entry\" : {...}}).then().catch();\n @param {Object} payload Data to be update exsisting entry\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n\n /**\n This method deletes an existing entry.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#delete-an-entry|\n Delete Entry}\n @name Stack#ContentType#Entry#delete\n @function\n @example extension.stack.ContentType('content_type_uid').Entry('uid').delete().then().catch();\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n\n /**\n This method fetches information of a specific entry.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#get-a-single-an-entry|\n Get A Single Entry}\n @name Stack#ContentType#Entry#fetch\n @function\n @example extension.stack.ContentType('content_type_uid').Entry('uid').fetch().then().catch();\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeReference\n * @description This method is used to include referenced entries from other content types.\n * @example\n * .includeReference with reference_field_uids as array \n * stack.ContentType('contenttype_uid').Entry('bltsomething123').includeReference(['category', 'author']).fetch()\n * @example\n * .includeReference with reference_field_uids \n * stack.ContentType('contenttype_uid').Entry('bltsomething123').includeReference('category', 'author').fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#language\n * @description This method is used to set the language code of which you want to retrieve the data.\n * @param {String} languageCode - Language code, for e.g. 'en-us', 'ja-jp', and so on\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').language('en-us').fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n /**\n * @function\n * @name Stack#ContentType#Entry#environment\n * @description This method is used to set the environment name of which you want to retrieve the data.\n * @param {String} environment_uid - UID/Name of environment\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').environment('development').fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#addQuery\n * @description This method is used to add a query to an entry object.\n * @param {String} key - Key of the query\n * @param {String} value - Value of the query\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').addQuery('include_schema',true).fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeSchema\n * @description This method is used to include the schema of the current contenttype in result set along with the entry/entries.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').includeSchema().fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeContentType\n * @description This method is used to include the current content type in the result set along with the entry(ies).\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').includeContentType().fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeOwner\n * @description This method is used to include the owner of the entry(ies) in the result set.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').includeOwner().fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#getLanguages\n * @description This method returns the details of all the languages that an entry is localized in.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').getLanguages()\n * @return {external:Promise}\n */\n getLanguages() {\n return this.fetch('getEntryLanguages');\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#unlocalize\n * @description This method is used to unlocalize an entry\n * @param {string} locale Locale in which the entry has to be unlocalized\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').unlocalize('fr-fr').then(...).catch(...);\n * @return {external:Promise}\n */\n unlocalize(locale) {\n if (!locale || typeof locale !== 'string') {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query.locale = locale;\n return this.fetch('unlocalizeEntry');\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#publish\n * @description This method lets you publish an entry either immediately or schedule it to be published automatically at a later date/time.\n * @param {object} payload - Payload for the request\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').publish({\n \"entry\": {\n \"environments\": [\"development\"],\n \"locales\": [\"en-us\"]\n },\n \"locale\": \"en-us\",\n \"version\": 1,\n \"scheduled_at\": \"2019-02-14T18:30:00.000Z\"\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n publish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query = {};\n return this.fetch('publishEntry', payload);\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#unpublish\n * @description This method lets you publish an entry either immediately or schedule it to be published automatically at a later date/time.\n * @param {object} payload - Payload for the request\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').unpublish({\n \"entry\": {\n \"environments\": [\"development\"],\n \"locales\": [\"en-us\"]\n },\n \"locale\": \"en-us\",\n \"version\": 1,\n \"scheduled_at\": \"2019-02-14T18:30:00.000Z\"\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n unpublish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query = {};\n return this.fetch('unpublishEntry', payload);\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#setWorkflowStage\n * @description This method allows you to either set a particular workflow stage or update the workflow stage details of an entry.\n * @param {object} payload - Payload for the request\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').setWorkflowStage({\n \"workflow\": {\n \"workflow_stage\": {\n \"comment\": \"Test Comment\",\n \"due_date\": \"Thu Dec 01 2018\",\n \"notify\": false,\n \"uid\": \"blt9f52a2cd5e0014fb\",\n \"assigned_to\": [{\n \"uid\": \"blt296a22e28cc0c63c\",\n \"name\": \"John Doe\",\n \"email\": \"john.doe@contentstack.com\"\n }],\n \"assigned_by_roles\": [{\n \"uid\": \"blt5b74c24c7ae25d94\",\n \"name\": \"Content Manager\"\n }]\n }\n }\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n setWorkflowStage(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch('setWorkflowStageEntry', payload);\n }\n\n /**\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#update-an-entry| Update Entry}\n * @name Stack#ContentType#Entry#update\n * @function\n * @description This call allows you to update entry content.\n * @param {object} payload - Payload for the request\n * @param {string} [locale] - Passing the ‘locale’ parameter will localize the entry in the specified locale\n * to be localized in the specified locale.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').update(\n {\n \"entry\": {\n \"title\": \"example\",\n \"url\": \"/example\"\n }\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n update(payload, locale) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query.locale = locale;\n return this.fetch('updateEntry', payload);\n }\n}\n\nexport default (uiConnection, contentType) => {\n connection = uiConnection;\n contentTypeUid = contentType;\n return new Proxy(Entry, {\n apply(Target, thisArg, argumentsList) {\n const entryTarget = new Target(...argumentsList);\n Object.assign(entryTarget, {\n getReferences, addQuery, language, environment, includeOwner, includeContentType, includeSchema, includeReference\n });\n return entryTarget;\n }\n });\n};\n","import Field from './field.js';\n\n/** Class representing an entry from Contentstack UI. Not available for Dashboard Widget extension. */\n\nclass Entry {\n /**\n * @hideconstructor\n */\n constructor(initializationData, connection, emitter) {\n /**\n * Gets the content type of the current entry.\n * @type {Object}\n */\n this.content_type = initializationData.data.content_type;\n\n this._data = initializationData.data.entry;\n /**\n * Gets the locale of the current entry.\n * @type {string}\n */\n this.locale = initializationData.data.locale;\n\n this._connection = connection;\n\n this._emitter = emitter;\n\n const thisEntry = this;\n\n this._emitter.on('entrySave', (event) => {\n thisEntry._data = event.data;\n });\n\n this._emitter.on('entryChange', (event) => {\n thisEntry._changedData = event.data;\n });\n }\n\n /**\n * Gets data of the current entry.\n * @return {Object} Returns entry data.\n */\n\n getData() {\n return this._data;\n }\n\n\n /**\n * Gets the field object which allows you to interact with the field.\n * This object will have all the same methods and properties of extension.field.\n * Note: For fields initialized using the getFields function, the setData function currently works only for the following fields: as single_line, multi_line, RTE, markdown, select, number, boolean, date, link, and extension of data type text, number, boolean, and date.\n * @example\n * var field = entry.getField('field_uid');\n * var fieldSchema = field.schema;\n * var fieldUid = field.uid;\n * var fieldData = field.getData();\n * @param {string} uid Unique ID of the field\n * @return {Object} Field object\n */\n\n\n getField(uid) {\n const path = uid.split('.');\n let value = this._data;\n let schema = this.content_type.schema;\n\n try {\n let skipNext = false;\n let skipNextTwo = false;\n path.forEach((key, index) => {\n if (skipNext) {\n if (skipNextTwo) {\n skipNextTwo = false;\n } else {\n skipNext = false;\n }\n return;\n }\n\n schema = schema.find(x => x.uid === key);\n if (!schema) { throw Error('schema not found'); }\n\n value = value[key];\n\n if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === false\n && path.length !== (index + 1)) {\n schema = schema.schema;\n } else if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === true\n && path.length !== (index + 1)) {\n schema = schema.schema;\n value = value[path[index + 1]];\n skipNext = true;\n } else if (schema.data_type === 'blocks' && path.length !== (index + 1)) {\n let blockId = Object.keys(value[path[index + 1]])[0];\n schema = schema.blocks.find(block => block.uid === blockId);\n if (path.length === index + 2) { // complete block value with uid\n value = value[path[index + 1]];\n } else { // block value without uid\n value = value[path[index + 1]][blockId];\n schema = schema.schema;\n }\n\n skipNext = true;\n skipNextTwo = true;\n }\n });\n } catch (e) {\n throw Error('Invalid uid, Field not found');\n }\n const fieldIntilaizationDataObject = {\n data: {\n uid, value, schema, data_type: schema.data_type\n }\n };\n const fieldObject = new Field(fieldIntilaizationDataObject, this._connection, this._emitter);\n delete fieldObject.onChange;\n return fieldObject;\n }\n\n /**\n * This function executes the callback function every time an entry is saved.\n * @param {function} callback The function to be called when an entry is saved.\n */\n\n\n onSave(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entrySave', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n\n /**\n * The field.onChange() function is called when another extension programmatically changes the data of the current extension field using the field.setData() function. This function is only available for extension fields that support the following data types: text, number, boolean, or date.\n * @param {function} callback The function to be called when an entry is edited/changed.\n */\n\n\n onChange(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entryChange', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n\n /**\n * The onPublish() function executes the callback function every time an entry has been published with the respective payload.\n * @param {function} callback The function to be called when an entry is published.\n */\n\n\n onPublish(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entryPublish', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n\n /**\n * The onPublish() function executes the callback function every time an entry has been unpublished with the respective payload.\n * @param {function} callback The function to be called when an entry is un published.\n */\n\n\n onUnPublish(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entryUnPublish', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n}\nexport default Entry;\n","function onError(error) {\n return Promise.reject(error);\n}\n/**\n * Class used by an extension to store your data in {@link external:localStorage}.\n */\nclass Store {\n /**\n * @hideconstructor\n */\n constructor(connection) {\n this._connection = connection;\n }\n /**\n * Gets the value of key\n * @param {string} key Key of the stored data\n * @example extension.store.get('key').then((value) => console.log(value)) // will log value for the given key\n * @return {external:Promise}\n */\n get(key) {\n if (!key || typeof key !== 'string') { throw new Error('Kindly provide valid parameters'); }\n return this._connection.sendToParent('store', { action: 'get', key })\n .then(event => Promise.resolve(event.data)).catch(onError);\n }\n\n /**\n * Gets an object with all the stored key-value pairs.\n * @example extension.store.getAll().then((obj) => obj)\n * @return {external:Promise}\n */\n getAll() {\n return this._connection.sendToParent('store', { action: 'getAll' })\n .then(({ data = {} }) => Promise.resolve(data)).catch(onError);\n }\n\n /**\n * Sets the value of a key\n * @param {string} key Key of the stored data.\n * @param {*} value Data to be stored.\n * @example extension.store.set('key', 'value').then((success) => console.log(success)) // will log ‘true’ when value is set\n * @return {external:Promise}\n */\n\n set(key, value) {\n if (!key || !value || typeof key !== 'string') {\n throw new Error('Kindly provide valid parameters');\n }\n return this._connection.sendToParent('store', { action: 'set', key, value })\n .then(() => Promise.resolve(true)).catch(onError);\n }\n\n /**\n * Removes the value of a key\n * @param {string} key Key of the data to be removed from the store\n * @example extension.store.remove('key').then((success) => console.log(success)) // will log ‘true’ when value is removed\n * @return {external:Promise}\n */\n\n remove(key) {\n if (!key || typeof key !== 'string') { throw new Error('Kindly provide valid parameters'); }\n return this._connection.sendToParent('store', { action: 'remove', key })\n .then(() => Promise.resolve(true)).catch(onError);\n }\n\n /**\n * Clears all the stored data of an extension\n * @example extension.store.clear().then((success) => console.log(success)) // will log ‘true’ when values are cleared\n * @return {external:Promise}\n */\n\n clear() {\n return this._connection.sendToParent('store', { action: 'clear' })\n .then(() => Promise.resolve(true)).catch(onError);\n }\n}\n\nexport default Store;\n","/*!\n * EventEmitter v5.2.4 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"ui-extension-sdk.js","mappings":"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","sources":["webpack://ContentstackUIExtension/webpack/universalModuleDefinition","webpack://ContentstackUIExtension/./lib/entry.js","webpack://ContentstackUIExtension/./lib/extension.js","webpack://ContentstackUIExtension/./lib/field.js","webpack://ContentstackUIExtension/./lib/index.js","webpack://ContentstackUIExtension/./lib/stack/api/asset/index.js","webpack://ContentstackUIExtension/./lib/stack/api/base.js","webpack://ContentstackUIExtension/./lib/stack/api/content-type/entry.js","webpack://ContentstackUIExtension/./lib/stack/api/content-type/index.js","webpack://ContentstackUIExtension/./lib/stack/api/query.js","webpack://ContentstackUIExtension/./lib/stack/index.js","webpack://ContentstackUIExtension/./lib/stack/utils.js","webpack://ContentstackUIExtension/./lib/store.js","webpack://ContentstackUIExtension/./lib/window.js","webpack://ContentstackUIExtension/./webpack-entry.js","webpack://ContentstackUIExtension/./node_modules/post-robot/dist/post-robot.js","webpack://ContentstackUIExtension/./node_modules/post-robot/index.js","webpack://ContentstackUIExtension/./node_modules/wolfy87-eventemitter/EventEmitter.js","webpack://ContentstackUIExtension/webpack/bootstrap","webpack://ContentstackUIExtension/webpack/runtime/node module decorator","webpack://ContentstackUIExtension/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ContentstackUIExtension\"] = factory();\n\telse\n\t\troot[\"ContentstackUIExtension\"] = factory();\n})(self, function() {\nreturn ","import Field from './field.js';\n\n/** Class representing an entry from Contentstack UI. Not available for Dashboard Widget extension. */\n\nclass Entry {\n /**\n * @hideconstructor\n */\n constructor(initializationData, connection, emitter) {\n /**\n * Gets the content type of the current entry.\n * @type {Object}\n */\n this.content_type = initializationData.data.content_type;\n\n this._data = initializationData.data.entry;\n /**\n * Gets the locale of the current entry.\n * @type {string}\n */\n this.locale = initializationData.data.locale;\n\n this._connection = connection;\n\n this._emitter = emitter;\n\n const thisEntry = this;\n\n this._emitter.on('entrySave', (event) => {\n thisEntry._data = event.data;\n });\n\n this._emitter.on('entryChange', (event) => {\n thisEntry._changedData = event.data;\n });\n }\n\n /**\n * Gets data of the current entry.\n * @return {Object} Returns entry data.\n */\n\n getData() {\n return this._data;\n }\n\n\n /**\n * Gets the field object for the saved data, which allows you to interact with the field.\n * This object will have all the same methods and properties of extension.field.\n * Note: For fields initialized using the getFields function, the setData function currently works only for the following fields: as single_line, multi_line, RTE, markdown, select, number, boolean, date, link, and extension of data type text, number, boolean, and date.\n * @example\n * var field = entry.getField('field_uid');\n * var fieldSchema = field.schema;\n * var fieldUid = field.uid;\n * var fieldData = field.getData();\n * @param {string} uid Unique ID of the field\n * @return {Object} Field object\n */\n\n\n getField(uid) {\n const path = uid.split('.');\n let value = this._data;\n let schema = this.content_type.schema;\n\n const isDataEmpty = Object.keys(value).length === 0;\n\n if (isDataEmpty) {\n throw new Error('The data is unsaved. Save the data before requesting the field.');\n }\n\n try {\n let skipNext = false;\n let skipNextTwo = false;\n path.forEach((key, index) => {\n if (skipNext) {\n if (skipNextTwo) {\n skipNextTwo = false;\n } else {\n skipNext = false;\n }\n return;\n }\n\n schema = schema.find(x => x.uid === key);\n if (!schema) { throw Error('schema not found'); }\n\n console.log('mayhem', value);\n\n value = value[key];\n\n if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === false\n && path.length !== (index + 1)) {\n schema = schema.schema;\n } else if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === true\n && path.length !== (index + 1)) {\n schema = schema.schema;\n value = value[path[index + 1]];\n skipNext = true;\n } else if (schema.data_type === 'blocks' && path.length !== (index + 1)) {\n let blockId = Object.keys(value[path[index + 1]])[0];\n schema = schema.blocks.find(block => block.uid === blockId);\n if (path.length === index + 2) { // complete block value with uid\n value = value[path[index + 1]];\n } else { // block value without uid\n value = value[path[index + 1]][blockId];\n schema = schema.schema;\n }\n\n skipNext = true;\n skipNextTwo = true;\n }\n });\n } catch (e) {\n throw Error('Invalid uid, Field not found');\n }\n const fieldIntilaizationDataObject = {\n data: {\n uid, value, schema, data_type: schema.data_type\n }\n };\n const fieldObject = new Field(fieldIntilaizationDataObject, this._connection, this._emitter);\n delete fieldObject.onChange;\n return fieldObject;\n }\n\n /**\n * This function executes the callback function every time an entry is saved.\n * @param {function} callback The function to be called when an entry is saved.\n */\n\n\n onSave(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entrySave', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n\n /**\n * The field.onChange() function is called when another extension programmatically changes the data of the current extension field using the field.setData() function. This function is only available for extension fields that support the following data types: text, number, boolean, or date.\n * @param {function} callback The function to be called when an entry is edited/changed.\n */\n\n\n onChange(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entryChange', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n\n /**\n * The onPublish() function executes the callback function every time an entry has been published with the respective payload.\n * @param {function} callback The function to be called when an entry is published.\n */\n\n\n onPublish(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entryPublish', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n\n /**\n * The onUnPublish() function executes the callback function every time an entry has been unpublished with the respective payload.\n * @param {function} callback The function to be called when an entry is un published.\n */\n\n\n onUnPublish(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entryUnPublish', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n}\nexport default Entry;\n","import postRobot from 'post-robot';\nimport Field from './field.js';\nimport Window from './window.js';\nimport Stack from './stack';\nimport Entry from './entry.js';\nimport Store from './store.js';\nimport EventEmitter from 'wolfy87-eventemitter';\n\nconst emitter = new EventEmitter();\n\n/** Class representing an extension from Contentstack UI. */\n\nclass Extension {\n /**\n * @hideconstructor\n */\n constructor(initData) {\n const initializationData = initData;\n\n this.postRobot = postRobot;\n /**\n * This method gives you the configuration parameters. Check out our {@link https://www.contentstack.com/docs/guide/extensions|UI Extension documentation} .\n * @type {Object}\n */\n\n this.config = initializationData.data.config;\n /**\n * This object holds details of the current user.\n * @type {Object}\n */\n this.currentUser = initializationData.data.user;\n /**\n * type of extension, 'FIELD' || 'WIDGET' || 'DASHBOARD'.\n * @type {string}\n */\n this.type = initializationData.data.type || 'FIELD';\n\n\n if (this.type === 'FIELD') {\n /**\n * This method gives you the instance configuration parameters set from the content type builder page in the field settings. This is only available for the Custom Field extension.\n * @type {Object}\n */\n this.fieldConfig = initializationData.data.field_config;\n\n\n initializationData.data.self = true;\n /**\n * Gives you the extension field object which allows you to interact with the field. Only available for the Custom Field extension.\n * @type {Field}\n */\n this.field = new Field(initializationData, postRobot, emitter);\n }\n\n /**\n * Store to persist data for extension.\n * Note: Data is stored in the browser {@link external:localStorage} and will be lost if the {@link external:localStorage} is cleared in the browser.\n * @type {Store}\n */\n this.store = new Store(postRobot);\n\n if (this.type !== 'DASHBOARD') {\n /**\n * This gives you the entry object which allows you to interact with the current entry. Not available in case of the Dashboard Widget extension.\n * @type {Entry}\n */\n this.entry = new Entry(initializationData, postRobot, emitter);\n }\n\n\n if (this.type === 'FIELD' || this.type === 'DASHBOARD') {\n /**\n * The window object provides users with methods that allow them to adjust the size of the iframe that contains the extension. Not available in case of custom widgets.\n * @type {Window}\n */\n this.window = new Window(postRobot, this.type, emitter, initializationData.data.dashboard_width);\n }\n\n /**\n * This method returns stack object which allows users to read and manipulate a range of objects in a stack.\n * @type {Stack}\n */\n this.stack = new Stack(initializationData.data.stack, postRobot);\n\n postRobot.on('extensionEvent', (event) => {\n if (event.data.name === 'entrySave') {\n emitter.emitEvent('entrySave', [{ data: event.data.data }]);\n emitter.emitEvent('updateFields', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'entryChange') {\n emitter.emitEvent('entryChange', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'entryPublish') {\n emitter.emitEvent('entryPublish', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'entryUnPublish') {\n emitter.emitEvent('entryUnPublish', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'dashboardResize') {\n emitter.emitEvent('dashboardResize', [{ state: event.data.state }]);\n }\n\n if (event.data.name === 'extensionFieldChange') {\n emitter.emitEvent('extensionFieldChange', [{ data: event.data.data }]);\n }\n });\n }\n\n static initialize(version) {\n return postRobot.sendToParent('init', { version });\n }\n\n setReady() {\n return this.postRobot.sendToParent('ready');\n }\n}\n\n\nexport default Extension;\n","const excludedDataTypesForSetField = ['file', 'reference', 'blocks', 'group', 'global_field'];\n\nfunction separateResolvedData(field, value) {\n let resolvedData = value;\n let unResolvedData = value;\n if (field.data_type === 'file') {\n if (value) {\n resolvedData = value;\n unResolvedData = field.schema.multiple === true ?\n value.map(file => file.uid) :\n value.uid;\n } else if (field.schema.multiple === true) {\n resolvedData = [];\n unResolvedData = [];\n }\n }\n return { resolvedData, unResolvedData };\n}\n\n/** Class representing a field from Contentstack UI. Only available for Custom Field extension */\nclass Field {\n /**\n * @hideconstructor\n */\n constructor(fieldDataObject, connection, emitter) {\n /**\n * The UID of the current field is defined in the content type of the entry.\n * @type {string}\n */\n this.uid = fieldDataObject.data.uid;\n /**\n * The data type of the current field is set using this method.\n * @type {string}\n */\n this.data_type = fieldDataObject.data.schema.data_type;\n /**\n * The schema of the current field (schema of fields such as ‘Single Line Textbox’, ‘Number’,\n * and so on) is set using this method.\n * @type {Object}\n */\n this.schema = fieldDataObject.data.schema;\n this._emitter = emitter;\n\n let separatedData = separateResolvedData(this, fieldDataObject.data.value);\n\n this._data = separatedData.unResolvedData;\n\n this._resolvedData = separatedData.resolvedData;\n\n this._connection = connection;\n\n this._self = fieldDataObject.data.self || false;\n\n const fieldObj = this;\n\n emitter.on('updateFields', (event) => {\n const path = fieldObj.uid.split('.');\n let value = event.data;\n\n path.forEach((key) => {\n if (value) { value = value[key]; }\n });\n\n if (fieldObj._data !== value) {\n fieldObj._data = value;\n }\n });\n }\n\n /**\n * Sets the data for the current field.\n * @param {Object|string|number} data Data to be set on the field\n * @return {external:Promise} A promise object which is resolved when data is set for a field. Note: The data set by this function will only be saved when user saves the entry.\n */\n\n setData(data) {\n const currentFieldObj = this;\n const dataObj = { data, uid: currentFieldObj.uid, self: currentFieldObj._self };\n\n if (!currentFieldObj._self &&\n ((excludedDataTypesForSetField.indexOf(currentFieldObj.data_type) !== -1) ||\n !currentFieldObj.data_type)) { return Promise.reject(new Error('Cannot call set data for current field type')); }\n\n return this._connection.sendToParent('setData', dataObj).then(() => {\n this._data = data;\n return Promise.resolve(currentFieldObj);\n }).catch(e => Promise.reject(e));\n }\n\n /**\n * Gets the data of the current field\n * @param {Object} options Options object for get Data method.\n * @param {boolean} options.resolved If the resolved parameter is set to true for the File field, then the method will return a resolved asset object along with all the field metadata, e.g. 'field.getData({resolved:true})'.\n * @return {Object|string|number} Returns the field data.\n */\n getData({ resolved = false } = {}) {\n return resolved ? this._resolvedData : this._data;\n }\n\n /**\n * Sets the focus for a field when an extension is being used. This method shows user presence and highlights the extension field that the user is currently accessing in Contentstack UI.\n * @return {Object} A promise object which is resolved when Contentstack UI returns an acknowledgement of the focused state.\n */\n setFocus() {\n return this._connection.sendToParent('focus');\n }\n\n /**\n * This function is called when another extension programmatically changes data of this field using field.setData() function, only available for extension field, only support extensions of data type text, number, boolean or date.\n * @param {function} callback The function to be called when an entry is published.\n */\n onChange(callback) {\n const fieldObj = this;\n if (callback && typeof (callback) === 'function') {\n fieldObj._emitter.on('extensionFieldChange', (event) => {\n this._data = event.data;\n this._resolvedData = event.data;\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n}\n\nexport default Field;\n","import Extension from './extension.js';\nimport postRobot from 'post-robot';\nimport { version } from '../package.json';\n\npostRobot.CONFIG.LOG_LEVEL = 'error';\n\n/** Class to initialize the plugin on Contentstack UI. */\n/**\n * @hideconstructor\n */\n\nclass ContentstackUIExtension {\n /**\n * You need to first include Contentstack UI Extensions SDK and\n * Contentstack UI Stylesheet in you HTML file and then call\n * ContentstackUIExtension.init in the script tag.\n * @example\n * HTML\n * \n * \n * @example Custom Field\n * // javascript\n * ContentstackUIExtension.init().then(function (extension) {\n * var value = extension.field.getData()\n * extension.field.setData(\"New Field Data\")\n * })\n * @example Custom Widget\n * // javascript\n * ContentstackUIExtension.init().then(function (extension) {\n * var entry = extension.entry.getData()\n * })\n * @example Dashboard Widget\n * // javascript\n * ContentstackUIExtension.init().then(function (extension) {\n * var stack = extension.stack;\n * var stackData = stack.getData();\n * })\n * @return {external:Promise} A promise object which will be resolved with an instance of the {@link Extension} class which is instantiated using the data received from the Contentstack UI.\n */\n static init() {\n if (this._extension) { return Promise.resolve(this._extension); }\n return Extension.initialize(version).then((initializationData) => {\n this._extension = new Extension(initializationData);\n return Promise.resolve(this._extension);\n }).catch((e) => Promise.reject(e));\n }\n\n\n /**\n * Version of Contentstack UI extension.\n * @type {string}\n */\n static get SDK_VERSION() {\n return version;\n }\n}\n\nexport default ContentstackUIExtension;\n","import Base from '../base.js';\nimport { getReferences, language, environment } from '../../utils.js';\n\nlet connection = {};\n\n/**\n * @summary Creates an instance of `Asset`.\n * @description An initializer is responsible for creating an Asset object.\n * @param {String} uid - uid of the asset\n * @example\n * let Asset = extension.stack.Asset('bltsomething123');\n * @returns {Asset}\n * @ignore\n */\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n\nclass Asset extends Base {\n constructor(uid) {\n super(uid);\n this.getReferences = getReferences;\n this.environment = environment;\n return this;\n }\n\n /**\n * @function\n * @name Stack#Asset.Query\n * @description This static method instantiates the query module for assets. To see the list of methods that can be used for querying assets, refer the {@link Query} module.\n * @example\n * let assetQuery = extension.stack.Asset.Query();\n * assetQuery.where(\"title\": \"main.js\").limit(10).skip(10).find().then(...).catch(...);\n * @return {Query}\n */\n\n\n static Query() {\n const entryQuery = super.Query();\n Object.assign(entryQuery, {\n language, environment\n });\n return entryQuery;\n }\n\n static module(plural = false) {\n return plural ? 'Assets' : 'Asset';\n }\n\n static get connection() {\n return connection;\n }\n\n /**\n * @function\n * @name Stack#Asset.getRteAssets\n * @description This static method retrieves comprehensive information on all assets uploaded through the Rich Text Editor field.\n * @return {external:Promise}\n */\n\n static getRteAssets() {\n return this.connection.sendToParent('stackQuery', { action: 'getRteAssets' }).then(onData).catch(onError);\n }\n\n /**\n * @function\n * @name Stack#Asset.getAssetsOfSpecificTypes\n * @description This static method retrieves assets that are either image or video files, based on the request query.\n * @param {String} assetType Type of asset to be received for e.g., ‘image/png’\n * @return {external:Promise}\n */\n static getAssetsOfSpecificTypes(assetType) {\n if (!assetType || typeof assetType !== 'string') {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.connection.sendToParent('stackQuery', { action: 'getAssetsOfSpecificTypes', asset_type: assetType }).then(onData).catch(onError);\n }\n\n\n /**\n * @name Stack#Asset#only\n * @function\n * @description This method is used to show the selected fields of the assets in the result set.\n * @param {String} [key=BASE] - Single field of an asset\n * @param {Array} values - Array of fields to be shown in the result set\n * @example\n * Only with the field UID \n * extension.stack.Asset('bltsomething123').only('title').fetch();\n * @example\n * Only with the field UID \n * extension.stack.Asset('bltsomething123').only('BASE','title').fetch();\n * @example\n * Only with the field UIDs(array) \n * extension.stack.Asset('bltsomething123').only(['title','description']).fetch();\n * @returns {Stack#Asset}\n */\n\n /**\n * @name Stack#Asset#except\n * @function\n * @description This method is used to hide the selected fields of the assets in result set.\n * @param {String} [key=BASE] - Single field of an asset\n * @param {Array} values - Array of fields to be hidden in the result set\n * @example\n * .Except with the field UID \n * extension.stack.Asset('bltsomething123').except('title').fetch();\n * @example\n * .Except with the field UID \n * extension.stack.Asset('bltsomething123').except('BASE','title').fetch();\n * @example\n * .Except with the field UIDs(array) \n * extension.stack.Asset('bltsomething123').except(['title','description']).fetch();\n * @returns {Stack#Asset}\n */\n\n /**\n * @function\n * @name Stack#Asset#environment\n * @description This method is used to set the environment name of which you want to retrieve the data.\n * @param {String} environment_uid - UID/Name of environment\n * @example extension.stack.Asset('bltsomething123').environment('development').fetch()\n * @returns {Stack#Asset}\n */\n\n\n /**\n This method includes a query parameter in your query.\n @name Stack#Asset#addParam\n @function\n @example extension.stack.Asset('uid').addParam('key', 'value').fetch().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Stack#Asset}\n */\n\n /**\n This method includes a query parameter in your query.\n @name Stack#Asset#addQuery\n @function\n @example extension.stack.Asset('uid').addQuery('key', 'value').fetch().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Stack#Asset}\n */\n\n\n /**\n This method will fetch the details of the entries and the assets in which the specified asset is referenced.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#get-all-references-of-asset|\n Asset References}\n @name Stack#Asset#getReferences\n @function\n @example extension.stack.Asset('uid').getReferences().then().catch();\n @return {external:Promise}\n */\n\n /**\n This method deletes an existing asset.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#delete-an-asset|\n Delete Asset}\n @name Stack#Asset#delete\n @function\n @example extension.stack.Asset('uid').delete().then().catch();\n @return {external:Promise}\n */\n\n\n /**\n * @name Stack#Asset#publish\n * @function\n * @description This method allows you to publish the asset either immediately or schedule the publish for a later date/time.\n * @param {object} payload - Payload for the request.\n * @example extension.stack.Asset('bltsomething123')\n .publish(\n {\n \"asset\": {\n \"locales\": [\n \"en-us\"\n ],\n \"environments\": [\n \"development\"\n ]\n },\n \"version\": 1,\n \"scheduled_at\": \"2019-02-08T18:30:00.000Z\"\n });\n * @return {external:Promise}\n */\n publish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch('publishAsset', payload);\n }\n\n /**\n * @function\n * @name Stack#Asset#unpublish\n * @description This method will instantly unpublish the asset, and also give you the provision to automatically unpublish the asset at a later date/time.\n * @param {object} payload - Payload for the request.\n * @example extension.stack.Asset('bltsomething123')\n .unpublish({\n \"asset\": {\n \"locales\": [\n \"en-us\"\n ],\n \"environments\": [\n \"development\"\n ]\n },\n \"version\": 1,\n \"scheduled_at\": \"2019-02-08T18:30:00.000Z\"\n });\n * @return {external:Promise}\n */\n unpublish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch('unpublishAsset', payload);\n }\n}\n\nexport default (uiConnection) => {\n connection = uiConnection;\n return new Proxy(Asset, {\n apply(Target, thisArg, argumentsList) {\n return new Target(...argumentsList);\n }\n });\n};\n","import Query from './query.js';\nimport { transform, addParam } from '../utils.js';\n\n\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n/**\n * This is Base class, it holds all the methods required for Modle instance,\n * eg ContentType('uid').delete() or Asset('uid').update({...})\n * @ignore\n */\nexport default class Base {\n constructor(uid) {\n if (!uid) { throw new Error('uid is required'); }\n this.uid = uid;\n this._query = {};\n this.only = transform('only');\n this.except = transform('except');\n this.addParam = addParam;\n }\n\n static Query() {\n return new Query(this.connection, this.module(true), this.contentTypeUid);\n }\n\n\n static create(payload) {\n const options = { payload, content_type_uid: this.contentTypeUid, action: `create${this.module()}` };\n return this.connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n update(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch(`update${this.constructor.module()}`, payload);\n }\n\n delete() {\n return this.fetch(`delete${this.constructor.module()}`);\n }\n\n fetch(action, payload) {\n const options = {\n payload,\n content_type_uid: this.constructor.contentTypeUid,\n uid: this.uid,\n params: this._query,\n action: action || `get${this.constructor.module()}`\n };\n\n if (!payload) { delete options.payload; }\n if (!this.constructor.contentTypeUid) { delete options.content_type_uid; }\n return this.constructor.connection.sendToParent('stackQuery', options)\n .then(onData).catch(onError);\n }\n}\n","import Base from '../base.js';\nimport { getReferences, addQuery, language, environment, includeOwner, includeContentType, includeSchema, includeReference } from '../../utils.js';\n\nlet connection = {};\nlet contentTypeUid = '';\n\n\nclass Entry extends Base {\n constructor(uid) {\n super(uid);\n this._query = {};\n return this;\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry.Query\n * @description This static method instantiates the query module for entries. To see the list of methods that can be used for querying entries, refer the {@link Query} module.\n * @example\n * let entryQuery = extension.stack.ContentType('content_type_uid').Entry.Query();\n * entryQuery.where(\"field_uid\": \"10\").limit(10).skip(10).find().then(...).catch(...);\n * @return {Query}\n */\n\n static Query() {\n const entryQuery = super.Query();\n Object.assign(entryQuery, {\n language, environment, includeOwner, includeContentType, includeSchema, includeReference\n });\n return entryQuery;\n }\n\n static get connection() {\n return connection;\n }\n\n static get contentTypeUid() {\n return contentTypeUid;\n }\n\n static module(plural = false) {\n return plural ? 'Entries' : 'Entry';\n }\n /**\n This method creates a new entry.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#create-a-an-entry|\n Create Entry}\n @name Stack#ContentType#Entry.create\n @function\n @example extension.stack.ContentType('content_type_uid').Entry.create({\n \"entry\": {\n \"title\": \"example\",\n \"url\": \"/example\"\n }\n }).then(...).catch(...);\n @param {Object} payload Data to create an entry\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n /**\n * @name Stack#ContentType#Entry#only\n * @function\n * @description This method is used to show the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be shown in the result set\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').only('title').fetch();\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').only('BASE','title').fetch();\n * @example\n * Only with field UIDs(array) \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').only(['title','description']).fetch();\n * @returns {Stack#ContentType#Entry}\n */\n\n /**\n * @name Stack#ContentType#Entry#except\n * @function\n * @description This method is used to hide the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be hidden in the result set\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').except('title').fetch();\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').except('BASE','title').fetch();\n * @example\n * Except with field uids(array) \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').except(['title','description']).fetch();\n * @returns {Stack#ContentType#Entry}\n */\n\n /**\n * This method includes a query parameter in your query.\n * @name Stack#ContentType#Entry#addParam\n * @function\n * @example extension.stack.ContentType('content_type_uid').Entry('uid').addParam('include_count', 'true').fetch().then().catch();\n * @param {string} key - Key of the parameter\n * @param {string} value - Value of the parameter\n * @return {Stack#ContentType#Entry} Returns\n */\n\n\n /**\n This method will fetch all the entries in which the current entry is referenced.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#get-all-references-of-an-entry|\n Entry References}\n @name Stack#ContentType#Entry#getReferences\n @function\n @example extension.stack.ContentType('content_type_uid').Entry('uid').getReferences().then().catch();\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n\n /**\n @example extension.stack.ContentType('content_type_uid').Entry('uid').update({\"entry\" : {...}}).then().catch();\n @param {Object} payload Data to be update exsisting entry\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n\n /**\n This method deletes an existing entry.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#delete-an-entry|\n Delete Entry}\n @name Stack#ContentType#Entry#delete\n @function\n @example extension.stack.ContentType('content_type_uid').Entry('uid').delete().then().catch();\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n\n /**\n This method fetches information of a specific entry.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#get-a-single-an-entry|\n Get A Single Entry}\n @name Stack#ContentType#Entry#fetch\n @function\n @example extension.stack.ContentType('content_type_uid').Entry('uid').fetch().then().catch();\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeReference\n * @description This method is used to include referenced entries from other content types.\n * @example\n * .includeReference with reference_field_uids as array \n * stack.ContentType('contenttype_uid').Entry('bltsomething123').includeReference(['category', 'author']).fetch()\n * @example\n * .includeReference with reference_field_uids \n * stack.ContentType('contenttype_uid').Entry('bltsomething123').includeReference('category', 'author').fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#language\n * @description This method is used to set the language code of which you want to retrieve the data.\n * @param {String} languageCode - Language code, for e.g. 'en-us', 'ja-jp', and so on\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').language('en-us').fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n /**\n * @function\n * @name Stack#ContentType#Entry#environment\n * @description This method is used to set the environment name of which you want to retrieve the data.\n * @param {String} environment_uid - UID/Name of environment\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').environment('development').fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#addQuery\n * @description This method is used to add a query to an entry object.\n * @param {String} key - Key of the query\n * @param {String} value - Value of the query\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').addQuery('include_schema',true).fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeSchema\n * @description This method is used to include the schema of the current contenttype in result set along with the entry/entries.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').includeSchema().fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeContentType\n * @description This method is used to include the current content type in the result set along with the entry(ies).\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').includeContentType().fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeOwner\n * @description This method is used to include the owner of the entry(ies) in the result set.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').includeOwner().fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#getLanguages\n * @description This method returns the details of all the languages that an entry is localized in.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').getLanguages()\n * @return {external:Promise}\n */\n getLanguages() {\n return this.fetch('getEntryLanguages');\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#unlocalize\n * @description This method is used to unlocalize an entry\n * @param {string} locale Locale in which the entry has to be unlocalized\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').unlocalize('fr-fr').then(...).catch(...);\n * @return {external:Promise}\n */\n unlocalize(locale) {\n if (!locale || typeof locale !== 'string') {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query.locale = locale;\n return this.fetch('unlocalizeEntry');\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#publish\n * @description This method lets you publish an entry either immediately or schedule it to be published automatically at a later date/time.\n * @param {object} payload - Payload for the request\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').publish({\n \"entry\": {\n \"environments\": [\"development\"],\n \"locales\": [\"en-us\"]\n },\n \"locale\": \"en-us\",\n \"version\": 1,\n \"scheduled_at\": \"2019-02-14T18:30:00.000Z\"\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n publish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query = {};\n return this.fetch('publishEntry', payload);\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#unpublish\n * @description This method lets you publish an entry either immediately or schedule it to be published automatically at a later date/time.\n * @param {object} payload - Payload for the request\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').unpublish({\n \"entry\": {\n \"environments\": [\"development\"],\n \"locales\": [\"en-us\"]\n },\n \"locale\": \"en-us\",\n \"version\": 1,\n \"scheduled_at\": \"2019-02-14T18:30:00.000Z\"\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n unpublish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query = {};\n return this.fetch('unpublishEntry', payload);\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#setWorkflowStage\n * @description This method allows you to either set a particular workflow stage or update the workflow stage details of an entry.\n * @param {object} payload - Payload for the request\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').setWorkflowStage({\n \"workflow\": {\n \"workflow_stage\": {\n \"comment\": \"Test Comment\",\n \"due_date\": \"Thu Dec 01 2018\",\n \"notify\": false,\n \"uid\": \"blt9f52a2cd5e0014fb\",\n \"assigned_to\": [{\n \"uid\": \"blt296a22e28cc0c63c\",\n \"name\": \"John Doe\",\n \"email\": \"john.doe@contentstack.com\"\n }],\n \"assigned_by_roles\": [{\n \"uid\": \"blt5b74c24c7ae25d94\",\n \"name\": \"Content Manager\"\n }]\n }\n }\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n setWorkflowStage(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch('setWorkflowStageEntry', payload);\n }\n\n /**\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#update-an-entry| Update Entry}\n * @name Stack#ContentType#Entry#update\n * @function\n * @description This call allows you to update entry content.\n * @param {object} payload - Payload for the request\n * @param {string} [locale] - Passing the ‘locale’ parameter will localize the entry in the specified locale\n * to be localized in the specified locale.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').update(\n {\n \"entry\": {\n \"title\": \"example\",\n \"url\": \"/example\"\n }\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n update(payload, locale) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query.locale = locale;\n return this.fetch('updateEntry', payload);\n }\n}\n\nexport default (uiConnection, contentType) => {\n connection = uiConnection;\n contentTypeUid = contentType;\n return new Proxy(Entry, {\n apply(Target, thisArg, argumentsList) {\n const entryTarget = new Target(...argumentsList);\n Object.assign(entryTarget, {\n getReferences, addQuery, language, environment, includeOwner, includeContentType, includeSchema, includeReference\n });\n return entryTarget;\n }\n });\n};\n","import Entry from './entry.js';\nimport Base from '../base.js';\n\nlet connection = {};\n\n\nclass ContentType extends Base {\n constructor(uid) {\n super(uid);\n /**\n * @constructor\n * @hideconstructor\n * @name Stack#ContentType#Entry\n * @version 2.2.0\n * @desc An entry is the actual piece of content created using one of the defined content types\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#entries| Entries}\n */\n\n\n this.Entry = Entry(this.constructor.connection, this.uid);\n return this;\n }\n\n // static module(plural = false) {\n // return plural ? 'ContentTypes' : 'ContentType';\n // }\n static get connection() {\n return connection;\n }\n}\nexport default (uiConnection) => {\n connection = uiConnection;\n return new Proxy(ContentType, {\n // target = Foo\n apply(Target, thisArg, argumentsList) {\n return new Target(...argumentsList);\n }\n });\n};\n","import * as Utils from '../utils.js';\n\n\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n\nconst _extend = {\n compare(type) {\n return function (key, value) {\n if (key && value && typeof key === 'string' && typeof value !== 'undefined') {\n this._query.query[key] = this._query.query.file_size || {};\n this._query.query[key][type] = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n };\n },\n contained(bool) {\n const type = (bool) ? '$in' : '$nin';\n return function (key, value) {\n if (key && value && typeof key === 'string' && Array.isArray(value)) {\n this._query.query[key] = this._query.query[key] || {};\n this._query.query[key][type] = this._query.query[key][type] || [];\n this._query.query[key][type] = this._query.query[key][type].concat(value);\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n };\n },\n exists(bool) {\n return function (key) {\n if (key && typeof key === 'string') {\n this._query.query[key] = this._query.query[key] || {};\n this._query.query[key].$exists = bool;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n };\n },\n logical(type) {\n return function () {\n const _query = [];\n for (let i = 0, _i = arguments.length; i < _i; i += 1) {\n if (arguments[i] instanceof Query && arguments[i]._query.query) {\n _query.push(arguments[i]._query.query);\n } else if (typeof arguments[i] === 'object') {\n _query.push(arguments[i]);\n }\n }\n if (this._query.query[type]) {\n this._query.query[type] = this._query.query[type].concat(_query);\n } else {\n this._query.query[type] = _query;\n }\n return this;\n };\n },\n sort(type) {\n return function (key) {\n if (key && typeof key === 'string') {\n this._query[type] = key;\n return this;\n }\n throw Error('Argument should be a string.');\n };\n },\n pagination(type) {\n return function (value) {\n if (typeof value === 'number') {\n this._query[type] = value;\n return this;\n }\n throw Error('Argument should be a number.');\n };\n }\n};\n\n/**\n * Creates an instance of the query\n * @version 2.2.0\n * @hideconstructor\n */\nclass Query {\n constructor(connection, module, contentTypeUid) {\n this.module = module;\n this._connection = connection;\n this._query = {};\n this._query.query = this._query.query || {};\n this.contentTypeUid = contentTypeUid;\n /**\n * @name Query#only\n * @function\n * @description This method is used to show the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be shown in the result set\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry.Query().only('title').find();\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry.Query().only('BASE','title').find();\n * @example\n * Only with field UIDs(array) \n * extension.stack.ContentType('content_type_uid').Entry.Query().only(['title','description']).find();\n * @returns {Query}\n */\n\n this.only = Utils.transform('only');\n\n /**\n * @name Query#except\n * @function\n * @description This method is used to hide the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be hidden in the result set\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry.Query().except('title').find();\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry.Query().except('BASE','title').find();\n * @example\n * Except with field uids(array) \n * extension.stack.ContentType('content_type_uid').Entry.Query().except(['title','description']).find();\n * @returns {Query}\n */\n\n this.except = Utils.transform('except');\n /**\n This method includes a query parameter in your query.\n @name Query#addQuery\n @function\n @example extension.stack.ContentType('content_type_uid').Entry.Query().addQuery('key', 'value').find().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Query}\n */\n this.addQuery = Utils.addQuery;\n\n /**\n * @name Query#lessThan\n * @description This method provides only the entries with values less than the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').lessThan('created_at','2015-06-22')\n * @returns {Query}\n */\n this.lessThan = _extend.compare('$lt');\n\n /**\n * @name Query#lessThanOrEqualTo\n * @description This method provides only the entries with values less than or equal to the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').lessThanOrEqualTo('created_at','2015-03-12')\n * @returns {Query}\n */\n this.lessThanOrEqualTo = _extend.compare('$lte');\n /**\n * @function\n * @name Query#greaterThan\n * @description This method provides only the entrieswith values\n * greater than the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').greaterThan('created_at','2015-03-12')\n * @returns {Query}\n */\n this.greaterThan = _extend.compare('$gt');\n\n /**\n * @function\n * @name Query#greaterThanOrEqualTo\n * @description This method provides only the entries with values greater than or equal to the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').greaterThanOrEqualTo('created_at', '2015-06-22')\n * @returns {Query}\n */\n this.greaterThanOrEqualTo = _extend.compare('$gte');\n\n /**\n * @function\n * @name Query#notEqualTo\n * @description This method provides only the entries with values not equal to the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').notEqualTo('title','Demo')\n * @returns {Query}\n */\n this.notEqualTo = _extend.compare('$ne');\n\n /**\n * @function\n * @name Query#containedIn\n * @description This method provides only the entries with values matching the specified values for a field.\n * @param {String} key - UID of the field\n * @param {*} value - An array of values that are to be used to match or compare\n * @example extension.stack.ContentType('blog').containedIn('title', ['Demo', 'Welcome'])\n * @returns {Query}\n */\n this.containedIn = _extend.contained(true);\n\n /**\n * @function\n * @name Query#notContainedIn\n * @description This method provides only the entries that do not contain values matching the specified values for a field.\n * @param {String} key - UID of the field\n * @param {Array} value - An array of values that are to be used to match or compare\n * @example extension.stack.ContentType('blog').notContainedIn('title', ['Demo', 'Welcome'])\n * @returns {Query}\n */\n this.notContainedIn = _extend.contained(false);\n\n /**\n * @function\n * @name Query#exists\n * @description This method provides only the entries that contains the field matching the specified field UID.\n * @param {String} key - UID of the field\n * @example extension.stack.ContentType('blog').exists('featured')\n * @returns {Query}\n */\n this.exists = _extend.exists(true);\n\n /**\n * @function\n * @name Query#notExists\n * @description This method provides only the entries that do not contain the field matching the specified field UID.\n * @param {String} key - UID of the field\n * @example extension.stack.ContentType('blog').notExists('featured')\n * @returns {Query}\n */\n this.notExists = _extend.exists(false);\n\n /**\n * @function\n * @name Query#ascending\n * @description This parameter sorts the entries in ascending order on the basis of the value of the specified field.\n * @param {String} key - Field UID to be used for sorting.\n * @example extension.stack.ContentType('blog').ascending('created_at')\n * @returns {Query}\n */\n this.ascending = _extend.sort('asc');\n\n /**\n * @function\n * @name Query#descending\n * @description This method sorts the entries in descending order on the basis of the specified field.\n * @param {String} key - Field UID to be used for sorting\n * @example extension.stack.ContentType('blog').descending('created_at')\n * @returns {Query}\n */\n this.descending = _extend.sort('desc');\n\n /**\n * @function\n * @name Query#beforeUid\n * @description This method provides only the entries that are placed before the specified entry ID.\n * @param {String} uid - UID of the entry\n * @example extension.stack.ContentType('blog').beforeUid('blt1234567890abcdef')\n * @returns {Query}\n * @ignore\n */\n this.beforeUid = _extend.sort('before_uid');\n\n /**\n * @function\n * @name Query#afterUid\n * @description This method provides only the entries that are placed after the specified entry ID.\n * @param {String} uid - UID of the entry\n * @example extension.stack.ContentType('blog').afterUid('blt1234567890abcdef')\n * @returns {Query}\n * @ignore\n */\n this.afterUid = _extend.sort('after_uid');\n\n /**\n * @function\n * @name Query#skip\n * @description This method skips the specified number of entries.\n * @param {Number} skip - Number of entries to be skipped\n * @example extension.stack.ContentType('blog').skip(5)\n * @returns {Query}\n */\n this.skip = _extend.pagination('skip');\n\n /**\n * @function\n * @name Query#limit\n * @description This method limits the response by providing only the specified number of entries.\n * @param {Number} limit - Maximum number of entries to be returned in the result.\n * @example extension.stack.ContentType('blog').limit(10)\n * @returns {Query}\n */\n this.limit = _extend.pagination('limit');\n\n /**\n * @function\n * @name Query#or\n * @description This method performs the OR operation on the specified query objects and provides only the matching entries.\n * @param {object} Array of query objects/raw queries\n * to be taken into consideration\n * @example\n * OR with query instances\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo')\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10)\n * let blogQuery = extension.stack.ContentType('blog').or(Query1, Query2)\n * @example\n * OR with query instances\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo').getQuery()\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10).getQuery()\n * let blogQuery = extension.stack.ContentType('blog').or(Query1, Query2)\n * @returns {Query}\n */\n this.or = _extend.logical('$or');\n\n /**\n * @function\n * @name Query#and\n * @description This method performs the AND operation on the specified query objects and provides only the matching entries.\n * @param {object} Array of query objects/raw queries to be taken into consideration\n * @example\n * AND with raw queries\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo');\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10);\n * let blogQuery = extension.stack.ContentType('blog').and(Query1, Query2)\n * @example\n * .and with raw queries\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo').getQuery();\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10).getQuery();\n * let blogQuery = extension.stack.ContentType('blog').and(Query1, Query2)\n * @returns {Query}\n */\n this.and = _extend.logical('$and');\n /**\n This method includes a query parameter in your query.\n @name Query#addParam\n @function\n @example extension.stack.ContentType('content_type_uid').Entry.Query().addParam('key', 'value').find().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Query}\n */\n this.addParam = Utils.addParam;\n }\n\n // -------------------------------------Entry Queries--------------------------------------------------\n /**\n * @function\n * @name Query#includeReference\n * @description This method is used to include referenced entries from other content types. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example\n * .includeReference with reference_field_uids as array \n * stack.ContentType('contenttype_uid').Entry.Query().includeReference(['category', 'author']).find()\n * @example\n * .includeReference with reference_field_uids \n * stack.ContentType('contenttype_uid').Entry.Query().includeReference('category', 'author').find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#includeSchema\n * @description This method is used to include the schema of the current contenttype in result set along with the entry/entries. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().includeSchema().find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#language\n * @description This method is used to set the language code of which you want to retrieve the data. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @param {String} languageCode - Language code, for e.g. 'en-us', 'ja-jp', and so on\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().language('en-us').find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#includeContentType\n * @description This method is used to include the current content type in the result set along with the entry(ies). Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().includeContentType().find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#includeOwner\n * @description This method is used to include the owner of the entry(ies) in the result set. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().includeOwner().find()\n * @returns {Query}\n */\n // -----------------------------------------Entry Queries End------------------------------------------------------\n\n /**\n * @function\n * @name Query#environment\n * @description This method is used to set the environment name of which you want to retrieve the data.\n * @param {String} environment_uid - UID/Name of environment\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().environment('development').find()\n * @returns {Query}\n */\n\n /**\n * @description This method provides only the entries containing field values matching the specified condition.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').where('title','Demo')\n * @returns {Query}\n */\n equalTo(key, value) {\n if (key && typeof key === 'string') {\n this._query.query[key] = value;\n\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n where(key, value) {\n if (key && typeof key === 'string') {\n this._query.query[key] = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n /**\n * @description This method provides only the number of entries matching the specified filters.\n * @example extension.stack.ContentType('blog').count()\n * @returns {Query}\n */\n count() {\n this._query.count = true;\n const options = { content_type_uid: this.contentTypeUid, params: this._query, action: `get${this.module}` };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * @description This method is used to set raw queries on the Query instance.\n * @param {object} query - Raw{json} queries to filter the entries in the result set.\n * @returns {Query}\n */\n query(query) {\n if (typeof query === 'object') {\n this._query.query = Utils.mergeDeep(this._query.query, query);\n return this;\n }\n throw Error('Kindly provide valid parameters');\n }\n\n /**\n * @description The ’tags’ parameter allows you to specify an array of tags to search for objects.\n * @param {Array} values - Tags\n * @example extension.stack.ContentType('blog').tags(['technology', 'business'])\n * @returns {Query}\n */\n tags(values) {\n if (Array.isArray(values)) {\n this._query.tags = values;\n return this;\n }\n throw Error('Kindly provide valid parameters');\n }\n\n /**\n * @description This method also includes the total number of entries returned in the response.\n * @example extension.stack.ContentType('blog').includeCount()\n * @returns {Query}\n */\n includeCount() {\n this._query.include_count = true;\n return this;\n }\n\n /**\n * @summary returns Returns the raw query which can be used for further calls (.and/.or).\n * @description This method provides raw{json} queries based on the filters applied on the Query object.\n * @example extension.stack.ContentType('blog').where('title','Demo').getQuery()\n * @returns {Query}\n */\n getQuery() {\n return this._query.query;\n }\n\n /**\n * @description This method provides only the entries matching the regular expression for the specified field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @param {String} [options] - Match or compare a value in the entry\n * @example\n * .regex without options\n * let blogQuery = extension.stack.ContentType('blog').regex('title','^Demo')\n * @example\n * .regex with options\n * let blogQuery = extension.stack.ContentType('blog').regex('title','^Demo', 'i')\n * @returns {Query}\n */\n regex(key, value, options) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query.query[key] = {\n $regex: value\n };\n if (options) this._query.query[key].$options = options;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n /**\n * @description This method is used to search data in entries.\n * @param {string} value - Value to search in the entries.\n * @example extension.stack.ContentType('blog').search('Welcome to demo')\n * @returns {Query}\n */\n search(value) {\n if (value && typeof value === 'string') {\n this._query.typeahead = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n /**\n * @description This method provides all the entries which satisfy the specified query.\n * @example\n * let blogQuery = extension.stack.ContentType('blog').find()\n */\n find() {\n const options = { content_type_uid: this.contentTypeUid, params: this._query, action: `get${this.module}` };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * @description This method provides a single entry from the result set.\n * @example\n * let blogQuery = extension.stack.ContentType('blog').findOne()\n */\n findOne() {\n this.singleEntry = true;\n this._query.limit = 1;\n const options = { content_type_uid: this.contentTypeUid, params: this._query, action: `get${this.module}` };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n}\n\nexport default Query;\n","import Asset from './api/asset/index.js';\nimport ContentType from './api/content-type/index.js';\n\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n\n\n/**\n * Class representing the current stack in Contentstack UI.\n */\n\nclass Stack {\n /**\n * @hideconstructor\n */\n constructor(data, connection) {\n this._connection = connection;\n this._data = data;\n /**\n * @constructor\n * @hideconstructor\n * @version 2.2.0\n * @desc Content type defines the structure or schema of a page or a section of your web or mobile property\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#content-types| ContentType}\n * @param {string} uid - Uid of contenttype.\n * @example extension.stack.ContentType('content_type_uid')\n * */\n this.ContentType = ContentType(connection);\n /**\n * @constructor\n * @version 2.2.0\n * @hideconstructor\n * @desc An initializer is responsible for creating an Asset object.\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#assets| Asset}\n * @param {string} uid - UID of the asset.\n * @example extension.stack.Asset('asset_uid')\n * */\n this.Asset = Asset(connection);\n }\n\n\n /**\n * This method returns the data of the current stack.\n * @return {Object} Returns stack data.\n */\n\n getData() {\n return this._data;\n }\n\n\n /**\n * This API allows you to retrieve data of a content type of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-a-single-content-type| Content Type API} requests. This method returns a Promise object.\n * @param {string} uid Uid of the desired content type\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with content type details.\n */\n getContentType(uid, params = {}) {\n if (!uid) {\n return Promise.reject(new Error('uid is required'));\n }\n const options = { uid, params, action: 'getContentType' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrieve data of a content types of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-all-content-types| Content Types API} requests. This method returns a Promise object.\n * @param {Object} query Query for the GET call\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with details of the content type.\n */\n getContentTypes(query = {}, params = {}) {\n const optionParams = params;\n optionParams.query = query;\n const options = { params: optionParams, action: 'getContentTypes' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrieve environment details of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-a-single-environment| Environment API} requests. This method returns a Promise object.\n * @param {string} name Name of the desired environment\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with environment details.\n */\n getEnvironment(name, params = {}) {\n if (!name) {\n return Promise.reject(new Error('name is required'));\n }\n const options = { name, params, action: 'getEnvironment' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrieve details of environments of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-all-environments| Environments API} requests. This method returns a Promise object.\n * @param {Object} query Query for the GET call\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A Promise object which will be resolved with details of the environments.\n */\n getEnvironments(query = {}, params = {}) {\n const optionParams = params;\n optionParams.query = query;\n const options = { params: optionParams, action: 'getEnvironments' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrive a locale of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-a-language| Language API} requests. Method returns a Promise object.\n * @param {string} code Code of the desired locale\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with locale details.\n */\n getLocale(code, params = {}) {\n if (!code) {\n return Promise.reject(new Error('code is required'));\n }\n const options = { code, params, action: 'getLocale' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrive the locales of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-all-content-types| Languages API} requests. Method returns a Promise object.\n * @param {Object} query Query for the GET call\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A Promise object which will be resolved with details of the locales.\n */\n getLocales(query = {}, params = {}) {\n const optionParams = params;\n optionParams.query = query;\n const options = { params: optionParams, action: 'getLocales' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n}\n\nexport default Stack;\n","export function transform(type) {\n return function () {\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === 'string') {\n let query = this._query[`${type}[BASE]`] || [];\n query = query.concat(arguments[0]);\n this._query[`${type}[BASE]`] = query;\n return this;\n }\n throw Error('Kindly provide valid parameters');\n\n case 2:\n if (typeof arguments[0] === 'string' && (Array.isArray(arguments[1]) || typeof arguments[1] === 'string')) {\n let query = this._query[`${type}[${arguments[0]}]`] || [];\n query = query.concat(arguments[1]);\n this._query[`${type}[${arguments[0]}]`] = query;\n return this;\n }\n throw Error('Kindly provide valid parameters');\n\n default:\n throw Error('Kindly provide valid parameters');\n }\n };\n}\n\n\n// merge two objects\nexport function merge(target, source) {\n const newTraget = target;\n if (target && source) {\n Object.keys(source).forEach((key) => {\n newTraget[key] = source[key];\n });\n }\n return newTraget;\n}\n\n// merge two objects\nexport function mergeDeep(oldTarget, oldSource) {\n const newTarget = oldTarget;\n const self = this;\n const _mergeRecursive = (anotherTarget, source) => {\n const target = anotherTarget;\n Object.keys(source).forEach((key) => {\n if (self._type(source[key]) === 'object' && self._type(target[key]) === self._type(source[key])) {\n _mergeRecursive(target[key], source[key]);\n } else if (self._type(source[key]) === 'array' && self._type(target[key]) === self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n });\n };\n _mergeRecursive(newTarget, oldSource);\n return newTarget;\n}\n\n\nexport function _type(val) {\n let __typeof = typeof val;\n if (__typeof === 'object' && Array.isArray(val)) {\n __typeof = 'array';\n }\n return __typeof;\n}\n\nexport function addParam(key, value) {\n if (key && typeof key === 'string' && value && typeof value === 'string') {\n this._query[key] = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n}\n\nexport function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n }\n throw Error('First argument should be a String.');\n}\n\nexport function language(languageCode) {\n if (languageCode && typeof languageCode === 'string') {\n this._query.locale = languageCode;\n return this;\n }\n throw Error('Argument should be a String.');\n}\n\nexport function environment(environmentCode) {\n if (environmentCode && typeof environmentCode === 'string') {\n this._query.environment = environmentCode;\n return this;\n }\n throw Error('Argument should be a String.');\n}\n\nexport function includeOwner() {\n this._query.include_owner = true;\n return this;\n}\n\nexport function includeContentType() {\n this._query.include_content_type = true;\n return this;\n}\n\nexport function includeSchema() {\n this._query.include_schema = true;\n return this;\n}\n\nexport function includeReference(val) {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i += 1) {\n this._query['include[]'] = this._query['include[]'] || [];\n this._query['include[]'] = this._query['include[]'].concat(val[i]);\n }\n } else if (typeof val === 'string') {\n for (let i = 0; i < arguments.length; i += 1) {\n this._query['include[]'] = this._query['include[]'] || [];\n this._query['include[]'] = this._query['include[]'].concat(arguments[i]);\n }\n } else {\n throw Error('Argument should be a String or an Array.');\n }\n return this;\n}\n\nexport function getReferences() {\n return this.fetch(`get${this.constructor.module()}References`);\n}\n","function onError(error) {\n return Promise.reject(error);\n}\n/**\n * Class used by an extension to store your data in {@link external:localStorage}.\n */\nclass Store {\n /**\n * @hideconstructor\n */\n constructor(connection) {\n this._connection = connection;\n }\n /**\n * Gets the value of key\n * @param {string} key Key of the stored data\n * @example extension.store.get('key').then((value) => console.log(value)) // will log value for the given key\n * @return {external:Promise}\n */\n get(key) {\n if (!key || typeof key !== 'string') { throw new Error('Kindly provide valid parameters'); }\n return this._connection.sendToParent('store', { action: 'get', key })\n .then(event => Promise.resolve(event.data)).catch(onError);\n }\n\n /**\n * Gets an object with all the stored key-value pairs.\n * @example extension.store.getAll().then((obj) => obj)\n * @return {external:Promise}\n */\n getAll() {\n return this._connection.sendToParent('store', { action: 'getAll' })\n .then(({ data = {} }) => Promise.resolve(data)).catch(onError);\n }\n\n /**\n * Sets the value of a key\n * @param {string} key Key of the stored data.\n * @param {*} value Data to be stored.\n * @example extension.store.set('key', 'value').then((success) => console.log(success)) // will log ‘true’ when value is set\n * @return {external:Promise}\n */\n\n set(key, value) {\n if (!key || !value || typeof key !== 'string') {\n throw new Error('Kindly provide valid parameters');\n }\n return this._connection.sendToParent('store', { action: 'set', key, value })\n .then(() => Promise.resolve(true)).catch(onError);\n }\n\n /**\n * Removes the value of a key\n * @param {string} key Key of the data to be removed from the store\n * @example extension.store.remove('key').then((success) => console.log(success)) // will log ‘true’ when value is removed\n * @return {external:Promise}\n */\n\n remove(key) {\n if (!key || typeof key !== 'string') { throw new Error('Kindly provide valid parameters'); }\n return this._connection.sendToParent('store', { action: 'remove', key })\n .then(() => Promise.resolve(true)).catch(onError);\n }\n\n /**\n * Clears all the stored data of an extension\n * @example extension.store.clear().then((success) => console.log(success)) // will log ‘true’ when values are cleared\n * @return {external:Promise}\n */\n\n clear() {\n return this._connection.sendToParent('store', { action: 'clear' })\n .then(() => Promise.resolve(true)).catch(onError);\n }\n}\n\nexport default Store;\n","const config = { attributes: true, childList: true, subtree: true };\nlet observer;\n/**\n * Class representing an iframe window from Contentstack UI. Not available for Custom Widgets.\n */\n\nclass Window {\n /**\n * @hideconstructor\n */\n constructor(connection, type, emitter, state = 'half_width') {\n this._connection = connection;\n this._autoResizingEnabled = false;\n this._resizingEnabled = false;\n this.type = type;\n this.state = state;\n this._emitter = emitter;\n }\n\n /**\n * This method activates the resize button that gives you the provision to resize the window size of your Dashboard Widget.\n * @return {external:Promise} A promise object which will resolve when a resize button is visible on the Dashboard Widget.\n */\n enableResizing() {\n if (this.type !== 'DASHBOARD') { return Promise.resolve(); }\n this._resizingEnabled = true;\n return this._connection.sendToParent('window', { action: 'enableResizing' });\n }\n\n\n /**\n * This function executes the callback function whenever a Dashboard Widget extension is maximized or minimized. Only applicable on Dashboard Widget extensions.\n * @param {function} callback Function to be called when a Dashboard Widget extension is maximized or minimized\n * @return {boolean} Will return true\n */\n\n onDashboardResize(callback) {\n const windowObj = this;\n if (this.type !== 'DASHBOARD') {\n return false;\n }\n if (callback && typeof (callback) === 'function') {\n windowObj._emitter.on('dashboardResize', (event) => {\n windowObj.state = event.state;\n callback(event.state);\n });\n } else {\n throw Error('Callback must be a function');\n }\n return true;\n }\n\n\n /**\n * This method updates the extension height on Contentstack UI.\n * If the ‘height’ argument is not passed, it will calculate the scroll height and set the height of extension window accordingly.\n * @param {string|number} height Desired height of the iframe window\n * @return {external:Promise} A promise object which will be resolved when Contentstack UI sends an acknowledgement stating that the height has been updated.\n */\n updateHeight(height) {\n if (this.type === 'DASHBOARD' && this.state === 'half_width') { return Promise.resolve(); }\n if (!height || isNaN(height)) {\n this._height = Math.ceil(document.documentElement.getBoundingClientRect().height);\n } else if (this._height === height) {\n return Promise.resolve();\n } else {\n this._height = height;\n }\n return this._connection.sendToParent('resize', this._height);\n }\n\n /**\n * This method enables auto resizing of the extension height.\n * @return {Window}.\n */\n enableAutoResizing() {\n if (this._autoResizingEnabled || (this.state === 'half_width' && this.type === 'DASHBOARD')) {\n return this;\n }\n this._autoResizingEnabled = true;\n observer = new MutationObserver(this.updateHeight.bind(this));\n observer.observe(window.document.body, config);\n return this;\n }\n\n /**\n * This method disables auto resizing of the extension height.\n * @return {Window}.\n */\n disableAutoResizing() {\n if (!this._autoResizingEnabled) {\n return this;\n }\n this._autoResizingEnabled = false;\n observer.disconnect();\n return this;\n }\n}\n\nexport default Window;\n","module.exports = require('./lib/index.js').default;\n","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"postRobot\", [], factory) : \"object\" == typeof exports ? exports.postRobot = factory() : root.postRobot = factory();\n}(\"undefined\" != typeof self ? self : this, function() {\n return function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n configurable: !1,\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n }({\n \"./node_modules/cross-domain-utils/src/index.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(\"./node_modules/cross-domain-utils/src/utils.js\");\n __webpack_require__.d(__webpack_exports__, \"getActualDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.a;\n });\n __webpack_require__.d(__webpack_exports__, \"getAncestor\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.b;\n });\n __webpack_require__.d(__webpack_exports__, \"getDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.c;\n });\n __webpack_require__.d(__webpack_exports__, \"getUserAgent\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.d;\n });\n __webpack_require__.d(__webpack_exports__, \"isActuallySameDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.e;\n });\n __webpack_require__.d(__webpack_exports__, \"isAncestor\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.f;\n });\n __webpack_require__.d(__webpack_exports__, \"isIframe\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.g;\n });\n __webpack_require__.d(__webpack_exports__, \"isPopup\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.h;\n });\n __webpack_require__.d(__webpack_exports__, \"isWindow\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.i;\n });\n __webpack_require__.d(__webpack_exports__, \"isWindowClosed\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.j;\n });\n __webpack_require__.d(__webpack_exports__, \"matchDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.k;\n });\n __webpack_require__.d(__webpack_exports__, \"stringifyDomainPattern\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.l;\n });\n var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__(\"./node_modules/cross-domain-utils/src/types.js\");\n __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__types__);\n },\n \"./node_modules/cross-domain-utils/src/types.js\": function(module, exports) {},\n \"./node_modules/cross-domain-utils/src/utils.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n function isRegex(item) {\n return \"[object RegExp]\" === Object.prototype.toString.call(item);\n }\n __webpack_exports__.a = getActualDomain;\n __webpack_exports__.c = getDomain;\n __webpack_exports__.e = isActuallySameDomain;\n __webpack_exports__.j = function(win) {\n var allowMock = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n try {\n if (win === window) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (!win) return !0;\n } catch (err) {\n return !0;\n }\n try {\n if (win.closed) return !0;\n } catch (err) {\n return !err || err.message !== IE_WIN_ACCESS_ERROR;\n }\n if (allowMock && function(win) {\n if (!isActuallySameDomain(win)) return !1;\n try {\n if (win === window) return !0;\n if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;\n if (getDomain(window) === getDomain(win)) return !0;\n } catch (err) {}\n return !1;\n }(win)) try {\n if (win.mockclosed) return !0;\n } catch (err) {}\n try {\n if (!win.parent || !win.top) return !0;\n } catch (err) {}\n var iframeIndex = function(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }(iframeWindows, win);\n if (-1 !== iframeIndex) {\n var frame = iframeFrames[iframeIndex];\n if (frame && function(frame) {\n if (!frame.contentWindow) return !0;\n if (!frame.parentNode) return !0;\n var doc = frame.ownerDocument;\n return !(!doc || !doc.body || doc.body.contains(frame));\n }(frame)) return !0;\n }\n return !1;\n };\n __webpack_exports__.d = function(win) {\n return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;\n };\n __webpack_exports__.b = getAncestor;\n __webpack_exports__.f = function(parent, child) {\n var actualParent = getAncestor(child);\n if (actualParent) return actualParent === parent;\n if (child === parent) return !1;\n if (function(win) {\n if (win) {\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (getParent(win) === win) return win;\n try {\n if (isAncestorParent(window, win) && window.top) return window.top;\n } catch (err) {}\n try {\n if (isAncestorParent(win, window) && window.top) return window.top;\n } catch (err) {}\n for (var _i7 = 0, _getAllChildFrames4 = function getAllChildFrames(win) {\n for (var result = [], _i3 = 0, _getFrames2 = getFrames(win), _length2 = null == _getFrames2 ? 0 : _getFrames2.length; _i3 < _length2; _i3++) {\n var frame = _getFrames2[_i3];\n result.push(frame);\n for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame), _length4 = null == _getAllChildFrames2 ? 0 : _getAllChildFrames2.length; _i5 < _length4; _i5++) {\n var childFrame = _getAllChildFrames2[_i5];\n result.push(childFrame);\n }\n }\n return result;\n }(win), _length6 = null == _getAllChildFrames4 ? 0 : _getAllChildFrames4.length; _i7 < _length6; _i7++) {\n var frame = _getAllChildFrames4[_i7];\n try {\n if (frame.top) return frame.top;\n } catch (err) {}\n if (getParent(frame) === frame) return frame;\n }\n }\n }(child) === child) return !1;\n for (var _i16 = 0, _getFrames8 = getFrames(parent), _length14 = null == _getFrames8 ? 0 : _getFrames8.length; _i16 < _length14; _i16++) if (_getFrames8[_i16] === child) return !0;\n return !1;\n };\n __webpack_exports__.h = function() {\n return Boolean(getOpener(window));\n };\n __webpack_exports__.g = function() {\n return Boolean(getParent(window));\n };\n __webpack_exports__.k = function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return pattern === CONSTANTS.WILDCARD || origin === pattern;\n if (isRegex(origin)) return !1;\n if (Array.isArray(origin)) return !1;\n }\n return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some(function(subpattern) {\n return matchDomain(subpattern, origin);\n }));\n };\n __webpack_exports__.l = function(pattern) {\n return Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() : pattern.toString();\n };\n __webpack_exports__.i = function(obj) {\n try {\n if (obj === window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (\"[object Window]\" === Object.prototype.toString.call(obj)) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (window.Window && obj instanceof window.Window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.self === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.parent === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.top === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n obj && obj.__cross_domain_utils_window_check__;\n } catch (err) {\n return !0;\n }\n return !1;\n };\n var CONSTANTS = {\n MOCK_PROTOCOL: \"mock:\",\n FILE_PROTOCOL: \"file:\",\n ABOUT_PROTOCOL: \"about:\",\n WILDCARD: \"*\"\n }, IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function isAboutProtocol() {\n return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window).location.protocol === CONSTANTS.ABOUT_PROTOCOL;\n }\n function getParent(win) {\n if (win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n if (win && !getParent(win)) try {\n return win.opener;\n } catch (err) {}\n }\n function canReadFromWindow(win) {\n try {\n win && win.location && win.location.href;\n return !0;\n } catch (err) {}\n return !1;\n }\n function getActualDomain(win) {\n var location = (win = win || window).location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = location.protocol;\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (protocol === CONSTANTS.FILE_PROTOCOL) return CONSTANTS.FILE_PROTOCOL + \"//\";\n if (protocol === CONSTANTS.ABOUT_PROTOCOL) {\n var parent = getParent(win);\n return parent && canReadFromWindow(parent) ? getActualDomain(parent) : CONSTANTS.ABOUT_PROTOCOL + \"//\";\n }\n var host = location.host;\n if (!host) throw new Error(\"Can not read window host\");\n return protocol + \"//\" + host;\n }\n function getDomain(win) {\n var domain = getActualDomain(win = win || window);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(CONSTANTS.MOCK_PROTOCOL) ? win.mockDomain : domain;\n }\n function isActuallySameDomain(win) {\n try {\n if (win === window) return !0;\n } catch (err) {}\n try {\n var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n if (desc && !1 === desc.enumerable) return !1;\n } catch (err) {}\n try {\n if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;\n } catch (err) {}\n try {\n if (getActualDomain(win) === getActualDomain(window)) return !0;\n } catch (err) {}\n return !1;\n }\n function isAncestorParent(parent, child) {\n if (!parent || !child) return !1;\n var childParent = getParent(child);\n return childParent ? childParent === parent : -1 !== function(win) {\n var result = [];\n try {\n for (;win.parent !== win; ) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var result = [], frames = void 0;\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n var len = void 0;\n try {\n len = frames.length;\n } catch (err) {}\n if (0 === len) return result;\n if (len) {\n for (var i = 0; i < len; i++) {\n var frame = void 0;\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n result.push(frame);\n }\n return result;\n }\n for (var _i = 0; _i < 100; _i++) {\n var _frame = void 0;\n try {\n _frame = frames[_i];\n } catch (err) {\n return result;\n }\n if (!_frame) return result;\n result.push(_frame);\n }\n return result;\n }\n var iframeWindows = [], iframeFrames = [];\n function getAncestor(win) {\n return getOpener(win = win || window) || getParent(win) || void 0;\n }\n },\n \"./src/index.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n Object.defineProperty(__webpack_exports__, \"__esModule\", {\n value: !0\n });\n __webpack_require__.d({}, \"WeakMap\", function() {\n return weakmap_CrossDomainSafeWeakMap;\n });\n var src_interface_namespaceObject = {};\n __webpack_require__.d(src_interface_namespaceObject, \"cleanUpWindow\", function() {\n return cleanUpWindow;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"Promise\", function() {\n return promise_ZalgoPromise;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"bridge\", function() {\n return bridge;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"init\", function() {\n return init;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"parent\", function() {\n return public_parent;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"send\", function() {\n return _send;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"request\", function() {\n return request;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"sendToParent\", function() {\n return sendToParent;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"client\", function() {\n return client;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"on\", function() {\n return _on;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"listen\", function() {\n return listen;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"once\", function() {\n return server_once;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"listener\", function() {\n return server_listener;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"CONFIG\", function() {\n return CONFIG;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"CONSTANTS\", function() {\n return constants_CONSTANTS;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"disable\", function() {\n return disable;\n });\n var src = __webpack_require__(\"./node_modules/cross-domain-utils/src/index.js\");\n function safeIndexOf(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }\n var _ALLOWED_POST_MESSAGE, defineProperty = Object.defineProperty, counter = Date.now() % 1e9, weakmap_CrossDomainSafeWeakMap = function() {\n function CrossDomainSafeWeakMap() {\n !function(instance, Constructor) {\n if (!(instance instanceof CrossDomainSafeWeakMap)) throw new TypeError(\"Cannot call a class as a function\");\n }(this);\n counter += 1;\n this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\" + counter;\n if (function() {\n if (!window.WeakMap) return !1;\n if (!window.Object.freeze) return !1;\n try {\n var testWeakMap = new window.WeakMap(), testKey = {};\n window.Object.freeze(testKey);\n testWeakMap.set(testKey, \"__testvalue__\");\n return \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new window.WeakMap();\n } catch (err) {}\n this.keys = [];\n this.values = [];\n }\n CrossDomainSafeWeakMap.prototype._cleanupClosedWindows = function() {\n for (var weakmap = this.weakmap, keys = this.keys, i = 0; i < keys.length; i++) {\n var value = keys[i];\n if (Object(src.isWindow)(value) && Object(src.isWindowClosed)(value)) {\n if (weakmap) try {\n weakmap.delete(value);\n } catch (err) {}\n keys.splice(i, 1);\n this.values.splice(i, 1);\n i -= 1;\n }\n }\n };\n CrossDomainSafeWeakMap.prototype.isSafeToReadWrite = function(key) {\n if (Object(src.isWindow)(key)) return !1;\n try {\n key && key.self;\n key && key[this.name];\n } catch (err) {\n return !1;\n }\n return !0;\n };\n CrossDomainSafeWeakMap.prototype.set = function(key, value) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var name = this.name, entry = key[name];\n entry && entry[0] === key ? entry[1] = value : defineProperty(key, name, {\n value: [ key, value ],\n writable: !0\n });\n } else {\n this._cleanupClosedWindows();\n var keys = this.keys, values = this.values, index = safeIndexOf(keys, key);\n if (-1 === index) {\n keys.push(key);\n values.push(value);\n } else values[index] = value;\n }\n };\n CrossDomainSafeWeakMap.prototype.get = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return weakmap.get(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (!this.isSafeToReadWrite(key)) {\n this._cleanupClosedWindows();\n var index = safeIndexOf(this.keys, key);\n if (-1 === index) return;\n return this.values[index];\n }\n var entry = key[this.name];\n if (entry && entry[0] === key) return entry[1];\n };\n CrossDomainSafeWeakMap.prototype.delete = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var entry = key[this.name];\n entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n } else {\n this._cleanupClosedWindows();\n var keys = this.keys, index = safeIndexOf(keys, key);\n if (-1 !== index) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n }\n };\n CrossDomainSafeWeakMap.prototype.has = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n return weakmap.has(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var entry = key[this.name];\n return !(!entry || entry[0] !== key);\n }\n this._cleanupClosedWindows();\n return -1 !== safeIndexOf(this.keys, key);\n };\n return CrossDomainSafeWeakMap;\n }(), constants_CONSTANTS = {\n POST_MESSAGE_TYPE: {\n REQUEST: \"postrobot_message_request\",\n RESPONSE: \"postrobot_message_response\",\n ACK: \"postrobot_message_ack\"\n },\n POST_MESSAGE_ACK: {\n SUCCESS: \"success\",\n ERROR: \"error\"\n },\n POST_MESSAGE_NAMES: {\n METHOD: \"postrobot_method\",\n HELLO: \"postrobot_ready\",\n OPEN_TUNNEL: \"postrobot_open_tunnel\"\n },\n WINDOW_TYPES: {\n FULLPAGE: \"fullpage\",\n POPUP: \"popup\",\n IFRAME: \"iframe\"\n },\n WINDOW_PROPS: {\n POSTROBOT: \"__postRobot__\"\n },\n SERIALIZATION_TYPES: {\n METHOD: \"postrobot_method\",\n ERROR: \"postrobot_error\",\n PROMISE: \"postrobot_promise\",\n ZALGO_PROMISE: \"postrobot_zalgo_promise\",\n REGEX: \"regex\"\n },\n SEND_STRATEGIES: {\n POST_MESSAGE: \"postrobot_post_message\",\n BRIDGE: \"postrobot_bridge\",\n GLOBAL: \"postrobot_global\"\n },\n MOCK_PROTOCOL: \"mock:\",\n FILE_PROTOCOL: \"file:\",\n BRIDGE_NAME_PREFIX: \"__postrobot_bridge__\",\n POSTROBOT_PROXY: \"__postrobot_proxy__\",\n WILDCARD: \"*\"\n }, POST_MESSAGE_NAMES = {\n METHOD: \"postrobot_method\",\n HELLO: \"postrobot_hello\",\n OPEN_TUNNEL: \"postrobot_open_tunnel\"\n }, CONFIG = (Object.keys(POST_MESSAGE_NAMES).map(function(key) {\n return POST_MESSAGE_NAMES[key];\n }), {\n ALLOW_POSTMESSAGE_POPUP: !(\"__ALLOW_POSTMESSAGE_POPUP__\" in window) || window.__ALLOW_POSTMESSAGE_POPUP__,\n BRIDGE_TIMEOUT: 5e3,\n CHILD_WINDOW_TIMEOUT: 5e3,\n ACK_TIMEOUT: -1 !== window.navigator.userAgent.match(/MSIE/i) ? 2e3 : 1e3,\n RES_TIMEOUT: -1,\n ALLOWED_POST_MESSAGE_METHODS: (_ALLOWED_POST_MESSAGE = {}, _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = !0, \n _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.BRIDGE] = !0, _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.GLOBAL] = !0, \n _ALLOWED_POST_MESSAGE),\n ALLOW_SAME_ORIGIN: !1\n });\n 0 === window.location.href.indexOf(constants_CONSTANTS.FILE_PROTOCOL) && (CONFIG.ALLOW_POSTMESSAGE_POPUP = !0);\n var _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function stringifyError(err) {\n var level = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;\n if (level >= 3) return \"stringifyError stack overflow\";\n try {\n if (!err) return \"\";\n if (\"string\" == typeof err) return err;\n if (err instanceof Error) {\n var stack = err && err.stack, message = err && err.message;\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n if (stack) return stack;\n if (message) return message;\n }\n return \"function\" == typeof err.toString ? err.toString() : Object.prototype.toString.call(err);\n } catch (newErr) {\n return \"Error while stringifying error: \" + stringifyError(newErr, level + 1);\n }\n }\n var once = function(method) {\n if (!method) return method;\n var called = !1;\n return function() {\n if (!called) {\n called = !0;\n return method.apply(this, arguments);\n }\n };\n };\n function util_noop() {}\n function uniqueID() {\n var chars = \"0123456789abcdef\";\n return \"xxxxxxxxxx\".replace(/./g, function() {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n });\n }\n function replaceObject(item, callback) {\n var depth = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\n if (depth >= 100) throw new Error(\"Self-referential object passed, or object contained too many layers\");\n var newobj = void 0;\n if (\"object\" !== (void 0 === item ? \"undefined\" : _typeof(item)) || null === item || Array.isArray(item)) {\n if (!Array.isArray(item)) throw new TypeError(\"Invalid type: \" + (void 0 === item ? \"undefined\" : _typeof(item)));\n newobj = [];\n } else newobj = {};\n !function(item, callback) {\n Array.isArray(item) ? function(item, callback) {\n for (var i = 0; i < item.length; i++) callback(item[i], i);\n }(item, callback) : \"object\" === (void 0 === item ? \"undefined\" : _typeof(item)) && null !== item && function(item, callback) {\n for (var _key in item) item.hasOwnProperty(_key) && callback(item[_key], _key);\n }(item, callback);\n }(item, function(childItem, key) {\n var result = callback(childItem, key);\n void 0 !== result ? newobj[key] = result : \"object\" === (void 0 === childItem ? \"undefined\" : _typeof(childItem)) && null !== childItem ? newobj[key] = replaceObject(childItem, callback, depth + 1) : newobj[key] = childItem;\n });\n return newobj;\n }\n function isRegex(item) {\n return \"[object RegExp]\" === Object.prototype.toString.call(item);\n }\n function utils_isPromise(item) {\n try {\n if (!item) return !1;\n if (\"undefined\" != typeof Promise && item instanceof Promise) return !0;\n if (\"undefined\" != typeof window && window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && window.constructor && item instanceof window.constructor) return !1;\n var _toString = {}.toString;\n if (_toString) {\n var name = _toString.call(item);\n if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n }\n if (\"function\" == typeof item.then) return !0;\n } catch (err) {\n return !1;\n }\n return !1;\n }\n function getGlobal() {\n var glob = void 0;\n if (\"undefined\" != typeof window) glob = window; else {\n if (\"undefined\" == typeof window) throw new TypeError(\"Can not find global\");\n glob = window;\n }\n var zalgoGlobal = glob.__zalgopromise__ = glob.__zalgopromise__ || {};\n zalgoGlobal.flushPromises = zalgoGlobal.flushPromises || [];\n zalgoGlobal.activeCount = zalgoGlobal.activeCount || 0;\n zalgoGlobal.possiblyUnhandledPromiseHandlers = zalgoGlobal.possiblyUnhandledPromiseHandlers || [];\n zalgoGlobal.dispatchedErrors = zalgoGlobal.dispatchedErrors || [];\n return zalgoGlobal;\n }\n var promise_ZalgoPromise = function() {\n function ZalgoPromise(handler) {\n var _this = this;\n !function(instance, Constructor) {\n if (!(instance instanceof ZalgoPromise)) throw new TypeError(\"Cannot call a class as a function\");\n }(this);\n this.resolved = !1;\n this.rejected = !1;\n this.errorHandled = !1;\n this.handlers = [];\n if (handler) {\n var _result = void 0, _error = void 0, resolved = !1, rejected = !1, isAsync = !1;\n try {\n handler(function(res) {\n if (isAsync) _this.resolve(res); else {\n resolved = !0;\n _result = res;\n }\n }, function(err) {\n if (isAsync) _this.reject(err); else {\n rejected = !0;\n _error = err;\n }\n });\n } catch (err) {\n this.reject(err);\n return;\n }\n isAsync = !0;\n resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n ZalgoPromise.prototype.resolve = function(result) {\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(result)) throw new Error(\"Can not resolve promise with another promise\");\n this.resolved = !0;\n this.value = result;\n this.dispatch();\n return this;\n };\n ZalgoPromise.prototype.reject = function(error) {\n var _this2 = this;\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(error)) throw new Error(\"Can not reject promise with another promise\");\n if (!error) {\n var _err = error && \"function\" == typeof error.toString ? error.toString() : Object.prototype.toString.call(error);\n error = new Error(\"Expected reject to be called with Error, got \" + _err);\n }\n this.rejected = !0;\n this.error = error;\n this.errorHandled || setTimeout(function() {\n _this2.errorHandled || function(err, promise) {\n if (-1 === getGlobal().dispatchedErrors.indexOf(err)) {\n getGlobal().dispatchedErrors.push(err);\n setTimeout(function() {\n throw err;\n }, 1);\n for (var j = 0; j < getGlobal().possiblyUnhandledPromiseHandlers.length; j++) getGlobal().possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n }(error, _this2);\n }, 1);\n this.dispatch();\n return this;\n };\n ZalgoPromise.prototype.asyncReject = function(error) {\n this.errorHandled = !0;\n this.reject(error);\n };\n ZalgoPromise.prototype.dispatch = function() {\n var _this3 = this, dispatching = this.dispatching, resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n if (!dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n getGlobal().activeCount += 1;\n for (var _loop = function(i) {\n var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise, result = void 0;\n if (resolved) try {\n result = onSuccess ? onSuccess(_this3.value) : _this3.value;\n } catch (err) {\n promise.reject(err);\n return \"continue\";\n } else if (rejected) {\n if (!onError) {\n promise.reject(_this3.error);\n return \"continue\";\n }\n try {\n result = onError(_this3.error);\n } catch (err) {\n promise.reject(err);\n return \"continue\";\n }\n }\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n result.resolved ? promise.resolve(result.value) : promise.reject(result.error);\n result.errorHandled = !0;\n } else utils_isPromise(result) ? result instanceof ZalgoPromise && (result.resolved || result.rejected) ? result.resolved ? promise.resolve(result.value) : promise.reject(result.error) : result.then(function(res) {\n promise.resolve(res);\n }, function(err) {\n promise.reject(err);\n }) : promise.resolve(result);\n }, i = 0; i < handlers.length; i++) _loop(i);\n handlers.length = 0;\n this.dispatching = !1;\n getGlobal().activeCount -= 1;\n 0 === getGlobal().activeCount && ZalgoPromise.flushQueue();\n }\n };\n ZalgoPromise.prototype.then = function(onSuccess, onError) {\n if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n var promise = new ZalgoPromise();\n this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n });\n this.errorHandled = !0;\n this.dispatch();\n return promise;\n };\n ZalgoPromise.prototype.catch = function(onError) {\n return this.then(void 0, onError);\n };\n ZalgoPromise.prototype.finally = function(onFinally) {\n if (onFinally && \"function\" != typeof onFinally && !onFinally.call) throw new Error(\"Promise.finally expected a function\");\n return this.then(function(result) {\n return ZalgoPromise.try(onFinally).then(function() {\n return result;\n });\n }, function(err) {\n return ZalgoPromise.try(onFinally).then(function() {\n throw err;\n });\n });\n };\n ZalgoPromise.prototype.timeout = function(time, err) {\n var _this4 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout(function() {\n _this4.resolved || _this4.rejected || _this4.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }, time);\n return this.then(function(result) {\n clearTimeout(timeout);\n return result;\n });\n };\n ZalgoPromise.prototype.toPromise = function() {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\n };\n ZalgoPromise.resolve = function(value) {\n return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise(function(resolve, reject) {\n return value.then(resolve, reject);\n }) : new ZalgoPromise().resolve(value);\n };\n ZalgoPromise.reject = function(error) {\n return new ZalgoPromise().reject(error);\n };\n ZalgoPromise.all = function(promises) {\n var promise = new ZalgoPromise(), count = promises.length, results = [];\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n for (var _loop2 = function(i) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n return \"continue\";\n }\n } else if (!utils_isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n return \"continue\";\n }\n ZalgoPromise.resolve(prom).then(function(result) {\n results[i] = result;\n 0 == (count -= 1) && promise.resolve(results);\n }, function(err) {\n promise.reject(err);\n });\n }, i = 0; i < promises.length; i++) _loop2(i);\n 0 === count && promise.resolve(results);\n return promise;\n };\n ZalgoPromise.hash = function(promises) {\n var result = {};\n return ZalgoPromise.all(Object.keys(promises).map(function(key) {\n return ZalgoPromise.resolve(promises[key]).then(function(value) {\n result[key] = value;\n });\n })).then(function() {\n return result;\n });\n };\n ZalgoPromise.map = function(items, method) {\n return ZalgoPromise.all(items.map(method));\n };\n ZalgoPromise.onPossiblyUnhandledException = function(handler) {\n return function(handler) {\n getGlobal().possiblyUnhandledPromiseHandlers.push(handler);\n return {\n cancel: function() {\n getGlobal().possiblyUnhandledPromiseHandlers.splice(getGlobal().possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\n };\n ZalgoPromise.try = function(method, context, args) {\n if (method && \"function\" != typeof method && !method.call) throw new Error(\"Promise.try expected a function\");\n var result = void 0;\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n return ZalgoPromise.reject(err);\n }\n return ZalgoPromise.resolve(result);\n };\n ZalgoPromise.delay = function(_delay) {\n return new ZalgoPromise(function(resolve) {\n setTimeout(resolve, _delay);\n });\n };\n ZalgoPromise.isPromise = function(value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n };\n ZalgoPromise.flush = function() {\n var promise = new ZalgoPromise();\n getGlobal().flushPromises.push(promise);\n 0 === getGlobal().activeCount && ZalgoPromise.flushQueue();\n return promise;\n };\n ZalgoPromise.flushQueue = function() {\n var promisesToFlush = getGlobal().flushPromises;\n getGlobal().flushPromises = [];\n for (var _i2 = 0, _length2 = null == promisesToFlush ? 0 : promisesToFlush.length; _i2 < _length2; _i2++) promisesToFlush[_i2].resolve();\n };\n return ZalgoPromise;\n }(), global = window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] = window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] || {};\n global.registerSelf = function() {};\n var serialize__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n global.methods = global.methods || new weakmap_CrossDomainSafeWeakMap();\n var listenForMethods = once(function() {\n global.on(constants_CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n origin: constants_CONSTANTS.WILDCARD\n }, function(_ref) {\n var source = _ref.source, origin = _ref.origin, data = _ref.data, methods = global.methods.get(source);\n if (!methods) throw new Error(\"Could not find any methods this window has privileges to call\");\n var meth = methods[data.id];\n if (!meth) throw new Error(\"Could not find method with id: \" + data.id);\n if (!Object(src.matchDomain)(meth.domain, origin)) throw new Error(\"Method domain \" + meth.domain + \" does not match origin \" + origin);\n return promise_ZalgoPromise.try(function() {\n return meth.method.apply({\n source: source,\n origin: origin,\n data: data\n }, data.args);\n }).then(function(result) {\n return {\n result: result,\n id: data.id,\n name: data.name\n };\n });\n });\n });\n function isSerialized(item, type) {\n return \"object\" === (void 0 === item ? \"undefined\" : serialize__typeof(item)) && null !== item && item.__type__ === type;\n }\n function serializeMethod(destination, domain, method, name) {\n var id = uniqueID(), methods = global.methods.get(destination);\n if (!methods) {\n methods = {};\n global.methods.set(destination, methods);\n }\n methods[id] = {\n domain: domain,\n method: method\n };\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.METHOD,\n __id__: id,\n __name__: name\n };\n }\n function deserializeMethod(source, origin, obj) {\n function wrapper() {\n var args = Array.prototype.slice.call(arguments);\n return global.send(source, constants_CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n id: obj.__id__,\n name: obj.__name__,\n args: args\n }, {\n domain: origin,\n timeout: -1\n }).then(function(_ref2) {\n return _ref2.data.result;\n }, function(err) {\n throw err;\n });\n }\n wrapper.__name__ = obj.__name__;\n wrapper.__xdomain__ = !0;\n wrapper.source = source;\n wrapper.origin = origin;\n return wrapper;\n }\n function deserializeZalgoPromise(source, origin, prom) {\n return new promise_ZalgoPromise(function(resolve, reject) {\n return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n });\n }\n global.readyPromises = global.readyPromises || new weakmap_CrossDomainSafeWeakMap();\n function sayHello(win) {\n return global.send(win, constants_CONSTANTS.POST_MESSAGE_NAMES.HELLO, {}, {\n domain: constants_CONSTANTS.WILDCARD,\n timeout: -1\n }).then(function(_ref2) {\n return {\n origin: _ref2.origin\n };\n });\n }\n var SEND_MESSAGE_STRATEGIES = {};\n SEND_MESSAGE_STRATEGIES[constants_CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = function(win, serializedMessage, domain) {\n (Array.isArray(domain) ? domain : \"string\" == typeof domain ? [ domain ] : [ constants_CONSTANTS.WILDCARD ]).map(function(dom) {\n if (0 === dom.indexOf(constants_CONSTANTS.MOCK_PROTOCOL)) {\n if (window.location.protocol === constants_CONSTANTS.FILE_PROTOCOL) return constants_CONSTANTS.WILDCARD;\n if (!Object(src.isActuallySameDomain)(win)) throw new Error(\"Attempting to send messsage to mock domain \" + dom + \", but window is actually cross-domain\");\n return Object(src.getActualDomain)(win);\n }\n return 0 === dom.indexOf(constants_CONSTANTS.FILE_PROTOCOL) ? constants_CONSTANTS.WILDCARD : dom;\n }).forEach(function(dom) {\n return win.postMessage(serializedMessage, dom);\n });\n };\n var _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n };\n function sendMessage(win, message, domain) {\n return promise_ZalgoPromise.try(function() {\n var _jsonStringify;\n message = function(win, message) {\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, id = uniqueID(), type = Object(src.isPopup)() ? constants_CONSTANTS.WINDOW_TYPES.POPUP : Object(src.isIframe)() ? constants_CONSTANTS.WINDOW_TYPES.IFRAME : constants_CONSTANTS.WINDOW_TYPES.FULLPAGE, sourceDomain = Object(src.getDomain)(window);\n return _extends({}, message, options, {\n sourceDomain: sourceDomain,\n id: message.id || id,\n windowType: type\n });\n }(win, message, {\n data: function(destination, domain, obj) {\n return replaceObject({\n obj: message.data\n }, function(item, key) {\n return \"function\" == typeof item ? serializeMethod(destination, domain, item, key.toString()) : item instanceof Error ? (err = item, \n {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.ERROR,\n __message__: stringifyError(err),\n __code__: err.code\n }) : window.Promise && item instanceof window.Promise ? function(destination, domain, promise, name) {\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.PROMISE,\n __then__: serializeMethod(destination, domain, function(resolve, reject) {\n return promise.then(resolve, reject);\n }, name + \".then\")\n };\n }(destination, domain, item, key.toString()) : promise_ZalgoPromise.isPromise(item) ? function(destination, domain, promise, name) {\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE,\n __then__: serializeMethod(destination, domain, function(resolve, reject) {\n return promise.then(resolve, reject);\n }, name + \".then\")\n };\n }(destination, domain, item, key.toString()) : isRegex(item) ? (regex = item, {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.REGEX,\n __source__: regex.source\n }) : void 0;\n var err, regex;\n }).obj;\n }(win, domain),\n domain: domain\n });\n if (win === window && !CONFIG.ALLOW_SAME_ORIGIN) throw new Error(\"Attemping to send message to self\");\n if (Object(src.isWindowClosed)(win)) throw new Error(\"Window is closed\");\n var messages = [], serializedMessage = function(obj, replacer, indent) {\n var objectToJSON = void 0, arrayToJSON = void 0;\n try {\n if (\"{}\" !== JSON.stringify({})) {\n objectToJSON = Object.prototype.toJSON;\n delete Object.prototype.toJSON;\n }\n if (\"{}\" !== JSON.stringify({})) throw new Error(\"Can not correctly serialize JSON objects\");\n if (\"[]\" !== JSON.stringify([])) {\n arrayToJSON = Array.prototype.toJSON;\n delete Array.prototype.toJSON;\n }\n if (\"[]\" !== JSON.stringify([])) throw new Error(\"Can not correctly serialize JSON objects\");\n } catch (err) {\n throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n }\n var result = JSON.stringify.call(this, obj, null, 2);\n try {\n objectToJSON && (Object.prototype.toJSON = objectToJSON);\n arrayToJSON && (Array.prototype.toJSON = arrayToJSON);\n } catch (err) {\n throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n }\n return result;\n }(((_jsonStringify = {})[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] = message, \n _jsonStringify));\n return promise_ZalgoPromise.map(Object.keys(SEND_MESSAGE_STRATEGIES), function(strategyName) {\n return promise_ZalgoPromise.try(function() {\n if (!CONFIG.ALLOWED_POST_MESSAGE_METHODS[strategyName]) throw new Error(\"Strategy disallowed: \" + strategyName);\n return SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n }).then(function() {\n messages.push(strategyName + \": success\");\n return !0;\n }, function(err) {\n messages.push(strategyName + \": \" + stringifyError(err) + \"\\n\");\n return !1;\n });\n }).then(function(results) {\n var success = results.some(Boolean), status = message.type + \" \" + message.name + \" \" + (success ? \"success\" : \"error\") + \":\\n - \" + messages.join(\"\\n - \") + \"\\n\";\n if (!success) throw new Error(status);\n });\n });\n }\n global.responseListeners = global.responseListeners || {};\n global.requestListeners = global.requestListeners || {};\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new function() {}();\n global.erroredResponseListeners = global.erroredResponseListeners || {};\n var _RECEIVE_MESSAGE_TYPE, __DOMAIN_REGEX__ = \"__domain_regex__\";\n function getResponseListener(hash) {\n return global.responseListeners[hash];\n }\n function deleteResponseListener(hash) {\n delete global.responseListeners[hash];\n }\n function isResponseListenerErrored(hash) {\n return Boolean(global.erroredResponseListeners[hash]);\n }\n function getRequestListener(_ref) {\n var name = _ref.name, win = _ref.win, domain = _ref.domain;\n win === constants_CONSTANTS.WILDCARD && (win = null);\n domain === constants_CONSTANTS.WILDCARD && (domain = null);\n if (!name) throw new Error(\"Name required to get request listener\");\n var nameListeners = global.requestListeners[name];\n if (nameListeners) for (var _i2 = 0, _ref3 = [ win, global.WINDOW_WILDCARD ], _length2 = null == _ref3 ? 0 : _ref3.length; _i2 < _length2; _i2++) {\n var winQualifier = _ref3[_i2], winListeners = winQualifier && nameListeners.get(winQualifier);\n if (winListeners) {\n if (domain && \"string\" == typeof domain) {\n if (winListeners[domain]) return winListeners[domain];\n if (winListeners[__DOMAIN_REGEX__]) for (var _i4 = 0, _winListeners$__DOMAI2 = winListeners[__DOMAIN_REGEX__], _length4 = null == _winListeners$__DOMAI2 ? 0 : _winListeners$__DOMAI2.length; _i4 < _length4; _i4++) {\n var _ref5 = _winListeners$__DOMAI2[_i4], regex = _ref5.regex, listener = _ref5.listener;\n if (Object(src.matchDomain)(regex, domain)) return listener;\n }\n }\n if (winListeners[constants_CONSTANTS.WILDCARD]) return winListeners[constants_CONSTANTS.WILDCARD];\n }\n }\n }\n var types__extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }, RECEIVE_MESSAGE_TYPES = ((_RECEIVE_MESSAGE_TYPE = {})[constants_CONSTANTS.POST_MESSAGE_TYPE.ACK] = function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message ack for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Ack origin \" + origin + \" does not match domain \" + options.domain.toString());\n options.ack = !0;\n }\n }, _RECEIVE_MESSAGE_TYPE[constants_CONSTANTS.POST_MESSAGE_TYPE.REQUEST] = function(source, origin, message) {\n var options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n function respond(data) {\n return message.fireAndForget || Object(src.isWindowClosed)(source) ? promise_ZalgoPromise.resolve() : sendMessage(source, types__extends({\n target: message.originalSource,\n hash: message.hash,\n name: message.name\n }, data), origin);\n }\n return promise_ZalgoPromise.all([ respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.ACK\n }), promise_ZalgoPromise.try(function() {\n if (!options) throw new Error(\"No handler found for post message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Request origin \" + origin + \" does not match domain \" + options.domain.toString());\n var data = message.data;\n return options.handler({\n source: source,\n origin: origin,\n data: data\n });\n }).then(function(data) {\n return respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n ack: constants_CONSTANTS.POST_MESSAGE_ACK.SUCCESS,\n data: data\n });\n }, function(err) {\n var error = stringifyError(err).replace(/^Error: /, \"\"), code = err.code;\n return respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n ack: constants_CONSTANTS.POST_MESSAGE_ACK.ERROR,\n error: error,\n code: code\n });\n }) ]).then(util_noop).catch(function(err) {\n if (options && options.handleError) return options.handleError(err);\n throw err;\n });\n }, _RECEIVE_MESSAGE_TYPE[constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE] = function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message response for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Response origin \" + origin + \" does not match domain \" + Object(src.stringifyDomainPattern)(options.domain));\n deleteResponseListener(message.hash);\n if (message.ack === constants_CONSTANTS.POST_MESSAGE_ACK.ERROR) {\n var err = new Error(message.error);\n message.code && (err.code = message.code);\n return options.respond(err, null);\n }\n if (message.ack === constants_CONSTANTS.POST_MESSAGE_ACK.SUCCESS) {\n var data = message.data || message.response;\n return options.respond(null, {\n source: source,\n origin: origin,\n data: data\n });\n }\n }\n }, _RECEIVE_MESSAGE_TYPE), receive__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n global.receivedMessages = global.receivedMessages || [];\n function receiveMessage(event) {\n if (!window || window.closed) throw new Error(\"Message recieved in closed window\");\n try {\n if (!event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source, origin = event.origin, message = function(message) {\n var item, parsedMessage = void 0;\n try {\n parsedMessage = (item = message, JSON.parse(item));\n } catch (err) {\n return;\n }\n if (parsedMessage && \"object\" === (void 0 === parsedMessage ? \"undefined\" : receive__typeof(parsedMessage)) && null !== parsedMessage && (parsedMessage = parsedMessage[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT]) && \"object\" === (void 0 === parsedMessage ? \"undefined\" : receive__typeof(parsedMessage)) && null !== parsedMessage && parsedMessage.type && \"string\" == typeof parsedMessage.type && RECEIVE_MESSAGE_TYPES[parsedMessage.type]) return parsedMessage;\n }(event.data);\n if (message) {\n if (!message.sourceDomain || \"string\" != typeof message.sourceDomain) throw new Error(\"Expected message to have sourceDomain\");\n 0 !== message.sourceDomain.indexOf(constants_CONSTANTS.MOCK_PROTOCOL) && 0 !== message.sourceDomain.indexOf(constants_CONSTANTS.FILE_PROTOCOL) || (origin = message.sourceDomain);\n if (-1 === global.receivedMessages.indexOf(message.id)) {\n global.receivedMessages.push(message.id);\n if (!Object(src.isWindowClosed)(source) || message.fireAndForget) {\n message.data && (message.data = function(source, origin, obj) {\n return replaceObject({\n obj: message.data\n }, function(item) {\n if (\"object\" === (void 0 === item ? \"undefined\" : serialize__typeof(item)) && null !== item) return isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.METHOD) ? deserializeMethod(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.ERROR) ? function(source, origin, obj) {\n var err = new Error(obj.__message__);\n obj.__code__ && (err.code = obj.__code__);\n return err;\n }(0, 0, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.PROMISE) ? function(source, origin, prom) {\n return window.Promise ? new window.Promise(function(resolve, reject) {\n return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n }) : deserializeZalgoPromise(source, origin, prom);\n }(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE) ? deserializeZalgoPromise(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.REGEX) ? function(source, origin, item) {\n return new RegExp(item.__source__);\n }(0, 0, item) : void 0;\n }).obj;\n }(source, origin));\n RECEIVE_MESSAGE_TYPES[message.type](source, origin, message);\n }\n }\n }\n }\n function messageListener(event) {\n try {\n event.source;\n } catch (err) {\n return;\n }\n receiveMessage({\n source: event.source || event.sourceElement,\n origin: event.origin || event.originalEvent && event.originalEvent.origin,\n data: event.data\n });\n }\n global.receiveMessage = receiveMessage;\n global.requestPromises = global.requestPromises || new weakmap_CrossDomainSafeWeakMap();\n function request(options) {\n return promise_ZalgoPromise.try(function() {\n if (!options.name) throw new Error(\"Expected options.name\");\n var name = options.name, targetWindow = void 0, domain = void 0;\n if (\"string\" == typeof options.window) {\n var el = document.getElementById(options.window);\n if (!el) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be a valid element id\");\n if (\"iframe\" !== el.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be an iframe\");\n if (!el.contentWindow) throw new Error(\"Iframe must have contentWindow. Make sure it has a src attribute and is in the DOM.\");\n targetWindow = el.contentWindow;\n } else if (options.window instanceof HTMLIFrameElement) {\n if (\"iframe\" !== options.window.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be an iframe\");\n if (options.window && !options.window.contentWindow) throw new Error(\"Iframe must have contentWindow. Make sure it has a src attribute and is in the DOM.\");\n options.window && options.window.contentWindow && (targetWindow = options.window.contentWindow);\n } else targetWindow = options.window;\n if (!targetWindow) throw new Error(\"Expected options.window to be a window object, iframe, or iframe element id.\");\n var win = targetWindow;\n domain = options.domain || constants_CONSTANTS.WILDCARD;\n var hash = options.name + \"_\" + uniqueID();\n if (Object(src.isWindowClosed)(win)) throw new Error(\"Target window is closed\");\n var hasResult = !1, requestPromises = global.requestPromises.get(win);\n if (!requestPromises) {\n requestPromises = [];\n global.requestPromises.set(win, requestPromises);\n }\n var requestPromise = promise_ZalgoPromise.try(function() {\n if (Object(src.isAncestor)(window, win)) return function(win) {\n var timeout = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 5e3, name = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"Window\", promise = global.readyPromises.get(win);\n if (promise) return promise;\n promise = new promise_ZalgoPromise();\n global.readyPromises.set(win, promise);\n -1 !== timeout && setTimeout(function() {\n return promise.reject(new Error(name + \" did not load after \" + timeout + \"ms\"));\n }, timeout);\n return promise;\n }(win, options.timeout || CONFIG.CHILD_WINDOW_TIMEOUT);\n }).then(function() {\n var origin = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).origin;\n if (isRegex(domain) && !origin) return sayHello(win);\n }).then(function() {\n var origin = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).origin;\n if (isRegex(domain)) {\n if (!Object(src.matchDomain)(domain, origin)) throw new Error(\"Remote window domain \" + origin + \" does not match regex: \" + domain.toString());\n domain = origin;\n }\n if (\"string\" != typeof domain && !Array.isArray(domain)) throw new TypeError(\"Expected domain to be a string or array\");\n var actualDomain = domain;\n return new promise_ZalgoPromise(function(resolve, reject) {\n var responseListener = void 0;\n options.fireAndForget || function(hash, listener) {\n global.responseListeners[hash] = listener;\n }(hash, responseListener = {\n name: name,\n window: win,\n domain: actualDomain,\n respond: function(err, result) {\n if (!err) {\n hasResult = !0;\n requestPromises.splice(requestPromises.indexOf(requestPromise, 1));\n }\n err ? reject(err) : resolve(result);\n }\n });\n sendMessage(win, {\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.REQUEST,\n hash: hash,\n name: name,\n data: options.data,\n fireAndForget: options.fireAndForget\n }, actualDomain).catch(reject);\n if (options.fireAndForget) return resolve();\n var ackTimeout = CONFIG.ACK_TIMEOUT, resTimeout = options.timeout || CONFIG.RES_TIMEOUT, cycleTime = 100;\n setTimeout(function cycle() {\n if (!hasResult) {\n if (Object(src.isWindowClosed)(win)) return responseListener.ack ? reject(new Error(\"Window closed for \" + name + \" before response\")) : reject(new Error(\"Window closed for \" + name + \" before ack\"));\n ackTimeout = Math.max(ackTimeout - cycleTime, 0);\n -1 !== resTimeout && (resTimeout = Math.max(resTimeout - cycleTime, 0));\n if (responseListener.ack) {\n if (-1 === resTimeout) return;\n cycleTime = Math.min(resTimeout, 2e3);\n } else {\n if (0 === ackTimeout) return reject(new Error(\"No ack for postMessage \" + name + \" in \" + Object(src.getDomain)() + \" in \" + CONFIG.ACK_TIMEOUT + \"ms\"));\n if (0 === resTimeout) return reject(new Error(\"No response for postMessage \" + name + \" in \" + Object(src.getDomain)() + \" in \" + (options.timeout || CONFIG.RES_TIMEOUT) + \"ms\"));\n }\n setTimeout(cycle, cycleTime);\n }\n }, cycleTime);\n });\n });\n requestPromise.catch(function() {\n !function(hash) {\n global.erroredResponseListeners[hash] = !0;\n }(hash);\n deleteResponseListener(hash);\n });\n requestPromises.push(requestPromise);\n return requestPromise;\n });\n }\n function _send(window, name, data, options) {\n (options = options || {}).window = window;\n options.name = name;\n options.data = data;\n return request(options);\n }\n function sendToParent(name, data, options) {\n var win = Object(src.getAncestor)();\n return win ? _send(win, name, data, options) : new promise_ZalgoPromise(function(resolve, reject) {\n return reject(new Error(\"Window does not have a parent\"));\n });\n }\n function client() {\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n if (!options.window) throw new Error(\"Expected options.window\");\n var win = options.window;\n return {\n send: function(name, data) {\n return _send(win, name, data, options);\n }\n };\n }\n global.send = _send;\n var server__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function listen(options) {\n if (!options.name) throw new Error(\"Expected options.name\");\n if (!options.handler) throw new Error(\"Expected options.handler\");\n var name = options.name, win = options.window, domain = options.domain, listenerOptions = {\n handler: options.handler,\n handleError: options.errorHandler || function(err) {\n throw err;\n },\n window: win,\n domain: domain || constants_CONSTANTS.WILDCARD,\n name: name\n }, requestListener = function addRequestListener(_ref6, listener) {\n var name = _ref6.name, win = _ref6.win, domain = _ref6.domain;\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (Array.isArray(win)) {\n for (var listenersCollection = [], _i6 = 0, _win2 = win, _length6 = null == _win2 ? 0 : _win2.length; _i6 < _length6; _i6++) {\n var item = _win2[_i6];\n listenersCollection.push(addRequestListener({\n name: name,\n domain: domain,\n win: item\n }, listener));\n }\n return {\n cancel: function() {\n for (var _i8 = 0, _length8 = null == listenersCollection ? 0 : listenersCollection.length; _i8 < _length8; _i8++) listenersCollection[_i8].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n for (var _listenersCollection = [], _i10 = 0, _domain2 = domain, _length10 = null == _domain2 ? 0 : _domain2.length; _i10 < _length10; _i10++) {\n var _item = _domain2[_i10];\n _listenersCollection.push(addRequestListener({\n name: name,\n win: win,\n domain: _item\n }, listener));\n }\n return {\n cancel: function() {\n for (var _i12 = 0, _length12 = null == _listenersCollection ? 0 : _listenersCollection.length; _i12 < _length12; _i12++) _listenersCollection[_i12].cancel();\n }\n };\n }\n var existingListener = getRequestListener({\n name: name,\n win: win,\n domain: domain\n });\n win && win !== constants_CONSTANTS.WILDCARD || (win = global.WINDOW_WILDCARD);\n domain = domain || constants_CONSTANTS.WILDCARD;\n if (existingListener) throw win && domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString() + \" for \" + (win === global.WINDOW_WILDCARD ? \"wildcard\" : \"specified\") + \" window\") : win ? new Error(\"Request listener already exists for \" + name + \" for \" + (win === global.WINDOW_WILDCARD ? \"wildcard\" : \"specified\") + \" window\") : domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString()) : new Error(\"Request listener already exists for \" + name);\n var requestListeners = global.requestListeners, nameListeners = requestListeners[name];\n if (!nameListeners) {\n nameListeners = new weakmap_CrossDomainSafeWeakMap();\n requestListeners[name] = nameListeners;\n }\n var winListeners = nameListeners.get(win);\n if (!winListeners) {\n winListeners = {};\n nameListeners.set(win, winListeners);\n }\n var strDomain = domain.toString(), regexListeners = winListeners[__DOMAIN_REGEX__], regexListener = void 0;\n if (isRegex(domain)) {\n if (!regexListeners) {\n regexListeners = [];\n winListeners[__DOMAIN_REGEX__] = regexListeners;\n }\n regexListener = {\n regex: domain,\n listener: listener\n };\n regexListeners.push(regexListener);\n } else winListeners[strDomain] = listener;\n return {\n cancel: function() {\n if (winListeners) {\n delete winListeners[strDomain];\n win && 0 === Object.keys(winListeners).length && nameListeners.delete(win);\n regexListener && regexListeners.splice(regexListeners.indexOf(regexListener, 1));\n }\n }\n };\n }({\n name: name,\n win: win,\n domain: domain\n }, listenerOptions);\n if (options.once) {\n var _handler = listenerOptions.handler;\n listenerOptions.handler = once(function() {\n requestListener.cancel();\n return _handler.apply(this, arguments);\n });\n }\n if (listenerOptions.window && options.errorOnClose) var interval = function(method, time) {\n var timeout = void 0;\n timeout = setTimeout(function runInterval() {\n timeout = setTimeout(runInterval, 50);\n (function() {\n if (win && \"object\" === (void 0 === win ? \"undefined\" : server__typeof(win)) && Object(src.isWindowClosed)(win)) {\n interval.cancel();\n listenerOptions.handleError(new Error(\"Post message target window is closed\"));\n }\n }).call();\n }, 50);\n return {\n cancel: function() {\n clearTimeout(timeout);\n }\n };\n }();\n return {\n cancel: function() {\n requestListener.cancel();\n }\n };\n }\n function _on(name, options, handler) {\n if (\"function\" == typeof options) {\n handler = options;\n options = {};\n }\n (options = options || {}).name = name;\n options.handler = handler || options.handler;\n return listen(options);\n }\n function server_once(name) {\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, handler = arguments[2];\n if (\"function\" == typeof options) {\n handler = options;\n options = {};\n }\n options = options || {};\n handler = handler || options.handler;\n var errorHandler = options.errorHandler, promise = new promise_ZalgoPromise(function(resolve, reject) {\n (options = options || {}).name = name;\n options.once = !0;\n options.handler = function(event) {\n resolve(event);\n if (handler) return handler(event);\n };\n options.errorHandler = function(err) {\n reject(err);\n if (errorHandler) return errorHandler(err);\n };\n }), onceListener = listen(options);\n promise.cancel = onceListener.cancel;\n return promise;\n }\n function server_listener() {\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return {\n on: function(name, handler) {\n return _on(name, options, handler);\n }\n };\n }\n global.on = _on;\n function disable() {\n delete window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT];\n window.removeEventListener(\"message\", messageListener);\n }\n var public_parent = Object(src.getAncestor)();\n function cleanUpWindow(win) {\n var requestPromises = global.requestPromises.get(win);\n if (requestPromises) for (var _i2 = 0, _length2 = null == requestPromises ? 0 : requestPromises.length; _i2 < _length2; _i2++) requestPromises[_i2].reject(new Error(\"No response from window - cleaned up\"));\n global.popupWindowsByWin && global.popupWindowsByWin.delete(win);\n global.remoteWindows && global.remoteWindows.delete(win);\n global.requestPromises.delete(win);\n global.methods.delete(win);\n global.readyPromises.delete(win);\n }\n var bridge = null;\n function init() {\n if (!global.initialized) {\n handler = messageListener, (obj = window).addEventListener ? obj.addEventListener(\"message\", handler) : obj.attachEvent(\"onmessage\", handler);\n !function() {\n handler = function(_ref3) {\n var source = _ref3.source, origin = _ref3.origin, promise = global.readyPromises.get(source) || new promise_ZalgoPromise();\n promise.resolve({\n origin: origin\n });\n global.readyPromises.set(source, promise);\n }, global.on(constants_CONSTANTS.POST_MESSAGE_NAMES.HELLO, {\n domain: constants_CONSTANTS.WILDCARD\n }, function(_ref) {\n var source = _ref.source, origin = _ref.origin;\n return handler({\n source: source,\n origin: origin\n });\n });\n var handler, parent = Object(src.getAncestor)();\n parent && sayHello(parent).catch(util_noop);\n }();\n listenForMethods({\n on: _on,\n send: _send\n });\n }\n var obj, handler;\n global.initialized = !0;\n }\n init();\n __webpack_require__.d(__webpack_exports__, \"cleanUpWindow\", function() {\n return cleanUpWindow;\n });\n __webpack_require__.d(__webpack_exports__, \"Promise\", function() {\n return promise_ZalgoPromise;\n });\n __webpack_require__.d(__webpack_exports__, \"bridge\", function() {\n return bridge;\n });\n __webpack_require__.d(__webpack_exports__, \"init\", function() {\n return init;\n });\n __webpack_require__.d(__webpack_exports__, \"parent\", function() {\n return public_parent;\n });\n __webpack_require__.d(__webpack_exports__, \"send\", function() {\n return _send;\n });\n __webpack_require__.d(__webpack_exports__, \"request\", function() {\n return request;\n });\n __webpack_require__.d(__webpack_exports__, \"sendToParent\", function() {\n return sendToParent;\n });\n __webpack_require__.d(__webpack_exports__, \"client\", function() {\n return client;\n });\n __webpack_require__.d(__webpack_exports__, \"on\", function() {\n return _on;\n });\n __webpack_require__.d(__webpack_exports__, \"listen\", function() {\n return listen;\n });\n __webpack_require__.d(__webpack_exports__, \"once\", function() {\n return server_once;\n });\n __webpack_require__.d(__webpack_exports__, \"listener\", function() {\n return server_listener;\n });\n __webpack_require__.d(__webpack_exports__, \"CONFIG\", function() {\n return CONFIG;\n });\n __webpack_require__.d(__webpack_exports__, \"CONSTANTS\", function() {\n return constants_CONSTANTS;\n });\n __webpack_require__.d(__webpack_exports__, \"disable\", function() {\n return disable;\n });\n __webpack_exports__.default = src_interface_namespaceObject;\n }\n });\n});\n//# sourceMappingURL=post-robot.js.map\n//# sourceMappingURL=post-robot.js.map","/* @flow */\n\n// eslint-disable-next-line import/no-commonjs\nmodule.exports = require('./dist/post-robot');\n\n// eslint-disable-next-line import/no-commonjs\nmodule.exports.default = module.exports;\n","/*!\n * EventEmitter v5.2.4 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(263);\n"],"names":["root","factory","exports","module","define","amd","self","Entry","initializationData","connection","emitter","this","content_type","data","_data","entry","locale","_connection","_emitter","thisEntry","on","event","_changedData","uid","path","split","value","schema","Object","keys","length","Error","skipNext","skipNextTwo","forEach","key","index","find","x","console","log","data_type","multiple","blockId","blocks","block","e","fieldIntilaizationDataObject","fieldObject","Field","onChange","callback","EventEmitter","Extension","initData","postRobot","config","currentUser","user","type","fieldConfig","field_config","field","store","Store","window","Window","dashboard_width","stack","Stack","name","emitEvent","state","sendToParent","version","excludedDataTypesForSetField","fieldDataObject","resolvedData","unResolvedData","separatedData","map","file","_resolvedData","_self","fieldObj","currentFieldObj","dataObj","indexOf","then","Promise","resolve","catch","reject","resolved","CONFIG","LOG_LEVEL","ContentstackUIExtension","_extension","initialize","onData","onError","error","Asset","getReferences","environment","payload","Array","fetch","entryQuery","assign","language","plural","action","assetType","asset_type","Base","uiConnection","Proxy","apply","Target","thisArg","argumentsList","_query","only","transform","except","addParam","constructor","options","content_type_uid","contentTypeUid","params","Query","includeOwner","includeContentType","includeSchema","includeReference","contentType","entryTarget","addQuery","ContentType","Utils","_extend","query","file_size","bool","isArray","concat","$exists","i","_i","arguments","push","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","notEqualTo","containedIn","notContainedIn","exists","notExists","ascending","descending","beforeUid","afterUid","skip","limit","or","and","count","mergeDeep","values","tags","include_count","$regex","$options","typeahead","singleEntry","optionParams","code","target","source","newTraget","oldTarget","oldSource","newTarget","_mergeRecursive","anotherTarget","_type","val","__typeof","languageCode","environmentCode","include_owner","include_content_type","include_schema","attributes","childList","subtree","observer","_autoResizingEnabled","_resizingEnabled","windowObj","height","isNaN","_height","Math","ceil","document","documentElement","getBoundingClientRect","MutationObserver","updateHeight","bind","observe","body","disconnect","modules","installedModules","__webpack_require__","moduleId","l","call","m","c","d","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","default","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0__utils__","a","b","f","g","h","j","k","__WEBPACK_IMPORTED_MODULE_1__types__","isRegex","item","toString","getActualDomain","getDomain","isActuallySameDomain","win","allowMock","err","closed","message","IE_WIN_ACCESS_ERROR","isAboutProtocol","canReadFromWindow","mockclosed","parent","top","iframeIndex","collection","iframeWindows","frame","iframeFrames","contentWindow","parentNode","doc","ownerDocument","contains","navigator","mockUserAgent","userAgent","getAncestor","child","actualParent","getParent","isAncestorParent","_i7","_getAllChildFrames4","getAllChildFrames","result","_i3","_getFrames2","getFrames","_length2","_i5","_getAllChildFrames2","_length4","childFrame","_length6","_i16","_getFrames8","_length14","Boolean","getOpener","matchDomain","pattern","origin","CONSTANTS","WILDCARD","match","JSON","stringify","some","subpattern","join","obj","__cross_domain_utils_window_check__","MOCK_PROTOCOL","FILE_PROTOCOL","ABOUT_PROTOCOL","location","protocol","opener","href","host","domain","mockDomain","desc","getOwnPropertyDescriptor","childParent","frames","len","_frame","weakmap_CrossDomainSafeWeakMap","src_interface_namespaceObject","cleanUpWindow","promise_ZalgoPromise","bridge","init","public_parent","_send","request","client","_on","listen","server_once","server_listener","constants_CONSTANTS","disable","src","safeIndexOf","_ALLOWED_POST_MESSAGE","counter","Date","now","CrossDomainSafeWeakMap","instance","Constructor","TypeError","random","WeakMap","freeze","testWeakMap","testKey","set","weakmap","_cleanupClosedWindows","isWindow","isWindowClosed","delete","splice","isSafeToReadWrite","writable","has","POST_MESSAGE_TYPE","REQUEST","RESPONSE","ACK","POST_MESSAGE_ACK","SUCCESS","ERROR","POST_MESSAGE_NAMES","METHOD","HELLO","OPEN_TUNNEL","WINDOW_TYPES","FULLPAGE","POPUP","IFRAME","WINDOW_PROPS","POSTROBOT","SERIALIZATION_TYPES","PROMISE","ZALGO_PROMISE","REGEX","SEND_STRATEGIES","POST_MESSAGE","BRIDGE","GLOBAL","BRIDGE_NAME_PREFIX","POSTROBOT_PROXY","ALLOW_POSTMESSAGE_POPUP","__ALLOW_POSTMESSAGE_POPUP__","BRIDGE_TIMEOUT","CHILD_WINDOW_TIMEOUT","ACK_TIMEOUT","RES_TIMEOUT","ALLOWED_POST_MESSAGE_METHODS","ALLOW_SAME_ORIGIN","_typeof","Symbol","iterator","stringifyError","level","newErr","once","method","called","util_noop","uniqueID","chars","replace","charAt","floor","replaceObject","depth","newobj","_key","childItem","utils_isPromise","_toString","getGlobal","glob","zalgoGlobal","__zalgopromise__","flushPromises","activeCount","possiblyUnhandledPromiseHandlers","dispatchedErrors","ZalgoPromise","handler","_this","rejected","errorHandled","handlers","_result","_error","isAsync","res","dispatch","_this2","_err","setTimeout","promise","asyncReject","_this3","dispatching","_loop","_handlers$i","onSuccess","flushQueue","finally","onFinally","try","timeout","time","_this4","clearTimeout","toPromise","all","promises","results","_loop2","prom","hash","items","onPossiblyUnhandledException","cancel","context","args","delay","_delay","isPromise","flush","promisesToFlush","_i2","global","registerSelf","serialize__typeof","methods","listenForMethods","_ref","meth","id","isSerialized","__type__","serializeMethod","destination","__id__","__name__","deserializeMethod","wrapper","slice","send","_ref2","__xdomain__","deserializeZalgoPromise","__then__","sayHello","readyPromises","SEND_MESSAGE_STRATEGIES","serializedMessage","dom","postMessage","_RECEIVE_MESSAGE_TYPE","_extends","sendMessage","_jsonStringify","isPopup","isIframe","sourceDomain","windowType","__message__","__code__","regex","__source__","messages","replacer","indent","objectToJSON","arrayToJSON","toJSON","strategyName","success","status","getResponseListener","responseListeners","deleteResponseListener","isResponseListenerErrored","erroredResponseListeners","getRequestListener","nameListeners","requestListeners","_ref3","WINDOW_WILDCARD","winQualifier","winListeners","_i4","_winListeners$__DOMAI2","_ref5","listener","types__extends","RECEIVE_MESSAGE_TYPES","pathname","ack","respond","fireAndForget","originalSource","handleError","stringifyDomainPattern","response","receive__typeof","receiveMessage","parsedMessage","parse","receivedMessages","RegExp","messageListener","sourceElement","originalEvent","targetWindow","el","getElementById","tagName","toLowerCase","HTMLIFrameElement","hasResult","requestPromises","requestPromise","isAncestor","actualDomain","responseListener","ackTimeout","resTimeout","cycleTime","cycle","max","min","server__typeof","listenerOptions","errorHandler","requestListener","addRequestListener","_ref6","listenersCollection","_i6","_win2","_i8","_length8","_listenersCollection","_i10","_domain2","_length10","_item","_i12","_length12","existingListener","strDomain","regexListeners","regexListener","_handler","errorOnClose","interval","runInterval","onceListener","removeEventListener","popupWindowsByWin","remoteWindows","initialized","addEventListener","attachEvent","proto","originalGlobalValue","indexOfListener","listeners","alias","isValidListener","getListeners","evt","events","_getEvents","test","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","remove","single","removeEvent","_events","removeAllListeners","listenersMap","_getOnceReturnValue","trigger","emit","setOnceReturnValue","_onceReturnValue","noConflict","__webpack_module_cache__","cachedModule","undefined","loaded","__webpack_modules__","nmd","paths","children"],"sourceRoot":""} \ No newline at end of file diff --git a/jsdocs/ContentstackUIExtension.html b/jsdocs/ContentstackUIExtension.html index 91517ec3..73973b02 100644 --- a/jsdocs/ContentstackUIExtension.html +++ b/jsdocs/ContentstackUIExtension.html @@ -221,7 +221,7 @@
Examples
<script src="https://www.contentstack.com/sdks/contentstack-ui-extensions/2.2.0/ui-extension-sdk.js"></script> <link href="https://www.contentstack.com/sdks/contentstack-ui-extensions/2.2.0/ui-extension-sdk.css" rel="stylesheet" > -

Custom Filed

+

Custom Field

// javascript
 ContentstackUIExtension.init().then(function (extension) {
@@ -303,7 +303,7 @@ 
Returns:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Entry.html b/jsdocs/Entry.html index b877fd4d..ee099fe7 100644 --- a/jsdocs/Entry.html +++ b/jsdocs/Entry.html @@ -383,7 +383,7 @@

getField - Gets the field object which allows you to interact with the field. + Gets the field object for the saved data, which allows you to interact with the field. This object will have all the same methods and properties of extension.field. Note: For fields initialized using the getFields function, the setData function currently works only for the following fields: as single_line, multi_line, RTE, markdown, select, number, boolean, date, link, and extension of data type text, number, boolean, and date.

@@ -508,7 +508,7 @@

onChangeSource:
@@ -641,7 +641,7 @@

onPublishSource:
@@ -774,7 +774,7 @@

onSaveSource:
@@ -907,7 +907,7 @@

onUnPublis
Source:
@@ -1043,7 +1043,7 @@

Parameters:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Extension.html b/jsdocs/Extension.html index 3cf9088e..41832178 100644 --- a/jsdocs/Extension.html +++ b/jsdocs/Extension.html @@ -748,7 +748,7 @@
Type:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Field.html b/jsdocs/Field.html index 15065008..5f243f20 100644 --- a/jsdocs/Field.html +++ b/jsdocs/Field.html @@ -924,7 +924,7 @@
Returns:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Query.html b/jsdocs/Query.html index 733cc252..3f63f170 100644 --- a/jsdocs/Query.html +++ b/jsdocs/Query.html @@ -5322,7 +5322,7 @@
Returns:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Stack.html b/jsdocs/Stack.html index 1ef126b3..c1f29226 100644 --- a/jsdocs/Stack.html +++ b/jsdocs/Stack.html @@ -1274,7 +1274,7 @@
Returns:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Stack_Asset.html b/jsdocs/Stack_Asset.html index ca7b5c3a..957b235a 100644 --- a/jsdocs/Stack_Asset.html +++ b/jsdocs/Stack_Asset.html @@ -1976,7 +1976,7 @@
Returns:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Stack_ContentType.html b/jsdocs/Stack_ContentType.html index 31505b97..d27ebc08 100644 --- a/jsdocs/Stack_ContentType.html +++ b/jsdocs/Stack_ContentType.html @@ -93,7 +93,7 @@

Classes


- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Stack_ContentType_Entry.html b/jsdocs/Stack_ContentType_Entry.html index ea80550a..71b01c7c 100644 --- a/jsdocs/Stack_ContentType_Entry.html +++ b/jsdocs/Stack_ContentType_Entry.html @@ -3256,7 +3256,7 @@
Returns:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Store.html b/jsdocs/Store.html index 03b2bbf6..67e585c1 100644 --- a/jsdocs/Store.html +++ b/jsdocs/Store.html @@ -795,7 +795,7 @@
Returns:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/Window.html b/jsdocs/Window.html index 4593a102..b94f5f9a 100644 --- a/jsdocs/Window.html +++ b/jsdocs/Window.html @@ -722,7 +722,7 @@
Returns:

- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/entry.js.html b/jsdocs/entry.js.html index 84467607..1a761bad 100644 --- a/jsdocs/entry.js.html +++ b/jsdocs/entry.js.html @@ -89,7 +89,7 @@

entry.js

/** - * Gets the field object which allows you to interact with the field. + * Gets the field object for the saved data, which allows you to interact with the field. * This object will have all the same methods and properties of extension.field. * Note: For fields initialized using the getFields function, the setData function currently works only for the following fields: as single_line, multi_line, RTE, markdown, select, number, boolean, date, link, and extension of data type text, number, boolean, and date. * @example @@ -107,6 +107,12 @@

entry.js

let value = this._data; let schema = this.content_type.schema; + const isDataEmpty = Object.keys(value).length === 0; + + if (isDataEmpty) { + throw new Error('The data is unsaved. Save the data before requesting the field.'); + } + try { let skipNext = false; let skipNextTwo = false; @@ -123,6 +129,8 @@

entry.js

schema = schema.find(x => x.uid === key); if (!schema) { throw Error('schema not found'); } + console.log('mayhem', value); + value = value[key]; if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === false @@ -243,7 +251,7 @@

entry.js


- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/extension.js.html b/jsdocs/extension.js.html index 9bd583da..b11746d7 100644 --- a/jsdocs/extension.js.html +++ b/jsdocs/extension.js.html @@ -178,7 +178,7 @@

extension.js


- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/external-Promise.html b/jsdocs/external-Promise.html index ae6abc2f..7a414425 100644 --- a/jsdocs/external-Promise.html +++ b/jsdocs/external-Promise.html @@ -146,7 +146,7 @@


- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/external-localStorage.html b/jsdocs/external-localStorage.html index 1b130f95..260af2a2 100644 --- a/jsdocs/external-localStorage.html +++ b/jsdocs/external-localStorage.html @@ -146,7 +146,7 @@


- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/external.js.html b/jsdocs/external.js.html index 74cd3ca8..781b917b 100644 --- a/jsdocs/external.js.html +++ b/jsdocs/external.js.html @@ -65,7 +65,7 @@

external.js


- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/field.js.html b/jsdocs/field.js.html index 0f564b07..01490658 100644 --- a/jsdocs/field.js.html +++ b/jsdocs/field.js.html @@ -181,7 +181,7 @@

field.js


- Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
diff --git a/jsdocs/index.html b/jsdocs/index.html index 499a00e5..0e66bc61 100644 --- a/jsdocs/index.html +++ b/jsdocs/index.html @@ -61,7 +61,7 @@

Home

Classes

  • diff --git a/jsdocs/index.js.html b/jsdocs/index.js.html index 3209294d..76c56922 100644 --- a/jsdocs/index.js.html +++ b/jsdocs/index.js.html @@ -61,7 +61,7 @@

    index.js

    * HTML * <script src="https://www.contentstack.com/sdks/contentstack-ui-extensions/2.2.0/ui-extension-sdk.js"></script> * <link href="https://www.contentstack.com/sdks/contentstack-ui-extensions/2.2.0/ui-extension-sdk.css" rel="stylesheet" > - * @example <caption>Custom Filed</caption> + * @example <caption>Custom Field</caption> * // javascript * ContentstackUIExtension.init().then(function (extension) { * var value = extension.field.getData() @@ -113,7 +113,7 @@

    index.js


    - Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
    diff --git a/jsdocs/stack_api_asset_index.js.html b/jsdocs/stack_api_asset_index.js.html index cf9cd530..ae736407 100644 --- a/jsdocs/stack_api_asset_index.js.html +++ b/jsdocs/stack_api_asset_index.js.html @@ -293,7 +293,7 @@

    stack/api/asset/index.js


    - Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
    diff --git a/jsdocs/stack_api_content-type_entry.js.html b/jsdocs/stack_api_content-type_entry.js.html index 873c5abc..cd847506 100644 --- a/jsdocs/stack_api_content-type_entry.js.html +++ b/jsdocs/stack_api_content-type_entry.js.html @@ -427,7 +427,7 @@

    stack/api/content-type/entry.js


    - Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
    diff --git a/jsdocs/stack_api_content-type_index.js.html b/jsdocs/stack_api_content-type_index.js.html index 134248bd..b694053d 100644 --- a/jsdocs/stack_api_content-type_index.js.html +++ b/jsdocs/stack_api_content-type_index.js.html @@ -94,7 +94,7 @@

    stack/api/content-type/index.js


    - Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
    diff --git a/jsdocs/stack_api_query.js.html b/jsdocs/stack_api_query.js.html index 384e6013..f6555508 100644 --- a/jsdocs/stack_api_query.js.html +++ b/jsdocs/stack_api_query.js.html @@ -608,7 +608,7 @@

    stack/api/query.js


    - Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
    diff --git a/jsdocs/stack_index.js.html b/jsdocs/stack_index.js.html index c5dd7db6..ec403114 100644 --- a/jsdocs/stack_index.js.html +++ b/jsdocs/stack_index.js.html @@ -195,7 +195,7 @@

    stack/index.js


    - Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
    diff --git a/jsdocs/store.js.html b/jsdocs/store.js.html index 0b0f1e33..862ae013 100644 --- a/jsdocs/store.js.html +++ b/jsdocs/store.js.html @@ -132,7 +132,7 @@

    store.js


    - Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
    diff --git a/jsdocs/window.js.html b/jsdocs/window.js.html index e7cf96a6..345a39c5 100644 --- a/jsdocs/window.js.html +++ b/jsdocs/window.js.html @@ -155,7 +155,7 @@

    window.js


    - Documentation generated by JSDoc 3.6.3 on Fri Apr 24 2020 12:19:40 GMT+0530 (India Standard Time) using the docdash theme. + Documentation generated by JSDoc 3.6.10 on Tue Jul 26 2022 11:45:55 GMT+0530 (India Standard Time) using the docdash theme.
    diff --git a/karma.conf.js b/karma.conf.js index 012a004f..4e0035bf 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -64,14 +64,14 @@ module.exports = function (config) { rules: [{ test: /\.js$/, loader: 'babel-loader', - query: { + options: { presets: ['env'] } },{ test: /\.js$/, use: { loader: 'istanbul-instrumenter-loader', - query: { + options: { esModules: true } }, diff --git a/lib/entry.js b/lib/entry.js index 5b0477b1..4b7142fd 100755 --- a/lib/entry.js +++ b/lib/entry.js @@ -46,7 +46,7 @@ class Entry { /** - * Gets the field object which allows you to interact with the field. + * Gets the field object for the saved data, which allows you to interact with the field. * This object will have all the same methods and properties of extension.field. * Note: For fields initialized using the getFields function, the setData function currently works only for the following fields: as single_line, multi_line, RTE, markdown, select, number, boolean, date, link, and extension of data type text, number, boolean, and date. * @example @@ -64,6 +64,12 @@ class Entry { let value = this._data; let schema = this.content_type.schema; + const isDataEmpty = Object.keys(value).length === 0; + + if (isDataEmpty) { + throw new Error('The data is unsaved. Save the data before requesting the field.'); + } + try { let skipNext = false; let skipNextTwo = false; @@ -80,6 +86,8 @@ class Entry { schema = schema.find(x => x.uid === key); if (!schema) { throw Error('schema not found'); } + console.log('mayhem', value); + value = value[key]; if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === false diff --git a/lib/index.js b/lib/index.js index 168773bd..14f53a38 100755 --- a/lib/index.js +++ b/lib/index.js @@ -18,7 +18,7 @@ class ContentstackUIExtension { * HTML * * - * @example Custom Filed + * @example Custom Field * // javascript * ContentstackUIExtension.init().then(function (extension) { * var value = extension.field.getData() diff --git a/lib/stack/utils.js b/lib/stack/utils.js index 59345217..1f7ae25b 100755 --- a/lib/stack/utils.js +++ b/lib/stack/utils.js @@ -1,21 +1,20 @@ export function transform(type) { return function () { - this._query[type] = this._query[type] || {}; switch (arguments.length) { case 1: if (Array.isArray(arguments[0]) || typeof arguments[0] === 'string') { - let query = this._query[type].BASE || []; + let query = this._query[`${type}[BASE]`] || []; query = query.concat(arguments[0]); - this._query[type].BASE = query; + this._query[`${type}[BASE]`] = query; return this; } throw Error('Kindly provide valid parameters'); case 2: if (typeof arguments[0] === 'string' && (Array.isArray(arguments[1]) || typeof arguments[1] === 'string')) { - let query = this._query[type][arguments[0]] || []; + let query = this._query[`${type}[${arguments[0]}]`] || []; query = query.concat(arguments[1]); - this._query[type][arguments[0]] = query; + this._query[`${type}[${arguments[0]}]`] = query; return this; } throw Error('Kindly provide valid parameters'); diff --git a/package-lock.json b/package-lock.json index 80f00796..a4cd7d27 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,21 +1,31 @@ { "name": "@contentstack/ui-extensions-sdk", - "version": "2.2.0", + "version": "2.2.1", "lockfileVersion": 1, "requires": true, "dependencies": { + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, "@babel/cli": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.8.4.tgz", - "integrity": "sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag==", + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.17.6.tgz", + "integrity": "sha512-l4w608nsDNlxZhiJ5tE3DbNmr61fIKMZ6fTBo171VEFuFMIYuJ3mHRhTLEkKKyvx2Mizkkv/0a8OJOnZqkKYNA==", "dev": true, "requires": { - "chokidar": "^2.1.8", + "@jridgewell/trace-mapping": "^0.3.4", + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0", "commander": "^4.0.1", "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.1.0", "glob": "^7.0.0", - "lodash": "^4.17.13", "make-dir": "^2.1.0", "slash": "^2.0.0", "source-map": "^0.5.0" @@ -30,6 +40,169 @@ "@babel/highlight": "7.0.0-beta.44" } }, + "@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "dev": true + }, + "@babel/core": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "@babel/generator": { "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz", @@ -43,6 +216,60 @@ "trim-right": "^1.0.1" } }, + "@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + }, + "dependencies": { + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, "@babel/helper-function-name": { "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz", @@ -63,77 +290,178 @@ "@babel/types": "7.0.0-beta.44" } }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz", - "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", - "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", - "dev": true - }, - "@babel/highlight": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz", - "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==", + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "@babel/types": "^7.16.7" + }, + "dependencies": { + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + } } }, - "@babel/parser": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", - "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", - "dev": true - }, - "@babel/template": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz", - "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==", + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "lodash": "^4.2.0" + "@babel/types": "^7.16.7" + }, + "dependencies": { + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + } } }, - "@babel/traverse": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz", - "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==", + "@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/generator": "7.0.0-beta.44", - "@babel/helper-function-name": "7.0.0-beta.44", - "@babel/helper-split-export-declaration": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.2.0" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -142,396 +470,920 @@ } } }, - "@babel/types": { + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-split-export-declaration": { "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz", - "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz", + "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.2.0", - "to-fast-properties": "^2.0.0" + "@babel/types": "7.0.0-beta.44" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "@babel/helpers": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", "dev": true, "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true + "@babel/highlight": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz", + "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } }, - "@types/node": { - "version": "13.11.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.1.tgz", - "integrity": "sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==", + "@babel/parser": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "dev": true }, - "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", - "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", + "@babel/template": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz", + "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" + "@babel/code-frame": "7.0.0-beta.44", + "@babel/types": "7.0.0-beta.44", + "babylon": "7.0.0-beta.44", + "lodash": "^4.2.0" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", - "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", + "@babel/traverse": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz", + "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.44", + "@babel/generator": "7.0.0-beta.44", + "@babel/helper-function-name": "7.0.0-beta.44", + "@babel/helper-split-export-declaration": "7.0.0-beta.44", + "@babel/types": "7.0.0-beta.44", + "babylon": "7.0.0-beta.44", + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" + } + }, + "@babel/types": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz", + "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", - "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", - "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", - "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.7.11" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } } }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", - "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", "dev": true }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", - "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", - "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", - "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", + "@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "@xtuc/ieee754": "^1.2.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", - "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { - "@xtuc/long": "4.2.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, - "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", - "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", "dev": true }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", - "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" + "@types/connect": "*", + "@types/node": "*" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", - "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@types/node": "*" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", - "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" + "@types/node": "*" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", - "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@types/express-serve-static-core": "*", + "@types/node": "*" } }, - "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", - "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "@types/eslint": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", + "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", - "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", + "@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" + "@types/eslint": "*", + "@types/estree": "*" } }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", "dev": true }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", "dev": true, "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "@types/linkify-it": "*", + "@types/mdurl": "*" } }, - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", "dev": true }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", "dev": true }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", "dev": true }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "dev": true, - "optional": true - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true + "requires": { + "@types/express": "*" + } }, - "ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "dev": true, "requires": { - "array-back": "^3.0.1" + "@types/mime": "^1", + "@types/node": "*" } }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "dev": true, "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } + "@types/node": "*" } }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "requires": { + "@types/node": "*" + } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", + "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", + "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", + "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "ajv": "^8.0.0" }, "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "optional": true + }, + "ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true } } }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", @@ -547,12 +1399,6 @@ "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", @@ -566,15 +1412,9 @@ "dev": true }, "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true }, "array-flatten": { @@ -584,18 +1424,9 @@ "dev": true }, "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, "array-unique": { @@ -604,50 +1435,6 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -666,18 +1453,6 @@ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -755,12 +1530,27 @@ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -1373,11 +2163,26 @@ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -1407,16 +2212,10 @@ "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", "dev": true }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "base": { @@ -1471,25 +2270,19 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true } } }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true }, "batch": { @@ -1498,15 +2291,6 @@ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -1514,25 +2298,9 @@ "dev": true }, "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "bluebird": { @@ -1541,28 +2309,39 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", "dev": true, "requires": { - "bytes": "3.1.0", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", - "http-errors": "1.7.2", + "http-errors": "1.8.1", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, "bonjour": { @@ -1607,94 +2386,39 @@ "to-regex": "^3.0.1" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, "browserslist": { "version": "3.2.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", @@ -1705,21 +2429,10 @@ "electron-to-chromium": "^1.3.47" } }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "buffer-indexof": { @@ -1728,64 +2441,12 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1804,20 +2465,20 @@ } }, "cache-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-1.0.0.tgz", - "integrity": "sha512-ZqrZp9Hi5Uq7vfSGmNP2bUT/9DzZC2Y/GXjHB8rUJN1a+KLmbV05+vxHipNsg8+CSVgjcVVzLV8VZms6w8ZeRw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", + "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", "dev": true, "requires": { - "array-back": "^4.0.0", + "array-back": "^4.0.1", "fs-then-native": "^2.0.0", "mkdirp2": "^1.0.4" }, "dependencies": { "array-back": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", - "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true } } @@ -1834,11 +2495,15 @@ "write-file-atomic": "^2.4.2" } }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } }, "callsites": { "version": "3.1.0", @@ -1852,37 +2517,19 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } - }, "caniuse-lite": { - "version": "1.0.30001040", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001040.tgz", - "integrity": "sha512-Ep0tEPeI5wCvmJNrXjE3etgfI+lkl1fTDU6Y3ZH1mhrjkPlVI9W4pcKbMo+BQLpEWKVYYp2EmYaRsqpPC3k7lQ==", + "version": "1.0.30001322", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001322.tgz", + "integrity": "sha512-neRmrmIrCGuMnxGSoh+x7zYtQFFgnSY2jaomjU56sCkTA6JINqQrxutF459JpWcWRajvoyn95sOXq4Pqrnyjew==", "dev": true }, "catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", "dev": true, "requires": { - "lodash": "^4.17.14" + "lodash": "^4.17.15" } }, "chalk": { @@ -1903,49 +2550,37 @@ "dev": true }, "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + } } }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true }, "class-utils": { "version": "0.3.6", @@ -1957,19 +2592,14 @@ "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -1980,55 +2610,68 @@ } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, "collect-all": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.3.tgz", - "integrity": "sha512-0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", + "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", "dev": true, "requires": { "stream-connect": "^1.0.2", @@ -2060,6 +2703,12 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -2067,17 +2716,23 @@ "dev": true }, "command-line-args": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", - "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, "requires": { - "array-back": "^3.0.1", + "array-back": "^3.1.0", "find-replace": "^3.0.0", "lodash.camelcase": "^4.3.0", "typical": "^4.0.0" }, "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + }, "typical": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", @@ -2140,9 +2795,9 @@ "dev": true }, "common-sequence": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.0.tgz", - "integrity": "sha512-f0QqPLpRTgMQn/pQIynf+SdE73Lw5Q1jn4hjirHLgH/NJ71TiHjXusV16BmOyuK5rRQ1W2f++II+TFZbQOh4hA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", + "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", "dev": true }, "commondir": { @@ -2151,24 +2806,12 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -2198,6 +2841,21 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -2207,18 +2865,6 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "config-master": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", @@ -2246,24 +2892,29 @@ "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, "contains-path": { @@ -2273,12 +2924,20 @@ "dev": true }, "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } } }, "content-type": { @@ -2288,18 +2947,18 @@ "dev": true }, "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" } }, "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true }, "cookie-signature": { @@ -2308,20 +2967,6 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2329,17 +2974,27 @@ "dev": true }, "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", "dev": true }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cp-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", @@ -2353,55 +3008,18 @@ "safe-buffer": "^5.0.1" } }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "cross-domain-safe-weakmap": { - "version": "1.0.27", - "resolved": "https://registry.npmjs.org/cross-domain-safe-weakmap/-/cross-domain-safe-weakmap-1.0.27.tgz", - "integrity": "sha512-f5etDzszteeGh99Dzd7o72FGwd8rLGzgEv50Vk0r8mLzPdQEzcb7Vmx3PfKWD4k66Hp8vN0BLPuBmmMs4UxseQ==", + "version": "1.0.29", + "resolved": "https://registry.npmjs.org/cross-domain-safe-weakmap/-/cross-domain-safe-weakmap-1.0.29.tgz", + "integrity": "sha512-VLoUgf2SXnf3+na8NfeUFV59TRZkIJqCIATaMdbhccgtnTlSnHXkyTRwokngEGYdQXx8JbHT9GDYitgR2sdjuA==", "requires": { "cross-domain-utils": "^2.0.0" } }, "cross-domain-utils": { - "version": "2.0.32", - "resolved": "https://registry.npmjs.org/cross-domain-utils/-/cross-domain-utils-2.0.32.tgz", - "integrity": "sha512-3qwXBJxVuctEcH6jg0MkFCyIYq6ta+x1OVlCmBrtJxlPGtdRqn0zV4Z0SfZaxzX3QBLAeiwWS8FKPQZ5ihWPxw==", + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/cross-domain-utils/-/cross-domain-utils-2.0.38.tgz", + "integrity": "sha512-zZfi3+2EIR9l4chrEiXI2xFleyacsJf8YMLR1eJ0Veb5FTMXeJ3DpxDjZkto2FhL/g717WSELqbptNSo85UJDw==", "requires": { "zalgo-promise": "^1.0.11" } @@ -2419,69 +3037,25 @@ "which": "^1.2.9" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, "custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.7.tgz", + "integrity": "sha512-k5xqlzDGIfv2N/DHR/BR8Kc4N9CRy9ReuDkmdxeX/jNfit94QXd36emWMm40ZOEDKNm/c91yV9EO3uGPkR7wWQ==", "dev": true }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - } - }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "decamelize": { @@ -2517,67 +3091,107 @@ "dev": true }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" + "execa": "^5.0.0" }, "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" } }, "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { - "pump": "^3.0.0" + "path-key": "^3.0.0" } - } - } - }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "dev": true, - "requires": { - "strip-bom": "^2.0.0" - }, - "dependencies": { - "strip-bom": { + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" } } } }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -2588,89 +3202,59 @@ } }, "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "^0.1.0" + } + }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "glob": "^7.1.3" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true } } }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - } - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", @@ -2681,64 +3265,58 @@ } }, "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } } }, "dmd": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-4.0.6.tgz", - "integrity": "sha512-7ZYAnFQ6jGm4SICArwqNPylJ83PaOdPTAkds3Z/s1ueFqSc5ilJ2F0b7uP+35W1PUbemH++gn5/VlC3KwEgiHQ==", - "dev": true, - "requires": { - "array-back": "^4.0.1", - "cache-point": "^1.0.0", - "common-sequence": "^2.0.0", - "file-set": "^3.0.0", - "handlebars": "^4.5.3", - "marked": "^0.7.0", - "object-get": "^2.1.0", - "reduce-flatten": "^3.0.0", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.1.0.tgz", + "integrity": "sha512-0zQIJ873gay1scCTFZvHPWM9mVJBnaylB2NQDI8O9u8O32m00Jb6uxDKexZm8hjTRM7RiWe0FJ32pExHoXdwoQ==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "common-sequence": "^2.0.2", + "file-set": "^4.0.2", + "handlebars": "^4.7.7", + "marked": "^4.0.12", + "object-get": "^2.1.1", + "reduce-flatten": "^3.0.1", "reduce-unique": "^2.0.1", "reduce-without": "^1.0.1", "test-value": "^3.0.0", - "walk-back": "^4.0.0" + "walk-back": "^5.1.0" }, "dependencies": { - "array-back": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", - "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", - "dev": true - }, "reduce-flatten": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.0.tgz", - "integrity": "sha512-eczl8wAYBxJ6Egl6I1ECIF+8z6sHu+KE7BzaEDZTpPXKXfy9SUDQlVYwkRcNTjJLC3Iakxbhss50KuT/R6SYfg==", - "dev": true - }, - "walk-back": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-4.0.0.tgz", - "integrity": "sha512-kudCA8PXVQfrqv2mFTG72vDBRi8BKWxGgFLwPpzHcpZnSwZk93WMwUDVcLHWNsnm+Y0AC4Vb6MUNRgaHfyV2DQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", + "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", "dev": true } } @@ -2750,9 +3328,9 @@ "dev": true }, "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "requires": { "ip": "^1.1.0", @@ -2786,7 +3364,7 @@ "dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, "requires": { "custom-event": "~1.0.0", @@ -2795,24 +3373,6 @@ "void-elements": "^2.0.0" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2820,26 +3380,11 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.402", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.402.tgz", - "integrity": "sha512-gaCDfX7IUH0s3JmBiHCDPrvVcdnTTP1r4WLJc2dHkYYbLmXZ2XHiJCcGQ9Balf91aKTvuCKCyu2JjJYRykoI1w==", + "version": "1.4.101", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.101.tgz", + "integrity": "sha512-XJH+XmJjACx1S7ASl/b//KePcda5ocPnFH2jErztXcIS8LpP0SE6rX8ZxiY5/RaDPnaF1rj0fPaHfppzb0e2Aw==", "dev": true }, - "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", - "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2858,132 +3403,77 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, "engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", - "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", + "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", "dev": true, "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" } - } - } - }, - "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" + "@socket.io/base64-arraybuffer": "~1.0.2" } }, "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", + "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" } }, "ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", "dev": true }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true }, "error-ex": { "version": "1.3.2", @@ -2994,35 +3484,11 @@ "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true }, "es6-error": { "version": "4.1.1", @@ -3030,6 +3496,12 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -3125,57 +3597,48 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.16.7" } }, "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "glob-parent": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, "globals": { @@ -3235,13 +3698,13 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "debug": "^3.2.7", + "resolve": "^1.20.0" } }, "eslint-loader": { @@ -3258,13 +3721,13 @@ } }, "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" + "debug": "^3.2.7", + "find-up": "^2.1.0" } }, "eslint-plugin-import": { @@ -3285,6 +3748,15 @@ "resolve": "^1.6.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "doctrine": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", @@ -3294,6 +3766,12 @@ "esutils": "^2.0.2", "isarray": "^1.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -3323,9 +3801,9 @@ } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { @@ -3346,29 +3824,37 @@ "dev": true }, "esquery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", - "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { - "estraverse": "^5.0.0" + "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", - "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "estraverse": { @@ -3390,36 +3876,17 @@ "dev": true }, "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "execa": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", @@ -3435,62 +3902,18 @@ "strip-eof": "^1.0.0" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", "dev": true, "requires": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.4.2", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "~1.1.2", @@ -3504,13 +3927,13 @@ "on-finished": "~2.3.0", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", "statuses": "~1.5.0", "type-is": "~1.6.18", "utils-merge": "1.0.1", @@ -3523,10 +3946,25 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true } } @@ -3538,24 +3976,12 @@ "dev": true }, "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "is-extendable": "^0.1.0" } }, "external-editor": { @@ -3569,77 +3995,25 @@ "tmp": "^0.0.33" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" } }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3652,21 +4026,30 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "requires": { "websocket-driver": ">=0.5.1" } }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -3686,61 +4069,30 @@ } }, "file-set": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-3.0.0.tgz", - "integrity": "sha512-B/SdeSIeRv7VlOgIjtH3dkxMI+tEy5m+OeCXfAUsirBoVoY+bGtsmvmmTFPm/G23TBY4RiTtjpcgePCfwXRjqA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", + "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", "dev": true, "requires": { - "array-back": "^4.0.0", - "glob": "^7.1.5" + "array-back": "^5.0.0", + "glob": "^7.1.6" }, "dependencies": { "array-back": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", - "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", "dev": true } } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" - } - }, "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "to-regex-range": "^5.0.1" } }, "finalhandler": { @@ -3756,6 +4108,23 @@ "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, "find-cache-dir": { @@ -3793,6 +4162,14 @@ "dev": true, "requires": { "array-back": "^3.0.1" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + } } }, "find-up": { @@ -3804,29 +4181,6 @@ "locate-path": "^2.0.0" } }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -3844,702 +4198,105 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "follow-redirects": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz", - "integrity": "sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==", - "dev": true, - "requires": { - "debug": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "dev": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - } - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", - "dev": true, - "requires": { - "null-check": "^1.0.0" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "fs-then-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", - "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=", - "dev": true - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", "dev": true }, - "fsevents": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", - "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "bundled": true, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, - "optional": true, "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, - "optional": true, "requires": { - "string-width": "^1.0.2 || 2" + "graceful-fs": "^4.1.6" } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "optional": true } } }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs-then-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -4552,17 +4309,28 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } }, "get-stream": { "version": "3.0.0", @@ -4577,9 +4345,9 @@ "dev": true }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -4591,49 +4359,19 @@ } }, "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "is-glob": "^4.0.1" } }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, "globals": { "version": "11.12.0", @@ -4642,30 +4380,37 @@ "dev": true }, "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true } } }, "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", "dev": true }, "handle-thing": { @@ -4675,9 +4420,9 @@ "dev": true }, "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, "requires": { "minimist": "^1.2.5", @@ -4713,29 +4458,6 @@ "ansi-regex": "^2.0.0" } }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -4743,11 +4465,20 @@ "dev": true }, "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -4769,6 +4500,26 @@ "kind-of": "^4.0.0" }, "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -4780,26 +4531,6 @@ } } }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "hasha": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", @@ -4809,17 +4540,6 @@ "is-stream": "^1.0.1" } }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", @@ -4830,19 +4550,10 @@ "os-tmpdir": "^1.0.1" } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "hpack.js": { @@ -4858,9 +4569,9 @@ } }, "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", "dev": true }, "html-escaper": { @@ -4876,36 +4587,28 @@ "dev": true }, "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "requires": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "toidentifier": "1.0.1" } }, "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", "dev": true }, "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { "eventemitter3": "^4.0.0", @@ -4914,21 +4617,22 @@ } }, "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", + "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", "dev": true, "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "iconv-lite": { @@ -4940,18 +4644,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -4959,9 +4651,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -4969,32 +4661,32 @@ } }, "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" }, "dependencies": { "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "p-limit": { @@ -5007,12 +4699,12 @@ } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -5021,13 +4713,19 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" } } } @@ -5039,24 +4737,9 @@ "dev": true }, "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "inflight": { @@ -5072,13 +4755,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "inject-loader": { @@ -5091,46 +4768,45 @@ } }, "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.15", + "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", - "rxjs": "^6.5.3", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -5159,18 +4835,18 @@ "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -5178,20 +4854,10 @@ } } }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true }, "invariant": { @@ -5203,34 +4869,16 @@ "loose-envify": "^1.0.0" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true }, "is-accessor-descriptor": { @@ -5240,24 +4888,17 @@ "dev": true, "requires": { "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } }, "is-arrayish": { "version": "0.2.1", @@ -5266,12 +4907,12 @@ "dev": true }, "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "^2.0.0" } }, "is-buffer": { @@ -5280,11 +4921,14 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } }, "is-data-descriptor": { "version": "0.1.4", @@ -5293,24 +4937,16 @@ "dev": true, "requires": { "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-descriptor": { "version": "0.1.6", @@ -5331,6 +4967,12 @@ } } }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -5356,33 +4998,19 @@ "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-path-cwd": { "version": "2.2.0", @@ -5390,23 +5018,17 @@ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true }, "is-plain-object": { "version": "2.0.4", @@ -5417,19 +5039,14 @@ "isobject": "^3.0.1" } }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { - "has": "^1.0.3" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-stream": { @@ -5438,33 +5055,15 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "is-docker": "^2.0.0" } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -5472,9 +5071,9 @@ "dev": true }, "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true }, "isexe": { @@ -5553,36 +5152,6 @@ } } }, - "istanbul-api": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", - "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", - "dev": true, - "requires": { - "async": "^2.1.4", - "fileset": "^2.0.2", - "istanbul-lib-coverage": "^1.2.1", - "istanbul-lib-hook": "^1.2.2", - "istanbul-lib-instrument": "^1.10.2", - "istanbul-lib-report": "^1.1.5", - "istanbul-lib-source-maps": "^1.2.6", - "istanbul-reports": "^1.5.1", - "js-yaml": "^3.7.0", - "mkdirp": "^0.5.1", - "once": "^1.4.0" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - } - } - }, "istanbul-instrumenter-loader": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", @@ -5636,15 +5205,6 @@ "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", "dev": true }, - "istanbul-lib-hook": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", - "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", - "dev": true, - "requires": { - "append-transform": "^0.4.0" - } - }, "istanbul-lib-instrument": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", @@ -5669,71 +5229,102 @@ } }, "istanbul-lib-report": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", - "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "dependencies": { "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "^4.0.0" } } } }, "istanbul-lib-source-maps": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", - "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "istanbul-reports": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", - "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "requires": { - "handlebars": "^4.0.3" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, "jasmine": { @@ -5760,6 +5351,34 @@ "integrity": "sha1-wQWrUiLaRfGwoQWAOD9a27/1bSw=", "dev": true }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -5767,9 +5386,9 @@ "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -5777,34 +5396,35 @@ } }, "js2xmlparser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", - "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", "dev": true, "requires": { - "xmlcreate": "^2.0.3" + "xmlcreate": "^2.0.4" } }, "jsdoc": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.3.tgz", - "integrity": "sha512-Yf1ZKA3r9nvtMWHO1kEuMZTlHOF8uoQ0vyo5eH7SQy5YeIiHM+B0DgKnn+X6y6KDYZcF7G2SPkKF+JORCXWE/A==", + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", + "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", "dev": true, "requires": { - "@babel/parser": "^7.4.4", - "bluebird": "^3.5.4", - "catharsis": "^0.8.11", + "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.0", - "klaw": "^3.0.0", - "markdown-it": "^8.4.2", - "markdown-it-anchor": "^5.0.2", - "marked": "^0.7.0", - "mkdirp": "^0.5.1", + "js2xmlparser": "^4.0.2", + "klaw": "^4.0.1", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", "requizzle": "^0.2.3", - "strip-json-comments": "^3.0.1", + "strip-json-comments": "^3.1.0", "taffydb": "2.6.2", - "underscore": "~1.9.1" + "underscore": "~1.13.2" }, "dependencies": { "escape-string-regexp": { @@ -5812,93 +5432,59 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true } } }, "jsdoc-api": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-5.0.4.tgz", - "integrity": "sha512-1KMwLnfo0FyhF06TQKzqIm8BiY1yoMIGICxRdJHUjzskaHMzHMmpLlmNFgzoa4pAC8t1CDPK5jWuQTvv1pBsEQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-7.1.1.tgz", + "integrity": "sha512-0pkuPCzVXiqsDAsVrNFXCkHzlyNepBIDVtwwehry4RJAnZmXtlAz7rh8F9FRz53u3NeynGbex+bpYWwi8lE66A==", "dev": true, "requires": { - "array-back": "^4.0.0", - "cache-point": "^1.0.0", - "collect-all": "^1.0.3", - "file-set": "^2.0.1", + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "collect-all": "^1.0.4", + "file-set": "^4.0.2", "fs-then-native": "^2.0.0", - "jsdoc": "^3.6.3", - "object-to-spawn-args": "^1.1.1", + "jsdoc": "^3.6.10", + "object-to-spawn-args": "^2.0.1", "temp-path": "^1.0.0", - "walk-back": "^3.0.1" - }, - "dependencies": { - "array-back": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", - "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", - "dev": true - }, - "file-set": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-2.0.1.tgz", - "integrity": "sha512-XgOUUpgR6FbbfYcniLw0qm1Am7PnNYIAkd+eXxRt42LiYhjaso0WiuQ+VmrNdtwotyM+cLCfZ56AZrySP3QnKA==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "glob": "^7.1.3" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } - } - } + "walk-back": "^5.1.0" } }, "jsdoc-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-3.0.1.tgz", - "integrity": "sha512-btZLp4wYl90vcAfgk4hoGQbO17iBVrhh3LJRMKZNtZgniO3F8H2CjxXld0owBIB1XxN+j3bAcWZnZKMnSj3iMA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.1.0.tgz", + "integrity": "sha512-n/hDGQJa69IBun1yZAjqzV4gVR41+flZ3bIlm9fKvNe2Xjsd1/+zCo2+R9ls8LxtePgIWbpA1jU7xkB2lRdLLg==", "dev": true, "requires": { - "array-back": "^2.0.0", + "array-back": "^6.2.2", "lodash.omit": "^4.5.0", "lodash.pick": "^4.4.0", "reduce-extract": "^1.0.0", - "sort-array": "^2.0.0", + "sort-array": "^4.1.4", "test-value": "^3.0.0" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } } }, "jsdoc-to-markdown": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-5.0.0.tgz", - "integrity": "sha512-3gKEnbay7dSdyvtMDDkUf4r7pmBVgs3aqeT0Cg/ngTILPpJUzf8iKgASIo5psF007L45OIJtIuRX5VL/YUXKaA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-7.1.1.tgz", + "integrity": "sha512-CI86d63xAVNO+ENumWwmJ034lYe5iGU5GwjtTA11EuphP9tpnoi4hrKgR/J8uME0D+o4KUpVfwX1fjZhc8dEtg==", "dev": true, "requires": { - "array-back": "^3.1.0", + "array-back": "^6.2.2", "command-line-tool": "^0.8.0", "config-master": "^3.1.0", - "dmd": "^4.0.0", - "jsdoc-api": "^5.0.1", - "jsdoc-parse": "^3.0.1", - "walk-back": "^3.0.1" + "dmd": "^6.1.0", + "jsdoc-api": "^7.1.1", + "jsdoc-parse": "^6.1.0", + "walk-back": "^5.1.0" } }, "jsesc": { @@ -5925,12 +5511,6 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -5941,62 +5521,55 @@ } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, "karma": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.1.tgz", - "integrity": "sha512-xrDGtZ0mykEQjx1BUHOP1ITi39MDsCGocmSvLJWHxUQpxuKwxk3ZUrC6HI2VWh1plLC6+7cA3B19m12yzO/FRw==", + "version": "6.3.19", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.19.tgz", + "integrity": "sha512-NDhWckzES/Y9xMiddyU1RzaKL76/scCsu8Mp0vR0Z3lQRvC3p72+Ab4ppoxs36S9tyPNX5V48yvaV++RNEBPZw==", "dev": true, "requires": { - "body-parser": "^1.16.1", + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.1.0", - "connect": "^3.6.0", + "chokidar": "^3.5.1", + "connect": "^3.7.0", "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "flatted": "^2.0.0", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^4.0.2", - "lodash": "^4.17.14", - "log4js": "^4.0.0", - "mime": "^2.3.1", - "minimatch": "^3.0.2", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "socket.io": "2.1.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", "source-map": "^0.6.1", - "tmp": "0.0.33", - "ua-parser-js": "0.7.21", - "yargs": "^15.3.1" + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" }, "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": true - }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -6006,69 +5579,13 @@ "fill-range": "^7.0.1" } }, - "chokidar": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", - "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.3.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "readdirp": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", - "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "picomatch": "^2.0.7" + "glob": "^7.1.3" } }, "source-map": { @@ -6077,48 +5594,128 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { - "is-number": "^7.0.0" + "rimraf": "^3.0.0" } } } }, "karma-chrome-launcher": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", "dev": true, "requires": { - "fs-access": "^1.0.0", "which": "^1.2.1" } }, "karma-coverage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.2.tgz", - "integrity": "sha512-eQawj4Cl3z/CjxslYy9ariU4uDh7cCNFZHNWXWRpl0pNeblY/4wHR7M7boTYXWrn9bY0z2pZmr11eKje/S/hIw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", "dev": true, "requires": { - "dateformat": "^1.0.6", - "istanbul": "^0.4.0", - "lodash": "^4.17.0", - "minimatch": "^3.0.0", - "source-map": "^0.5.1" + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "karma-coverage-istanbul-reporter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.1.tgz", - "integrity": "sha512-UcgrHkFehI5+ivMouD8NH/UOHiX4oCAtwaANylzPFdcAuD52fnCUuelacq2gh8tZ4ydhU3+xiXofSq7j5Ehygw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", "dev": true, "requires": { - "istanbul-api": "^1.3.1", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", "minimatch": "^3.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "karma-eslint": { @@ -6216,57 +5813,41 @@ } }, "karma-webpack": { - "version": "4.0.0-rc.6", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-4.0.0-rc.6.tgz", - "integrity": "sha512-fN3EfHc10bZxP7dqgsaIFdmkynABFsgMxqgVZJYqxzt0CDBH6j1LbHrMilnijnDYZ8fZDLtx/OKWshXiYyhIig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz", + "integrity": "sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==", "dev": true, "requires": { - "async": "^2.0.0", - "loader-utils": "^1.1.0", - "source-map": "^0.5.6", - "webpack-dev-middleware": "^3.2.0" + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "webpack-merge": "^4.1.5" }, "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", "dev": true, "requires": { - "lodash": "^4.17.14" + "lodash": "^4.17.15" } } } }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "graceful-fs": "^4.1.9" + "is-buffer": "^1.1.5" } }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } + "klaw": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", + "dev": true }, "levn": { "version": "0.3.0", @@ -6279,9 +5860,9 @@ } }, "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "dev": true, "requires": { "uc.micro": "^1.0.1" @@ -6359,9 +5940,9 @@ } }, "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true }, "loader-utils": { @@ -6386,9 +5967,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "lodash.camelcase": { @@ -6422,27 +6003,33 @@ "dev": true }, "log4js": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", - "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.5.tgz", + "integrity": "sha512-43RJcYZ7nfUxpPO2woTl8CJ0t5+gucLJZ43mtp2PlInT+LygCp/bl6hNJtKulCJ+++fQsjIv4EO3Mp611PfeLQ==", "dev": true, "requires": { - "date-format": "^2.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.0", - "rfdc": "^1.1.4", - "streamroller": "^1.0.6" + "date-format": "^4.0.7", + "debug": "^4.3.4", + "flatted": "^3.2.5", + "rfdc": "^1.3.0", + "streamroller": "^3.0.7" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -6451,12 +6038,6 @@ } } }, - "loglevel": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz", - "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==", - "dev": true - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -6466,16 +6047,6 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -6496,204 +6067,75 @@ "semver": "^5.6.0" } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdown-it-anchor": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.7.tgz", - "integrity": "sha512-REFmIaSS6szaD1bye80DMbp7ePwsPNvLTR5HunsUcZ0SG0rWJQ+Pz24R4UlTKtjKBPhxo0v0tOBDYjZQQknW8Q==", - "dev": true - }, - "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true } } }, + "markdown-it-anchor": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", + "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", + "dev": true + }, + "marked": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "dev": true + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dev": true, + "requires": { + "fs-monkey": "1.0.3" + } + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -6717,6 +6159,18 @@ } } }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -6724,55 +6178,45 @@ "dev": true }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + } } }, "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true }, "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true }, "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { - "mime-db": "1.43.0" + "mime-db": "1.52.0" } }, "mimic-fn": { @@ -6787,43 +6231,36 @@ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "mixin-deep": { @@ -6848,38 +6285,24 @@ } }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } }, "mkdirp2": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.4.tgz", - "integrity": "sha512-Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", + "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", "dev": true }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "multicast-dns": { @@ -6904,32 +6327,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -6937,21 +6334,21 @@ "dev": true }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", + "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", "dev": true }, "nice-try": { @@ -6961,49 +6358,16 @@ "dev": true }, "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } + "node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "dev": true }, "nopt": { "version": "3.0.6", @@ -7041,18 +6405,6 @@ "path-key": "^2.0.0" } }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, "nyc": { "version": "14.1.1", "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", @@ -7087,109 +6439,108 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.16.7" } }, "@babel/generator": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", - "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "dev": true, "requires": { - "@babel/types": "^7.9.5", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", - "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.9.5" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.16.7" } }, "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.16.7" } }, "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.0", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/traverse": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", - "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.5", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.0", - "@babel/types": "^7.9.5", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", - "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "append-transform": { @@ -7213,12 +6564,12 @@ } }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "default-require-extensions": { @@ -7434,6 +6785,12 @@ "strip-ansi": "^5.0.0" } }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", @@ -7470,12 +6827,6 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -7485,26 +6836,6 @@ "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "object-get": { @@ -7514,22 +6845,20 @@ "dev": true }, "object-hash": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", - "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==", - "dev": true - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", "dev": true }, "object-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", - "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", - "dev": true + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } }, "object-keys": { "version": "1.1.1", @@ -7538,9 +6867,9 @@ "dev": true }, "object-to-spawn-args": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz", - "integrity": "sha1-d9qIJ/Bz0BHJ4bFz+JV4FHAkZ4U=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", + "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", "dev": true }, "object-visit": { @@ -7552,27 +6881,6 @@ "isobject": "^3.0.0" } }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -7604,21 +6912,23 @@ } }, "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, "requires": { - "is-wsl": "^1.1.0" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" } }, "optionator": { @@ -7635,88 +6945,24 @@ "word-wrap": "~1.2.3" } }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -7736,18 +6982,22 @@ } }, "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } }, "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", "dev": true, "requires": { - "retry": "^0.12.0" + "@types/retry": "^0.12.0", + "retry": "^0.13.1" } }, "p-try": { @@ -7768,23 +7018,6 @@ "release-zalgo": "^1.0.0" } }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7794,20 +7027,6 @@ "callsites": "^3.0.0" } }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -7817,30 +7036,6 @@ "error-ex": "^1.2.0" } }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -7853,18 +7048,6 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -7877,12 +7060,6 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -7890,9 +7067,9 @@ "dev": true }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-to-regexp": { @@ -7918,23 +7095,16 @@ } } }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { @@ -7968,48 +7138,27 @@ } }, "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", "dev": true, "requires": { "async": "^2.6.2", "debug": "^3.1.1", - "mkdirp": "^0.5.1" + "mkdirp": "^0.5.5" }, "dependencies": { "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "requires": { - "ms": "^2.1.1" + "lodash": "^4.17.14" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, "post-robot": { "version": "8.0.29", "resolved": "https://registry.npmjs.org/post-robot/-/post-robot-8.0.29.tgz", @@ -8032,12 +7181,6 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -8050,81 +7193,30 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } } }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -8138,27 +7230,15 @@ "dev": true }, "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", "dev": true }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "randombytes": { @@ -8170,16 +7250,6 @@ "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -8187,13 +7257,13 @@ "dev": true }, "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", "dev": true, "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", + "bytes": "3.1.2", + "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -8235,24 +7305,21 @@ } }, "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "picomatch": "^2.2.1" } }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "resolve": "^1.9.0" } }, "reduce-extract": { @@ -8328,9 +7395,9 @@ } }, "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, "regenerator-runtime": { @@ -8358,16 +7425,37 @@ "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "regexpp": { @@ -8419,16 +7507,10 @@ "es6-error": "^4.0.1" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true }, "repeat-string": { @@ -8452,6 +7534,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -8474,41 +7562,33 @@ } }, "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "resolve-from": "^5.0.0" }, "dependencies": { "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } } }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -8538,15 +7618,21 @@ "dev": true }, "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, "rimraf": { @@ -8558,16 +7644,6 @@ "glob": "^7.1.3" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "run-applescript": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-3.2.0.tgz", @@ -8578,27 +7654,24 @@ } }, "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { - "aproba": "^1.1.1" + "queue-microtask": "^1.2.2" } }, "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -8626,13 +7699,14 @@ "dev": true }, "schema-utils": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } }, "select-hose": { @@ -8642,12 +7716,12 @@ "dev": true }, "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", "dev": true, "requires": { - "node-forge": "0.9.0" + "node-forge": "^1" } }, "semver": { @@ -8657,9 +7731,9 @@ "dev": true }, "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", "dev": true, "requires": { "debug": "2.6.9", @@ -8669,33 +7743,47 @@ "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.7.2", + "http-errors": "1.8.1", "mime": "1.6.0", - "ms": "2.1.1", + "ms": "2.1.3", "on-finished": "~2.3.0", "range-parser": "~1.2.1", "statuses": "~1.5.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } }, "serve-index": { "version": "1.9.1", @@ -8712,6 +7800,15 @@ "parseurl": "~1.3.2" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -8730,6 +7827,12 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", @@ -8739,15 +7842,15 @@ } }, "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.1" + "send": "0.17.2" } }, "set-blocking": { @@ -8766,39 +7869,29 @@ "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } } }, "shebang-command": { @@ -8817,9 +7910,9 @@ "dev": true }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "slash": { @@ -8863,23 +7956,20 @@ "use": "^3.1.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "ms": "2.0.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -8931,6 +8021,12 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true } } }, @@ -8941,201 +8037,116 @@ "dev": true, "requires": { "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", "dev": true, "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", "dev": true }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", - "dev": true, - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", - "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" }, "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" } }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true } } }, "sort-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-2.0.0.tgz", - "integrity": "sha1-OKnG2if9fRR7QuYFVPKBGHtN9HI=", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", + "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", "dev": true, "requires": { - "array-back": "^1.0.4", - "object-get": "^2.1.0", - "typical": "^2.6.0" + "array-back": "^5.0.0", + "typical": "^6.0.1" }, "dependencies": { "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, - "requires": { - "typical": "^2.6.0" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true + }, + "typical": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", + "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", + "dev": true } } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -9165,9 +8176,9 @@ } }, "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, "spawn-wrap": { @@ -9185,9 +8196,9 @@ } }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -9195,15 +8206,15 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -9211,9 +8222,9 @@ } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "spdy": { @@ -9230,12 +8241,12 @@ }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -9261,12 +8272,12 @@ }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -9295,6 +8306,27 @@ "dev": true, "requires": { "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "sprintf-js": { @@ -9304,12 +8336,12 @@ "dev": true }, "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.0.tgz", + "integrity": "sha512-Y1Z6J8UYnexKFN1R/hxUaYoY2LVdKEzziPmVAFKiKX8fiwvCJTVzn/xYE9TEWod5OVyNfIHHuVfIEuBClL/uJQ==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "minipass": "^3.1.1" } }, "static-extend": { @@ -9320,17 +8352,6 @@ "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } } }, "statuses": { @@ -9339,16 +8360,6 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, "stream-connect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", @@ -9369,35 +8380,6 @@ } } }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, "stream-via": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", @@ -9405,45 +8387,34 @@ "dev": true }, "streamroller": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", - "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.7.tgz", + "integrity": "sha512-kh68kwiDGuIPiPDWwRbEC5us+kfARP1e9AsQiaLaSqGrctOvMn0mtL8iNY3r4/o5nIoYi3gPI1jexguZsXDlxw==", "dev": true, "requires": { - "async": "^2.6.2", - "date-format": "^2.0.0", - "debug": "^3.2.6", - "fs-extra": "^7.0.1", - "lodash": "^4.17.14" + "date-format": "^4.0.7", + "debug": "^4.3.4", + "fs-extra": "^10.0.1" }, "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "ms": { @@ -9451,79 +8422,43 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true } } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9554,19 +8489,16 @@ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true }, "strip-json-comments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", - "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { @@ -9578,6 +8510,12 @@ "has-flag": "^3.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", @@ -9591,9 +8529,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "emoji-regex": { @@ -9657,13 +8595,13 @@ "taffydb": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "integrity": "sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==", "dev": true }, "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "temp-path": { @@ -9673,16 +8611,23 @@ "dev": true }, "terser": { - "version": "4.6.11", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.11.tgz", - "integrity": "sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map-support": "~0.5.20" }, "dependencies": { + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -9696,9 +8641,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -9708,94 +8653,27 @@ } }, "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", "dev": true, "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" + "terser": "^5.7.2" }, "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } }, "source-map": { @@ -9954,31 +8832,12 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -9988,18 +8847,6 @@ "os-tmpdir": "~1.0.2" } }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -10013,17 +8860,6 @@ "dev": true, "requires": { "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "to-regex": { @@ -10036,28 +8872,87 @@ "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } } }, "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" } }, "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, "trim-right": { @@ -10067,15 +8962,9 @@ "dev": true }, "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "type-check": { @@ -10103,12 +8992,6 @@ "mime-types": "~2.1.24" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, "typical": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", @@ -10116,9 +8999,9 @@ "dev": true }, "ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true }, "uc.micro": { @@ -10128,42 +9011,16 @@ "dev": true }, "uglify-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.1.tgz", - "integrity": "sha512-W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw==", + "version": "3.15.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", + "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", "dev": true, - "optional": true, - "requires": { - "commander": "~2.20.3", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true + "optional": true }, "underscore": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz", - "integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==", "dev": true }, "union-value": { @@ -10178,24 +9035,6 @@ "set-value": "^2.0.1" } }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -10248,16 +9087,10 @@ } } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -10269,57 +9102,12 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -10339,9 +9127,9 @@ "dev": true }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "validate-npm-package-license": { @@ -10360,627 +9148,368 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true }, "walk-back": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-3.0.1.tgz", - "integrity": "sha512-umiNB2qLO731Sxbp6cfZ9pwURJzTnftxE4Gc7hq8n/ehkuXC//s9F65IEIJA2ZytQZ1ZOsm/Fju4IWx0bivkUQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", + "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", "dev": true }, "watchpack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz", - "integrity": "sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", "dev": true, "requires": { - "chokidar": "^2.1.8", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" } }, "wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webpack": { - "version": "4.29.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.3.tgz", - "integrity": "sha512-xPJvFeB+8tUflXFq+OgdpiSnsCD5EANyv56co5q8q8+YtEasn5Sj3kzY44mta+csCIEB0vneSxnuaHkOL2h94A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "webpack-cli": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.2.3.tgz", - "integrity": "sha512-Ik3SjV6uJtWIAN5jp5ZuBMWEAaP5E4V78XJ2nI+paFPh8v4HPSwo/myN0r29Xc/6ZKnd2IdrAlpSgNOu2CDQ6Q==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.0", - "findup-sync": "^2.0.0", - "global-modules": "^1.0.0", - "import-local": "^2.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "supports-color": "^5.5.0", - "v8-compile-cache": "^2.0.2", - "yargs": "^12.0.4" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.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 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - } - }, - "webpack-dev-server": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz", - "integrity": "sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.2.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.6", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.25", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.4.0", - "spdy": "^4.0.1", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "12.0.5" + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "ms": "^2.1.1" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + } + } + }, + "webpack-cli": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", + "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "p-try": "^2.0.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "path-key": "^3.0.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "shebang-regex": "^3.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "isexe": "^2.0.0" } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + } + } + }, + "webpack-dev-server": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", + "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", + "dev": true, + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.2.2", + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" } }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } + "fast-deep-equal": "^3.1.3" } }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" } }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.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 || ^4.0.0", - "yargs-parser": "^11.1.1" + "ansi-regex": "^6.0.1" } }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" } + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true } } }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" } }, - "webpack-shell-plugin": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/webpack-shell-plugin/-/webpack-shell-plugin-0.5.0.tgz", - "integrity": "sha1-Kbih2A3erg3bEOcpZn9yhlPCx0I=", + "webpack-shell-plugin-next": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/webpack-shell-plugin-next/-/webpack-shell-plugin-next-2.2.2.tgz", + "integrity": "sha512-2HeC1e0cCvTgA3SD4XPAD69DnILM92mCschrtKdlLRORHCR+oG7xnibQMkVySxTAYWTQOcBRHlqa88x4syWwhQ==", "dev": true }, "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true }, "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", - "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", + "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "which": { @@ -10998,6 +9527,12 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, "wolfy87-eventemitter": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.4.tgz", @@ -11025,19 +9560,10 @@ "typical": "^2.6.1" } }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -11046,18 +9572,17 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, @@ -11077,12 +9602,12 @@ "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -11114,38 +9639,21 @@ } }, "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "xmlcreate": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", - "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", - "dev": true - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", "dev": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yallist": { @@ -11155,95 +9663,30 @@ "dev": true }, "yargs": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "yargs-parser": { - "version": "18.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", - "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, "zalgo-promise": { - "version": "1.0.44", - "resolved": "https://registry.npmjs.org/zalgo-promise/-/zalgo-promise-1.0.44.tgz", - "integrity": "sha512-CSQ1xh0vVwgrohObNdysPANonBV+3yl1Xy+qrtMWBvb/a0D/2OUNqb0GJvaAgGtP/gQawtiQAFil2bGSq8aoMA==" + "version": "1.0.48", + "resolved": "https://registry.npmjs.org/zalgo-promise/-/zalgo-promise-1.0.48.tgz", + "integrity": "sha512-LLHANmdm53+MucY9aOFIggzYtUdkSBFxUsy4glTTQYNyK6B3uCPWTbfiGvSrEvLojw0mSzyFJ1/RRLv+QMNdzQ==" } } } diff --git a/package.json b/package.json index 761be9f0..6a903418 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,15 @@ { "name": "@contentstack/ui-extensions-sdk", - "version": "2.2.0", + "version": "2.2.1", "description": "The Extensions SDK allows you to extend Contentstack’s UI by helping you create Custom Fields, Custom Widgets, and Dashboard Widgets.", "main": "dist/ui-extension-sdk.js", "scripts": { "test": "karma start --single-run --browsers ChromeHeadless karma.conf.js", "test-local": "karma start --single-run", "generate:docs": "node_modules/.bin/jsdoc --configure .jsdoc.json --verbose", - "build": "npx webpack" + "build": "npx webpack", + "generate:sri": "node ./subresourceIntegrity.js", + "generate:readme": "npm run generate:sri && npx @appnest/readme generate" }, "keywords": [ "contentstack", @@ -26,7 +28,7 @@ }, "license": "MIT", "devDependencies": { - "@babel/cli": "7.8.4", + "@babel/cli": "^7.17.6", "babel-eslint": "8.2.3", "babel-loader": "7.1.4", "babel-preset-env": "1.7.0", @@ -41,12 +43,13 @@ "istanbul-instrumenter-loader": "3.0.1", "jasmine": "3.3.0", "jasmine-core": "2.99.0", - "jsdoc": "3.6.3", - "jsdoc-to-markdown": "5.0.0", - "karma": "5.0.1", - "karma-chrome-launcher": "2.2.0", - "karma-coverage": "1.1.2", - "karma-coverage-istanbul-reporter": "2.0.1", + "jsdoc": "^3.6.10", + "jsdoc-to-markdown": "^7.1.1", + "jsonfile": "^6.1.0", + "karma": "^6.3.19", + "karma-chrome-launcher": "3.1.1", + "karma-coverage": "^2.2.0", + "karma-coverage-istanbul-reporter": "^3.0.3", "karma-eslint": "2.2.0", "karma-firefox-launcher": "1.1.0", "karma-jasmine": "1.1.2", @@ -55,12 +58,13 @@ "karma-sourcemap-loader": "0.3.7", "karma-spec-reporter": "0.0.32", "karma-summary-reporter": "1.5.2", - "karma-webpack": "4.0.0-rc.6", + "karma-webpack": "^5.0.0", "nyc": "14.1.1", - "webpack": "4.29.3", - "webpack-cli": "3.2.3", - "webpack-dev-server": "3.10.3", - "webpack-shell-plugin": "0.5.0" + "ssri": "^9.0.0", + "webpack": "^5.70.0", + "webpack-cli": "^4.9.2", + "webpack-dev-server": "^4.7.4", + "webpack-shell-plugin-next": "^2.2.2" }, "dependencies": { "post-robot": "8.0.29", diff --git a/subresourceIntegrity.js b/subresourceIntegrity.js new file mode 100644 index 00000000..e48b2d0d --- /dev/null +++ b/subresourceIntegrity.js @@ -0,0 +1,25 @@ +const ssri = require("ssri"); +const fs = require("fs"); +const jsonfile = require("jsonfile"); + +async function generateSRI() { + const blueprintPath = "./blueprint.json"; + + const sriJS = await ssri.fromStream( + fs.createReadStream("./dist/ui-extension-sdk.js") + ); + + const sriCSS = await ssri.fromStream( + fs.createReadStream("./dist/ui-extension-sdk.css") + ); + + const blueprint = JSON.parse(fs.readFileSync(blueprintPath)); + blueprint.subresourceIntegrity = { + js: sriJS.toString(), + css: sriCSS.toString(), + }; + + jsonfile.writeFile(blueprintPath, blueprint, { spaces: 2 }); +} + +generateSRI(); diff --git a/test/entrySpec.js b/test/entrySpec.js index c9d24779..744d110c 100755 --- a/test/entrySpec.js +++ b/test/entrySpec.js @@ -195,6 +195,16 @@ describe('Entry', function () { } }); + it('getField within Create page', function () { + const dataWithoutEntry = JSON.parse(JSON.stringify(testData)); + dataWithoutEntry.entry = {}; + // @ts-ignore + entry = new Entry({ data: dataWithoutEntry }, connection, emitter); + expect(() => entry.getField("invaliduid")).toThrowError( + "The data is unsaved. Save the data before requesting the field." + ); + }); + it('onUnPublish', function (done) { entry.onUnPublish(function () { expect(emitter.on).toHaveBeenCalledWith('entryUnPublish', jasmine.any(Function)); diff --git a/test/extensionSpec.js b/test/extensionSpec.js index 42f173c3..39ee80ae 100755 --- a/test/extensionSpec.js +++ b/test/extensionSpec.js @@ -1,8 +1,8 @@ -import testData from './data/testData.json'; +import originalTestData from './data/testData.json'; import Extension from '../lib/extension.js'; import ExtensionModule from 'inject-loader!../lib/extension.js'; - +let testData = JSON.parse(JSON.stringify(originalTestData)) describe('Extension', () => { let newExtension; let sendToParent = function (channel) { return Promise.resolve({ data: testData }); }; diff --git a/test/sdkSpec.js b/test/sdkSpec.js index bc2637e8..b526de23 100755 --- a/test/sdkSpec.js +++ b/test/sdkSpec.js @@ -2,6 +2,7 @@ import testData from './data/testData.json'; import ContentstackUIExtension from '../lib/index.js'; import MainModule from 'inject-loader!../lib/index.js'; import ExtensionModule from 'inject-loader!../lib/extension.js'; +import pkg from '../package.json'; describe('ContentstackUIExtension', () => { @@ -56,6 +57,6 @@ describe('ContentstackUIExtension', () => { }); it('SDK_VERSION', function () { - expect(newContentstackUIExtension.SDK_VERSION).toEqual('2.2.0'); + expect(newContentstackUIExtension.SDK_VERSION).toEqual(pkg.version); }); }); diff --git a/test/stackSpec.js b/test/stackSpec.js index 53cea073..bdcb81bc 100755 --- a/test/stackSpec.js +++ b/test/stackSpec.js @@ -187,7 +187,7 @@ describe("Stack", () => { entry.fetch() .then((data) => { expect(data).toEqual({}); - expect(connection.sendToParent).toHaveBeenCalledWith("stackQuery",{"uid":"xys","content_type_uid":"newblog","params":{"only":{"BASE":["title","title","deatials","sample"]}},"action":"getEntry"}); + expect(connection.sendToParent).toHaveBeenCalledWith("stackQuery",{"uid":"xys","content_type_uid":"newblog","params":{"only[BASE]":["title","title","deatials","sample"]},"action":"getEntry"}); done(); }); done() @@ -201,7 +201,7 @@ describe("Stack", () => { entry.fetch() .then((data) => { expect(data).toEqual({}); - expect(connection.sendToParent).toHaveBeenCalledWith("stackQuery",{"uid":"xys","content_type_uid":"newblog","params":{"except":{"title":[],"BASE":["title","deatials","sample"]}},"action":"getEntry"}); + expect(connection.sendToParent).toHaveBeenCalledWith("stackQuery",{"uid":"xys","content_type_uid":"newblog","params":{ "except[title]": [], "except[BASE]": [ 'title', 'deatials', 'sample' ] },"action":"getEntry"}); done(); }); done() diff --git a/webpack.config.js b/webpack.config.js index 343d0ba5..076a0ccb 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,5 +1,5 @@ const path = require('path'); -const WebpackShellPlugin = require('webpack-shell-plugin'); +const WebpackShellPlugin = require('webpack-shell-plugin-next'); module.exports = { entry: { @@ -28,7 +28,7 @@ module.exports = { }, { test: /\.js$/, loader: 'babel-loader', - query: { + options: { presets: ['env'] } }]