`.
+
+Change whatever stands behind `width:` to something smaller than your display width. Here's a screenshot of how it looks expanded: [imgur](https://i.imgur.com/QdqPNIg.png).
+
+**Q:** I worked on a brew for $x hours, and when I returned the next day, all changes were gone?
+**A:** This happens when you did not close the tab but closed the browser, or used the back button of your browser to return to your brew! If you return to your brew under these circumstances, the version of your brew you saved before is still loaded in the cache, so you need to refresh or reopen the page for your recent changes to be in said cache. If you start working on your brew without refreshing, all changes you made in the meantime are gone. Additionally, pay extra attention to the next question below!
+
+**Q:** Is there a way to restore a previous version of my brew?
+**A:** Currently, no. This would take too much of a toll on the amount of storage the homebrewery requires. This may be solved in the future.
+
+**Q:** The code and/or preview window of my brew are just blue, nothing else. Also, the version in the top displays 0.0.0.
+**A:** You have an error in the HTML you used in your brew. That's why the page can't render properly anymore. Click the Share button in the top right, then click the Source button in the top right, get your brew's code, create a new brew, paste the code in there, fix the HTML error, and you're done. At this point, you can also delete the old brew, it is not fixable.
+
+**Q:** I have important brews, but I can't access them anymore because [...]
+**A:** Most important thing to remember: Save early, save often. Also, check out the "Back Up Your Stuff!" section below for more information.
+
+## Text Issues
+**Q:** How do I resize text globally/locally?
+**A:** [Globally](https://old.reddit.com/r/homebrewery/comments/8bivc7/question_how_do_i_resize_text_globally/dx8et7c/) |
+[Locally](https://old.reddit.com/r/homebrewery/comments/9pvj0q/font_size_change/)
+
+**Q:** How do I use different fonts in my brews?
+**A:** The best way, I would say, is to transform the font you want to use into the base64 format, using a website such as [fontsquirrel.com](https://www.fontsquirrel.com/tools/webfont-generator). Once there, click "Expert..." and go all the way down to "CSS" and mark "Base64 encode" and "Yes, the fonts I'm uploading are legally eligible for web embedding." (make sure that they, infact, are!). Go back to the top and click "Upload font". Select the font file you want to use. Once the font is transformed, click "Download your kit" at the bottom. In the resulting .zip file, you will find a file named "stylesheet.css". Open it and copy all of its contents.
+
+Go to your homebrew and either add the copied information to your `` and paste the copied information there. You can then use `font-family: fontname`, where *fontname* is the part after `font-family: ` in the `@font-face` segment, to add that font to your brew.
+
+***Example:*** You want to have a different font for all elements with the `testFontClass` class. This is how you would go about that:
+
+1. Upload your font to [fontsquirrel.com](https://www.fontsquirrel.com/tools/webfont-generator) and have it base64 encoded.
+
+2. In the resulting .zip file, look for the .css file, open it, and copy its contents, which will look something like this (Your `url()` parts will be much longer, I removed most of it for the sake of readability):
+
+ @font-face {
+ font-family: 'testFont';
+ src: url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAA[...]+wEAAA=) format('woff2'),
+ url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAHTcABI[...]+wAAAADYwmAT) format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+
+3. In your homebrew, either add a `` section at the top or, if you already have one, add the copied `@font-face{ [...] }` to it.
+
+4. In that same `` tags to this file!). Upload said file to a place that is accessible to the homebrewery. Go to your brew, remove everything within your `` tags, and add this: `@import "https://my.website.com/MyHomebrewStyle.css";`
+
+Be aware that, should you change something in that css file, your homebrew will have to be reloaded for these changes to take effect.
+
+**Q:** How do I use different colors in my brews?
+**A:** [Described here](https://old.reddit.com/r/homebrewery/comments/9kesk1/changing_text_colour_to_white/)
+
+**Q:** How do I get a line break without indentation?
+**A:** [Described here](https://old.reddit.com/r/homebrewery/comments/8hmr50/getting_line_breaks_without_getting_a_new/)
+
+**Q:** How do I fix line indentations in monster statblocks?
+**A:** [Described here](https://old.reddit.com/r/homebrewery/comments/ag46i1/indentation_problem/)
+
+**Q:** When I write more text than fits into the two columns on the page, the text overflows into a third column and goes off-page. Why isn't a new page generated for the text?
+**A:** Auto-generating a new page via code lies between tricky and impossible. Use `\page` to create a new page manually. If you have an idea about how to implement auto-new-page-ing, head over to [GitHub](https://github.com/naturalcrit/homebrewery) and let us know.
+
+**Q:** Typing `#### Adhesion` in the formatting doesn't show the titling at all in the completed page?
+**A:** Whitelist homebrewery.naturalcrit.com in your ad-blocking software.
+
+## Paper Size
+**Q:** I have white borders on the bottom/sides of the print preview.
+**A:** The homebrewery paper size and your print paper size do not match.
+
+The default homebrewery paper size is “Letter.”
+
+If you are in the US (and you did not add the A4 snippet), in the "Print to PDF" window, click "More settings" and change "Paper size" to "Letter".
+
+If you are anywhere else, your default "Paper size" setting is most likely "A4" and you need to change it to "Letter" (as described above). You can also add the A4 snippet to the top of your brew to make it A4-sized.
+
+## Get PDF
+**Q:** Whenever I click on the "Get PDF" button, instead of getting a download, it opens Print Preview in another tab.
+**A:** Yes, this is by design. In the print preview, select "Save as PDF" as the Destination, and then click "Save". There will be a normal download dialog where you can save your brew as a PDF.
+
+---
+
+# PSAs
+
+## Back Up Your Stuff!
+
+By that I mean, when you brew, occasionally hit CTRL + A, CTRL + C, open a texteditor (on your local machine), CTRL + V your brew in there, and save that file.
+
+You can go as crazy as you want to be with that. Create one file per brew, that's fine. Create one file per brew per day you edit it, that's even better. Create one file per brew per day you edit it, save it in two or more separate (remote) locations? That's even more better (I do it that way ;) ).
+
+Whatever method you prefer, just do it.
+
+Also, see the "Backing Up Brews with a Bookmarklet", "Backing Up Brews with Linux" section, and the comments below.
+
+## Brewmasters
+
+
+We recently started the "Brewmasters" program, where we give out a special flair to users that have proven that they know what they are talking about when it comes to using the [Homebrewery](https://homebrewery.naturalcrit.com).
+
+The first member to earn this special flair is u/VexbaneAramori, who is a pillar of this community.
+
+Brewmasters can nominate other active users to become Brewmasters via ModMail as well.
+
+Thanks to all who help to make this community more helpful and welcoming. :)
+
+**18.05.2020 - Update:** We're happy to announce that u/Jintonix has joined the ranks of our Brewmasters. Welcome!
+
+---
+
+# Miscellaneous
+
+## Backing Up Brews with a Bookmarklet
+
+This solution was provided by u/garumoo in the [comments](https://www.reddit.com/r/homebrewery/comments/adh6lh/faqs_psas_announcements/edrvz8o/) of the old [PSA](https://www.reddit.com/r/homebrewery/comments/adh6lh/faqs_psas_announcements/).
+
+> Here is a handy bookmarklet for saving your brew
+>
+> Just create a new bookmark, put it onto your browser button bar, and edit it, changing the URL to:
+
+ javascript:(function() {var nav=document.getElementsByClassName('navContent')[0];var share=nav.querySelector('.navItem[icon="fa-share-alt"');var code=nav.querySelector('.navItem[icon="fa-code"');if(share||code){let brewtitle=document.getElementsByClassName('brewTitle')[0].innerText;let date=new Date();let dd=date.getDate();let mm=date.getMonth()+1;let yyyy=date.getFullYear();let hour=date.getHours();let mins=date.getMinutes();dd=dd<10?'0'+dd:dd;mm=mm<10?'0'+mm:mm;hour=hour<10?'0'+hour:hour;mins=mins<10?'0'+mins:mins;let dateString=`${yyyy}-${mm}-${dd}-${hour}${mins}`;let filename=brewtitle+'-'+dateString+'.md';var sourceuri=share?share.href.replace('share','source'):code.href;fetch(sourceuri).then((response)=>{if(response.ok){return response.text()}}).then((payload)=>{var div=document.createElement('div');div.innerHTML=payload;var brewtext=div.innerText;delete div;let data_uri='data:text/markdown; charset=UTF-8,'+encodeURIComponent(brewtext);var link=document.createElement("a");link.download=filename;link.href=data_uri;document.body.appendChild(link);link.click();document.body.removeChild(link);delete link})}})();
+
+> Then, while viewing either the edit or the share versions, just click the bookmarklet. It should then download as a text file named as Brewtitle-yyyy-mm-dd-hhmm.md
+>
+> The code doesn't sanitise the brewtitle so if you have a funky brewtitle and things blow up that's on you.
+
+## Backing Up Brews with Linux
+
+This following script was written by myself, u/Thurse. For an easier to use script, check out u/-Hydrargyros-'s [comment](https://www.reddit.com/r/homebrewery/comments/adh6lh/faqs_psas_announcements/ee9xtsw/) on the old [PSA](https://www.reddit.com/r/homebrewery/comments/adh6lh/faqs_psas_announcements/).
+
+Hello everyone,
+as of now, I'm pretty sure everyone has read our [PSA on Backing Up Your Stuff](https://old.reddit.com/r/homebrewery/comments/a0ubx1/psa_back_up_your_stuff/), as you should... :)
+
+In the PSA thread, u/sonaplayer offered a way to automatically back up your stuff via Google Docs. Although a good method, it can't handle larger brews, so it wasn't for me. I actually corresponded with u/sonaplayer on the topic, and said at one point "maybe someday I will write something in bash...". Well, "someday" was during the christmas holidays, so I present to you:
+
+A bash script to backup your brews!
+
+### How does this work?
+
+1. Go to https://pastebin.com/hkx0NXid and click "download".
+1a. You can actually look at the source code there to see how it works.
+2. Save the file as `backupBrews.sh` (this should be the default name already).
+2a. If it isn't already on a Linux system, transfer the file to one. Or use "[git bash for Windows](https://gitforwindows.org/)" or whatever tickles your fancy.
+3. Make sure you put it to a place where you have sufficient permissions to read, write, and create folders.
+4. The script should run on any Linux, I tested it on Raspbian and with "git bash for Windows".
+5. The simplest way to use this is `./backupBrews.sh -b BrewId` where the `BrewId` is the last part of the SHARE link: https://homebrewery.naturalcrit.com/share/*HereIsTheBrewId*. You don't need the whole link, just the `BrewId` part! Also, don't use the EDIT id, because that won't work.
+5a. There will be several checks, if they pass, your brew will be downloaded and "cleaned up". What does that mean? When you get the source of your brew, all the `<` will be replaced with `<` and all the `>` will be replaced with `>`. The clean up process turns all the `<` and `>` back into `<` and `>`, so that you can theoretically take the text from the .md file and paste it into the homebrewery, ready to go. **Be aware:** Clean up can take quite a while. My Raspberry Pi 3 B+ needs about 10 minutes to clean up my largest brew at ~1,000,000 characters.
+5b. A folder will be created in the current location of the script, named as follows: `./backup/BrewId/`
+5c. Inside that folder, a file named BrewId_YYYYMMDD_HHMMSS.md will be created.
+6. That's it. For advanced usage, see `--help` or the info below.
+
+### Advanced Usage
+
+Apparently, you are not content with the tool's basic function. That's cool, I wasn't either. :)
+
+There are some more options you can use, described in detail below.
+
+
+
+#### Mandatory Options
+
+* `-b BrewId`
+
+At least one `-b BrewId` is mandatory, else the program will exit. You can do however many brews at once as you like. Just make sure to use `-b BrewId`, and all's good.
+
+***Example.*** `./backupBrews.sh -b BrewId1 -b BrewId2 -b BrewId3`
+
+Instead of using the BrewId as the name for the folder and the file, you can give your brew a (short) name. You should avoid spaces and special characters. If you must, you can use quotes to have spaces in the name. BrewName and BrewId have to be separated via `::`.
+
+***Example.*** `./backupBrews.sh -b BrewName1::BrewId1`
+
+You can of course combine these options:
+
+***Example.*** `./backupBrews.sh -b BrewName1::BrewId1 -b BrewId2 -b "Dont use spaces"::BrewId3`
+
+
+
+#### Optional options
+
+* `--help`
+
+Show the help. This is the only option you can use without the `-b` option.
+
+
+
+* `-s`
+
+The tool is verbose by default. The `-s` option turns off all output. You are still able to get an exit status via `echo $?`.
+
+***Example.*** `./backupBrews.sh -s -b BrewId`
+
+
+
+* `-d dateformat`
+
+This changes the date format at the end of the backup file. Standard is `%Y%m%d_%H%M%S`. You can enter whatever is accepted by `date`. See `date --help` for more information. The example below gives you the current unix timestamp, so your filename would look something like this: `BrewId_1546297200.md`
+
+***Example.*** `./backupBrews.sh -d %s -b BrewId`
+
+
+
+* `-l location`
+
+This changes the savelocation of your backups. The example below puts the brew folders into a folder called "backup" in the home of the current user, like so: `~/backup/BrewId/BrewId_20190101_000000.md`. Be aware that this script will only create a folder for the brew, not folders above that. To use the example, if the folder `~/backup/` doesn't exist, this tool will not create that folder and simply exit.
+
+***Example.*** `./backupBrews.sh -l "~/backup/" -b BrewId`
+
+
+
+You can of course combine all of the options mentioned above:
+
+***Example.*** `./backupBrews.sh -s -d %s -l "~/backup/" -b BrewName1::BrewId1 -b BrewId2 -b "Dont use spaces"::BrewId3`
+
+---
+
+If you have any questions, feel free to ask.
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 2c0cf0095..a60d607d8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,51 +1,51 @@
{
"name": "homebrewery",
- "version": "2.13.4",
+ "version": "3.0.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "version": "2.13.4",
+ "version": "3.0.1",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "@babel/core": "^7.15.0",
+ "@babel/core": "^7.15.5",
"@babel/plugin-transform-runtime": "^7.15.0",
- "@babel/preset-env": "^7.15.0",
+ "@babel/preset-env": "^7.15.6",
"@babel/preset-react": "^7.14.5",
"body-parser": "^1.19.0",
"classnames": "^2.3.1",
- "codemirror": "^5.62.2",
+ "codemirror": "^5.63.1",
"cookie-parser": "^1.4.5",
"create-react-class": "^15.7.0",
- "dedent-tabs": "^0.9.0",
+ "dedent-tabs": "^0.10.1",
"express": "^4.17.1",
"express-async-handler": "^1.1.4",
"express-static-gzip": "2.1.1",
"fs-extra": "10.0.0",
- "googleapis": "84.0.0",
+ "googleapis": "88.2.0",
"jwt-simple": "^0.5.6",
"less": "^3.13.1",
"lodash": "^4.17.21",
- "marked": "2.1.3",
+ "marked": "3.0.4",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.1",
- "mongoose": "^5.13.7",
- "nanoid": "3.1.25",
+ "mongoose": "^6.0.8",
+ "nanoid": "3.1.28",
"nconf": "^0.11.3",
"prop-types": "15.7.2",
"query-string": "7.0.1",
"react": "^16.14.0",
"react-dom": "^16.14.0",
"react-frame-component": "4.1.3",
- "react-router-dom": "5.2.0",
+ "react-router-dom": "5.3.0",
"sanitize-filename": "1.6.3",
"superagent": "^6.1.0",
"vitreum": "git+https://git@github.com/calculuschild/vitreum.git"
},
"devDependencies": {
"eslint": "^7.32.0",
- "eslint-plugin-react": "^7.24.0",
+ "eslint-plugin-react": "^7.26.1",
"pico-check": "^2.1.3"
},
"engines": {
@@ -72,19 +72,19 @@
}
},
"node_modules/@babel/core": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz",
- "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==",
+ "version": "7.15.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz",
+ "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==",
"dependencies": {
"@babel/code-frame": "^7.14.5",
- "@babel/generator": "^7.15.0",
- "@babel/helper-compilation-targets": "^7.15.0",
- "@babel/helper-module-transforms": "^7.15.0",
- "@babel/helpers": "^7.14.8",
- "@babel/parser": "^7.15.0",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.15.0",
- "@babel/types": "^7.15.0",
+ "@babel/generator": "^7.15.4",
+ "@babel/helper-compilation-targets": "^7.15.4",
+ "@babel/helper-module-transforms": "^7.15.4",
+ "@babel/helpers": "^7.15.4",
+ "@babel/parser": "^7.15.5",
+ "@babel/template": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -146,11 +146,11 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz",
- "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
+ "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
"dependencies": {
- "@babel/types": "^7.15.0",
+ "@babel/types": "^7.15.4",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
},
@@ -167,11 +167,11 @@
}
},
"node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz",
- "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz",
+ "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==",
"dependencies": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
@@ -190,9 +190,9 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz",
- "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
+ "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
"dependencies": {
"@babel/compat-data": "^7.15.0",
"@babel/helper-validator-option": "^7.14.5",
@@ -215,16 +215,16 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.14.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz",
- "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz",
+ "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-member-expression-to-functions": "^7.14.5",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5"
+ "@babel/helper-annotate-as-pure": "^7.15.4",
+ "@babel/helper-function-name": "^7.15.4",
+ "@babel/helper-member-expression-to-functions": "^7.15.4",
+ "@babel/helper-optimise-call-expression": "^7.15.4",
+ "@babel/helper-replace-supers": "^7.15.4",
+ "@babel/helper-split-export-declaration": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
@@ -299,86 +299,86 @@
}
},
"node_modules/@babel/helper-function-name": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz",
- "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz",
+ "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==",
"dependencies": {
- "@babel/helper-get-function-arity": "^7.14.5",
- "@babel/template": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/helper-get-function-arity": "^7.15.4",
+ "@babel/template": "^7.15.4",
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-get-function-arity": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz",
- "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz",
+ "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==",
"dependencies": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-hoist-variables": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz",
- "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz",
+ "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==",
"dependencies": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz",
- "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz",
+ "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==",
"dependencies": {
- "@babel/types": "^7.15.0"
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz",
- "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz",
+ "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==",
"dependencies": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz",
- "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz",
+ "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==",
"dependencies": {
- "@babel/helper-module-imports": "^7.14.5",
- "@babel/helper-replace-supers": "^7.15.0",
- "@babel/helper-simple-access": "^7.14.8",
- "@babel/helper-split-export-declaration": "^7.14.5",
+ "@babel/helper-module-imports": "^7.15.4",
+ "@babel/helper-replace-supers": "^7.15.4",
+ "@babel/helper-simple-access": "^7.15.4",
+ "@babel/helper-split-export-declaration": "^7.15.4",
"@babel/helper-validator-identifier": "^7.14.9",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.15.0",
- "@babel/types": "^7.15.0"
+ "@babel/template": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz",
- "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz",
+ "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==",
"dependencies": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
@@ -393,60 +393,60 @@
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz",
- "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz",
+ "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-wrap-function": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/helper-annotate-as-pure": "^7.15.4",
+ "@babel/helper-wrap-function": "^7.15.4",
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz",
- "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz",
+ "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==",
"dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.15.0",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/traverse": "^7.15.0",
- "@babel/types": "^7.15.0"
+ "@babel/helper-member-expression-to-functions": "^7.15.4",
+ "@babel/helper-optimise-call-expression": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz",
- "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz",
+ "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==",
"dependencies": {
- "@babel/types": "^7.14.8"
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz",
- "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz",
+ "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==",
"dependencies": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-split-export-declaration": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz",
- "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz",
+ "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==",
"dependencies": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
@@ -469,27 +469,27 @@
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz",
- "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz",
+ "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==",
"dependencies": {
- "@babel/helper-function-name": "^7.14.5",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/helper-function-name": "^7.15.4",
+ "@babel/template": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.8.tgz",
- "integrity": "sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz",
+ "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==",
"dependencies": {
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.14.8",
- "@babel/types": "^7.14.8"
+ "@babel/template": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
@@ -538,9 +538,9 @@
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"node_modules/@babel/parser": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.0.tgz",
- "integrity": "sha512-0v7oNOjr6YT9Z2RAOTv4T9aP+ubfx4Q/OhVtAet7PFDt0t9Oy6Jn+/rfC6b8HJ5zEqrQCiMxJfgtHpmIminmJQ==",
+ "version": "7.15.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.5.tgz",
+ "integrity": "sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -549,12 +549,12 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz",
- "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz",
+ "integrity": "sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4",
"@babel/plugin-proposal-optional-chaining": "^7.14.5"
},
"engines": {
@@ -565,12 +565,12 @@
}
},
"node_modules/@babel/plugin-proposal-async-generator-functions": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz",
- "integrity": "sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz",
+ "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.14.5",
+ "@babel/helper-remap-async-to-generator": "^7.15.4",
"@babel/plugin-syntax-async-generators": "^7.8.4"
},
"engines": {
@@ -596,11 +596,11 @@
}
},
"node_modules/@babel/plugin-proposal-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz",
- "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz",
+ "integrity": "sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.14.5",
+ "@babel/helper-create-class-features-plugin": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
@@ -702,15 +702,15 @@
}
},
"node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz",
- "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==",
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz",
+ "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==",
"dependencies": {
- "@babel/compat-data": "^7.14.7",
- "@babel/helper-compilation-targets": "^7.14.5",
+ "@babel/compat-data": "^7.15.0",
+ "@babel/helper-compilation-targets": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.14.5"
+ "@babel/plugin-transform-parameters": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
@@ -766,12 +766,12 @@
}
},
"node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz",
+ "integrity": "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-create-class-features-plugin": "^7.14.5",
+ "@babel/helper-annotate-as-pure": "^7.15.4",
+ "@babel/helper-create-class-features-plugin": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
@@ -1016,9 +1016,9 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz",
- "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==",
+ "version": "7.15.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz",
+ "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -1030,16 +1030,16 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz",
- "integrity": "sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz",
+ "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-optimise-call-expression": "^7.14.5",
+ "@babel/helper-annotate-as-pure": "^7.15.4",
+ "@babel/helper-function-name": "^7.15.4",
+ "@babel/helper-optimise-call-expression": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.15.4",
+ "@babel/helper-split-export-declaration": "^7.15.4",
"globals": "^11.1.0"
},
"engines": {
@@ -1130,9 +1130,9 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz",
- "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz",
+ "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -1203,13 +1203,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz",
- "integrity": "sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz",
+ "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.15.0",
+ "@babel/helper-module-transforms": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-simple-access": "^7.14.8",
+ "@babel/helper-simple-access": "^7.15.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
"engines": {
@@ -1220,14 +1220,14 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz",
- "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz",
+ "integrity": "sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==",
"dependencies": {
- "@babel/helper-hoist-variables": "^7.14.5",
- "@babel/helper-module-transforms": "^7.14.5",
+ "@babel/helper-hoist-variables": "^7.15.4",
+ "@babel/helper-module-transforms": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-validator-identifier": "^7.14.5",
+ "@babel/helper-validator-identifier": "^7.14.9",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
"engines": {
@@ -1296,9 +1296,9 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz",
- "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz",
+ "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -1540,29 +1540,29 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.0.tgz",
- "integrity": "sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q==",
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz",
+ "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==",
"dependencies": {
"@babel/compat-data": "^7.15.0",
- "@babel/helper-compilation-targets": "^7.15.0",
+ "@babel/helper-compilation-targets": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
"@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5",
- "@babel/plugin-proposal-async-generator-functions": "^7.14.9",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4",
+ "@babel/plugin-proposal-async-generator-functions": "^7.15.4",
"@babel/plugin-proposal-class-properties": "^7.14.5",
- "@babel/plugin-proposal-class-static-block": "^7.14.5",
+ "@babel/plugin-proposal-class-static-block": "^7.15.4",
"@babel/plugin-proposal-dynamic-import": "^7.14.5",
"@babel/plugin-proposal-export-namespace-from": "^7.14.5",
"@babel/plugin-proposal-json-strings": "^7.14.5",
"@babel/plugin-proposal-logical-assignment-operators": "^7.14.5",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
"@babel/plugin-proposal-numeric-separator": "^7.14.5",
- "@babel/plugin-proposal-object-rest-spread": "^7.14.7",
+ "@babel/plugin-proposal-object-rest-spread": "^7.15.6",
"@babel/plugin-proposal-optional-catch-binding": "^7.14.5",
"@babel/plugin-proposal-optional-chaining": "^7.14.5",
"@babel/plugin-proposal-private-methods": "^7.14.5",
- "@babel/plugin-proposal-private-property-in-object": "^7.14.5",
+ "@babel/plugin-proposal-private-property-in-object": "^7.15.4",
"@babel/plugin-proposal-unicode-property-regex": "^7.14.5",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
@@ -1581,25 +1581,25 @@
"@babel/plugin-transform-arrow-functions": "^7.14.5",
"@babel/plugin-transform-async-to-generator": "^7.14.5",
"@babel/plugin-transform-block-scoped-functions": "^7.14.5",
- "@babel/plugin-transform-block-scoping": "^7.14.5",
- "@babel/plugin-transform-classes": "^7.14.9",
+ "@babel/plugin-transform-block-scoping": "^7.15.3",
+ "@babel/plugin-transform-classes": "^7.15.4",
"@babel/plugin-transform-computed-properties": "^7.14.5",
"@babel/plugin-transform-destructuring": "^7.14.7",
"@babel/plugin-transform-dotall-regex": "^7.14.5",
"@babel/plugin-transform-duplicate-keys": "^7.14.5",
"@babel/plugin-transform-exponentiation-operator": "^7.14.5",
- "@babel/plugin-transform-for-of": "^7.14.5",
+ "@babel/plugin-transform-for-of": "^7.15.4",
"@babel/plugin-transform-function-name": "^7.14.5",
"@babel/plugin-transform-literals": "^7.14.5",
"@babel/plugin-transform-member-expression-literals": "^7.14.5",
"@babel/plugin-transform-modules-amd": "^7.14.5",
- "@babel/plugin-transform-modules-commonjs": "^7.15.0",
- "@babel/plugin-transform-modules-systemjs": "^7.14.5",
+ "@babel/plugin-transform-modules-commonjs": "^7.15.4",
+ "@babel/plugin-transform-modules-systemjs": "^7.15.4",
"@babel/plugin-transform-modules-umd": "^7.14.5",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.14.9",
"@babel/plugin-transform-new-target": "^7.14.5",
"@babel/plugin-transform-object-super": "^7.14.5",
- "@babel/plugin-transform-parameters": "^7.14.5",
+ "@babel/plugin-transform-parameters": "^7.15.4",
"@babel/plugin-transform-property-literals": "^7.14.5",
"@babel/plugin-transform-regenerator": "^7.14.5",
"@babel/plugin-transform-reserved-words": "^7.14.5",
@@ -1611,7 +1611,7 @@
"@babel/plugin-transform-unicode-escapes": "^7.14.5",
"@babel/plugin-transform-unicode-regex": "^7.14.5",
"@babel/preset-modules": "^0.1.4",
- "@babel/types": "^7.15.0",
+ "@babel/types": "^7.15.6",
"babel-plugin-polyfill-corejs2": "^0.2.2",
"babel-plugin-polyfill-corejs3": "^0.2.2",
"babel-plugin-polyfill-regenerator": "^0.2.2",
@@ -1665,11 +1665,14 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
- "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
+ "version": "7.15.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz",
+ "integrity": "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==",
"dependencies": {
"regenerator-runtime": "^0.13.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
"node_modules/@babel/runtime/node_modules/regenerator-runtime": {
@@ -1678,30 +1681,30 @@
"integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
},
"node_modules/@babel/template": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz",
- "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz",
+ "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==",
"dependencies": {
"@babel/code-frame": "^7.14.5",
- "@babel/parser": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/parser": "^7.15.4",
+ "@babel/types": "^7.15.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz",
- "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz",
+ "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==",
"dependencies": {
"@babel/code-frame": "^7.14.5",
- "@babel/generator": "^7.15.0",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-hoist-variables": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5",
- "@babel/parser": "^7.15.0",
- "@babel/types": "^7.15.0",
+ "@babel/generator": "^7.15.4",
+ "@babel/helper-function-name": "^7.15.4",
+ "@babel/helper-hoist-variables": "^7.15.4",
+ "@babel/helper-split-export-declaration": "^7.15.4",
+ "@babel/parser": "^7.15.4",
+ "@babel/types": "^7.15.4",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -1734,9 +1737,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/@babel/types": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz",
- "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==",
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
+ "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
"dependencies": {
"@babel/helper-validator-identifier": "^7.14.9",
"to-fast-properties": "^2.0.0"
@@ -1862,32 +1865,29 @@
"node": ">=6"
}
},
- "node_modules/@types/bson": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz",
- "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@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=="
},
- "node_modules/@types/mongodb": {
- "version": "3.6.17",
- "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.17.tgz",
- "integrity": "sha512-9hhgvYPdC5iHyyksPcKCu45gfaAIPQHKHGdvNXu4582DmOZX3wrUJIJPT40o4G1oTKPgpMMFqZglOTjhnYoF+A==",
- "dependencies": {
- "@types/bson": "*",
- "@types/node": "*"
- }
- },
"node_modules/@types/node": {
- "version": "15.6.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz",
- "integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA=="
+ "version": "16.9.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
+ "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="
+ },
+ "node_modules/@types/webidl-conversions": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
+ "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
+ },
+ "node_modules/@types/whatwg-url": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
+ "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/webidl-conversions": "*"
+ }
},
"node_modules/abbrev": {
"version": "1.1.1",
@@ -2407,20 +2407,6 @@
"file-uri-to-path": "1.0.0"
}
},
- "node_modules/bl": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
- "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
- "dependencies": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/bluebird": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
- "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
- },
"node_modules/bn.js": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
@@ -2803,11 +2789,37 @@
"integrity": "sha512-4i3T0cwnHo1O4Mnp9JniEco8bZiXoqbm3PhW5hv7uu8YLg35iajYrRnNyKFaN8/8SSTskU2hYqVTeYVPceSpUA=="
},
"node_modules/bson": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
- "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==",
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-4.5.2.tgz",
+ "integrity": "sha512-8CEMJpwc7qlQtrn2rney38jQSEeMar847lz0LyitwRmVknAW8iHXrzW4fTjHfyWm0E3sukyD/zppdH+QU1QefA==",
+ "dependencies": {
+ "buffer": "^5.6.0"
+ },
"engines": {
- "node": ">=0.6.19"
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/bson/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
}
},
"node_modules/buffer": {
@@ -3126,9 +3138,9 @@
}
},
"node_modules/codemirror": {
- "version": "5.62.2",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.62.2.tgz",
- "integrity": "sha512-tVFMUa4J3Q8JUd1KL9yQzQB0/BJt7ZYZujZmTPgo/54Lpuq3ez4C8x/ATUY/wv7b7X3AUq8o3Xd+2C5ZrCGWHw=="
+ "version": "5.63.1",
+ "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.63.1.tgz",
+ "integrity": "sha512-baivaNZreZOGh1/tYyTvCupC9NeWk7qlZeGUDi4nFKj/J0JU8FYKZND4QqLw70P7HOttlCt4JJAOj9GoIhHEkA=="
},
"node_modules/collection-visit": {
"version": "1.0.0",
@@ -3455,9 +3467,9 @@
}
},
"node_modules/dedent-tabs": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/dedent-tabs/-/dedent-tabs-0.9.0.tgz",
- "integrity": "sha512-XpJr3b3pX6XHK0MDE9/hF2AxAIqzeBhBWqQ22PlzEZFqR31N8x44+e/iML76cwVvhjVqk1BqZeTBS9BrccMJlA=="
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/dedent-tabs/-/dedent-tabs-0.10.1.tgz",
+ "integrity": "sha512-BLwWIXQnJAxhCL+kDN4g/KItzG9glaw1cFglr+pql8W4lTADsZxC0QpolcRXO2M4+bI2/MXCGeg0WPuzeM3SYQ=="
},
"node_modules/deep-extend": {
"version": "0.6.0",
@@ -3515,9 +3527,9 @@
}
},
"node_modules/denque": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
- "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz",
+ "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==",
"engines": {
"node": ">=0.10"
}
@@ -3856,22 +3868,24 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.24.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz",
- "integrity": "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==",
+ "version": "7.26.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz",
+ "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==",
"dev": true,
"dependencies": {
"array-includes": "^3.1.3",
"array.prototype.flatmap": "^1.2.4",
"doctrine": "^2.1.0",
- "has": "^1.0.3",
+ "estraverse": "^5.2.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.0.4",
"object.entries": "^1.1.4",
"object.fromentries": "^2.0.4",
+ "object.hasown": "^1.0.0",
"object.values": "^1.1.4",
"prop-types": "^15.7.2",
"resolve": "^2.0.0-next.3",
+ "semver": "^6.3.0",
"string.prototype.matchall": "^4.0.5"
},
"engines": {
@@ -3893,6 +3907,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/eslint-plugin-react/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
"node_modules/eslint-plugin-react/node_modules/resolve": {
"version": "2.0.0-next.3",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
@@ -3903,6 +3926,15 @@
"path-parse": "^1.0.6"
}
},
+ "node_modules/eslint-plugin-react/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@@ -4781,9 +4813,9 @@
}
},
"node_modules/googleapis": {
- "version": "84.0.0",
- "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-84.0.0.tgz",
- "integrity": "sha512-5WWLwmraulw3p55lu0gNpLz2FME1gcuR7QxgmUdAVHMiVN4LEasYjJV9p36gxcf2TMe6bn6+PgQ/63+CvBEgoQ==",
+ "version": "88.2.0",
+ "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-88.2.0.tgz",
+ "integrity": "sha512-z3iDvGVqaJ+4TZ7YulK530q5vkY0BifvAWqcu2JiUSgpnIHzsA89k005+McoaYB+lAgv7lPY2Y4OPMT6iloWRA==",
"dependencies": {
"google-auth-library": "^7.0.2",
"googleapis-common": "^5.0.2"
@@ -5961,14 +5993,14 @@
}
},
"node_modules/marked": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz",
- "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.4.tgz",
+ "integrity": "sha512-jBo8AOayNaEcvBhNobg6/BLhdsK3NvnKWJg33MAAPbvTWiG4QBn9gpW1+7RssrKu4K1dKlN+0goVQwV41xEfOA==",
"bin": {
"marked": "bin/marked"
},
"engines": {
- "node": ">= 10"
+ "node": ">= 12"
}
},
"node_modules/markedLegacy": {
@@ -6185,15 +6217,6 @@
"node": ">=4"
}
},
- "node_modules/mini-create-react-context": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz",
- "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==",
- "dependencies": {
- "@babel/runtime": "^7.5.5",
- "tiny-warning": "^1.0.3"
- }
- },
"node_modules/minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
@@ -6283,116 +6306,100 @@
}
},
"node_modules/mongodb": {
- "version": "3.6.11",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.11.tgz",
- "integrity": "sha512-4Y4lTFHDHZZdgMaHmojtNAlqkvddX2QQBEN0K//GzxhGwlI9tZ9R0vhbjr1Decw+TF7qK0ZLjQT292XgHRRQgw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.1.1.tgz",
+ "integrity": "sha512-fbACrWEyvr6yl0sSiCGV0sqEiBwTtDJ8iSojmkDjAfw9JnOZSAkUyv9seFSPYhPPKwxp1PDtyjvBNfMDz0WBLQ==",
"dependencies": {
- "bl": "^2.2.1",
- "bson": "^1.1.4",
- "denque": "^1.4.1",
- "optional-require": "^1.0.3",
- "safe-buffer": "^5.1.2"
+ "bson": "^4.5.1",
+ "denque": "^1.5.0",
+ "mongodb-connection-string-url": "^2.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=12.9.0"
},
"optionalDependencies": {
"saslprep": "^1.0.0"
- },
- "peerDependenciesMeta": {
- "aws4": {
- "optional": true
- },
- "bson-ext": {
- "optional": true
- },
- "kerberos": {
- "optional": true
- },
- "mongodb-client-encryption": {
- "optional": true
- },
- "mongodb-extjson": {
- "optional": true
- },
- "snappy": {
- "optional": true
- }
+ }
+ },
+ "node_modules/mongodb-connection-string-url": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.0.0.tgz",
+ "integrity": "sha512-M0I1vyLoq5+HQTuPSJWbt+hIXsMCfE8sS1fS5mvP9R2DOMoi2ZD32yWqgBIITyu0dFu4qtS50erxKjvUeBiyog==",
+ "dependencies": {
+ "@types/whatwg-url": "^8.2.1",
+ "whatwg-url": "^9.1.0"
}
},
"node_modules/mongoose": {
- "version": "5.13.7",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.7.tgz",
- "integrity": "sha512-ADIvftZ+KfoTALMZ0n8HvBlezFhcUd73hQaHQDwQ+3X+JZlqE47fUy9yhFZ2SjT+qzmuaCcIXCfhewIc38t2fQ==",
+ "version": "6.0.8",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.0.8.tgz",
+ "integrity": "sha512-7XZ5TUoDtF8af7+mKfL58s8dN2BKmldQPTlmkb41PaRAleBVGeAck7Mj6JlIh9SOCi+64GT+afebiJaeyXe1Lw==",
"dependencies": {
- "@types/mongodb": "^3.5.27",
- "bson": "^1.1.4",
+ "bson": "^4.2.2",
"kareem": "2.3.2",
- "mongodb": "3.6.11",
- "mongoose-legacy-pluralize": "1.0.2",
- "mpath": "0.8.3",
- "mquery": "3.2.5",
+ "mongodb": "4.1.1",
+ "mpath": "0.8.4",
+ "mquery": "4.0.0",
"ms": "2.1.2",
- "optional-require": "1.0.x",
"regexp-clone": "1.0.0",
- "safe-buffer": "5.2.1",
"sift": "13.5.2",
"sliced": "1.0.1"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">=12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mongoose"
}
},
- "node_modules/mongoose-legacy-pluralize": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
- "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
- },
"node_modules/mongoose/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
- "node_modules/mongoose/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
"node_modules/mpath": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz",
- "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==",
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz",
+ "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==",
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/mquery": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz",
- "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz",
+ "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==",
"dependencies": {
- "bluebird": "3.5.1",
- "debug": "3.1.0",
+ "debug": "4.x",
"regexp-clone": "^1.0.0",
- "safe-buffer": "5.1.2",
"sliced": "1.0.1"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">=12.0.0"
}
},
"node_modules/mquery/node_modules/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.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dependencies": {
- "ms": "2.0.0"
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
+ "node_modules/mquery/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -6405,9 +6412,9 @@
"optional": true
},
"node_modules/nanoid": {
- "version": "3.1.25",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz",
- "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==",
+ "version": "3.1.28",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz",
+ "integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -6727,6 +6734,19 @@
"node": ">= 0.4"
}
},
+ "node_modules/object.hasown": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.0.0.tgz",
+ "integrity": "sha512-qYMF2CLIjxxLGleeM0jrcB4kiv3loGVAjKQKvH8pSU/i2VcRRvUNmxbD+nEMmrXRfORhuVJuH8OtSYCZoue3zA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/object.pick": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
@@ -6774,14 +6794,6 @@
"wrappy": "1"
}
},
- "node_modules/optional-require": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz",
- "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -7287,12 +7299,42 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
"integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q=="
},
- "node_modules/react-router": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz",
- "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==",
+ "node_modules/react-router-dom": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.0.tgz",
+ "integrity": "sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ==",
"dependencies": {
- "@babel/runtime": "^7.1.2",
+ "@babel/runtime": "^7.12.13",
+ "history": "^4.9.0",
+ "loose-envify": "^1.3.1",
+ "prop-types": "^15.6.2",
+ "react-router": "5.2.1",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=15"
+ }
+ },
+ "node_modules/react-router-dom/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "node_modules/react-router-dom/node_modules/path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dependencies": {
+ "isarray": "0.0.1"
+ }
+ },
+ "node_modules/react-router-dom/node_modules/react-router": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.1.tgz",
+ "integrity": "sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.13",
"history": "^4.9.0",
"hoist-non-react-statics": "^3.1.0",
"loose-envify": "^1.3.1",
@@ -7302,75 +7344,22 @@
"react-is": "^16.6.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
- }
- },
- "node_modules/react-router-dom": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz",
- "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==",
- "dependencies": {
- "@babel/runtime": "^7.1.2",
- "history": "^4.9.0",
- "loose-envify": "^1.3.1",
- "prop-types": "^15.6.2",
- "react-router": "5.2.0",
- "tiny-invariant": "^1.0.2",
- "tiny-warning": "^1.0.0"
- }
- },
- "node_modules/react-router-dom/node_modules/prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.8.1"
- }
- },
- "node_modules/react-router-dom/node_modules/prop-types/node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
},
- "bin": {
- "loose-envify": "cli.js"
+ "peerDependencies": {
+ "react": ">=15"
}
},
- "node_modules/react-router/node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "node_modules/react-router/node_modules/path-to-regexp": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
- "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "node_modules/react-router-dom/node_modules/react-router/node_modules/mini-create-react-context": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz",
+ "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==",
"dependencies": {
- "isarray": "0.0.1"
- }
- },
- "node_modules/react-router/node_modules/prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.8.1"
- }
- },
- "node_modules/react-router/node_modules/prop-types/node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
+ "@babel/runtime": "^7.12.1",
+ "tiny-warning": "^1.0.3"
},
- "bin": {
- "loose-envify": "cli.js"
+ "peerDependencies": {
+ "prop-types": "^15.0.0",
+ "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
}
},
"node_modules/read-only-stream": {
@@ -8693,6 +8682,25 @@
"nodetouch": "bin/nodetouch.js"
}
},
+ "node_modules/tr46": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tr46/node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/truncate-utf8-bytes": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
@@ -9362,6 +9370,26 @@
"node": ">=0.10.0"
}
},
+ "node_modules/webidl-conversions": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
+ "engines": {
+ "node": ">=10.4"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz",
+ "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==",
+ "dependencies": {
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -9529,19 +9557,19 @@
"integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA=="
},
"@babel/core": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz",
- "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==",
+ "version": "7.15.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz",
+ "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==",
"requires": {
"@babel/code-frame": "^7.14.5",
- "@babel/generator": "^7.15.0",
- "@babel/helper-compilation-targets": "^7.15.0",
- "@babel/helper-module-transforms": "^7.15.0",
- "@babel/helpers": "^7.14.8",
- "@babel/parser": "^7.15.0",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.15.0",
- "@babel/types": "^7.15.0",
+ "@babel/generator": "^7.15.4",
+ "@babel/helper-compilation-targets": "^7.15.4",
+ "@babel/helper-module-transforms": "^7.15.4",
+ "@babel/helpers": "^7.15.4",
+ "@babel/parser": "^7.15.5",
+ "@babel/template": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -9584,11 +9612,11 @@
}
},
"@babel/generator": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz",
- "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
+ "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
"requires": {
- "@babel/types": "^7.15.0",
+ "@babel/types": "^7.15.4",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
},
@@ -9601,11 +9629,11 @@
}
},
"@babel/helper-annotate-as-pure": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz",
- "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz",
+ "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==",
"requires": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-builder-binary-assignment-operator-visitor": {
@@ -9618,9 +9646,9 @@
}
},
"@babel/helper-compilation-targets": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz",
- "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
+ "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
"requires": {
"@babel/compat-data": "^7.15.0",
"@babel/helper-validator-option": "^7.14.5",
@@ -9636,16 +9664,16 @@
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.14.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz",
- "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz",
+ "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-member-expression-to-functions": "^7.14.5",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5"
+ "@babel/helper-annotate-as-pure": "^7.15.4",
+ "@babel/helper-function-name": "^7.15.4",
+ "@babel/helper-member-expression-to-functions": "^7.15.4",
+ "@babel/helper-optimise-call-expression": "^7.15.4",
+ "@babel/helper-replace-supers": "^7.15.4",
+ "@babel/helper-split-export-declaration": "^7.15.4"
}
},
"@babel/helper-create-regexp-features-plugin": {
@@ -9701,68 +9729,68 @@
}
},
"@babel/helper-function-name": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz",
- "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz",
+ "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==",
"requires": {
- "@babel/helper-get-function-arity": "^7.14.5",
- "@babel/template": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/helper-get-function-arity": "^7.15.4",
+ "@babel/template": "^7.15.4",
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz",
- "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz",
+ "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==",
"requires": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-hoist-variables": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz",
- "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz",
+ "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==",
"requires": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz",
- "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz",
+ "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==",
"requires": {
- "@babel/types": "^7.15.0"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-module-imports": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz",
- "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz",
+ "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==",
"requires": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-module-transforms": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz",
- "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz",
+ "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==",
"requires": {
- "@babel/helper-module-imports": "^7.14.5",
- "@babel/helper-replace-supers": "^7.15.0",
- "@babel/helper-simple-access": "^7.14.8",
- "@babel/helper-split-export-declaration": "^7.14.5",
+ "@babel/helper-module-imports": "^7.15.4",
+ "@babel/helper-replace-supers": "^7.15.4",
+ "@babel/helper-simple-access": "^7.15.4",
+ "@babel/helper-split-export-declaration": "^7.15.4",
"@babel/helper-validator-identifier": "^7.14.9",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.15.0",
- "@babel/types": "^7.15.0"
+ "@babel/template": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-optimise-call-expression": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz",
- "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz",
+ "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==",
"requires": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-plugin-utils": {
@@ -9771,48 +9799,48 @@
"integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ=="
},
"@babel/helper-remap-async-to-generator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz",
- "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz",
+ "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-wrap-function": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/helper-annotate-as-pure": "^7.15.4",
+ "@babel/helper-wrap-function": "^7.15.4",
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-replace-supers": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz",
- "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz",
+ "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==",
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.15.0",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/traverse": "^7.15.0",
- "@babel/types": "^7.15.0"
+ "@babel/helper-member-expression-to-functions": "^7.15.4",
+ "@babel/helper-optimise-call-expression": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-simple-access": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz",
- "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz",
+ "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==",
"requires": {
- "@babel/types": "^7.14.8"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz",
- "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz",
+ "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==",
"requires": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz",
- "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz",
+ "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==",
"requires": {
- "@babel/types": "^7.14.5"
+ "@babel/types": "^7.15.4"
}
},
"@babel/helper-validator-identifier": {
@@ -9826,24 +9854,24 @@
"integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow=="
},
"@babel/helper-wrap-function": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz",
- "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz",
+ "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==",
"requires": {
- "@babel/helper-function-name": "^7.14.5",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/helper-function-name": "^7.15.4",
+ "@babel/template": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4"
}
},
"@babel/helpers": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.8.tgz",
- "integrity": "sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz",
+ "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==",
"requires": {
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.14.8",
- "@babel/types": "^7.14.8"
+ "@babel/template": "^7.15.4",
+ "@babel/traverse": "^7.15.4",
+ "@babel/types": "^7.15.4"
}
},
"@babel/highlight": {
@@ -9882,27 +9910,27 @@
}
},
"@babel/parser": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.0.tgz",
- "integrity": "sha512-0v7oNOjr6YT9Z2RAOTv4T9aP+ubfx4Q/OhVtAet7PFDt0t9Oy6Jn+/rfC6b8HJ5zEqrQCiMxJfgtHpmIminmJQ=="
+ "version": "7.15.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.5.tgz",
+ "integrity": "sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg=="
},
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz",
- "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz",
+ "integrity": "sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==",
"requires": {
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4",
"@babel/plugin-proposal-optional-chaining": "^7.14.5"
}
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz",
- "integrity": "sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz",
+ "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==",
"requires": {
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.14.5",
+ "@babel/helper-remap-async-to-generator": "^7.15.4",
"@babel/plugin-syntax-async-generators": "^7.8.4"
}
},
@@ -9916,11 +9944,11 @@
}
},
"@babel/plugin-proposal-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz",
- "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz",
+ "integrity": "sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.14.5",
+ "@babel/helper-create-class-features-plugin": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
}
@@ -9980,15 +10008,15 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz",
- "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==",
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz",
+ "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==",
"requires": {
- "@babel/compat-data": "^7.14.7",
- "@babel/helper-compilation-targets": "^7.14.5",
+ "@babel/compat-data": "^7.15.0",
+ "@babel/helper-compilation-targets": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.14.5"
+ "@babel/plugin-transform-parameters": "^7.15.4"
}
},
"@babel/plugin-proposal-optional-catch-binding": {
@@ -10020,12 +10048,12 @@
}
},
"@babel/plugin-proposal-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz",
+ "integrity": "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-create-class-features-plugin": "^7.14.5",
+ "@babel/helper-annotate-as-pure": "^7.15.4",
+ "@babel/helper-create-class-features-plugin": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
}
@@ -10186,24 +10214,24 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz",
- "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==",
+ "version": "7.15.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz",
+ "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==",
"requires": {
"@babel/helper-plugin-utils": "^7.14.5"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz",
- "integrity": "sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz",
+ "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-optimise-call-expression": "^7.14.5",
+ "@babel/helper-annotate-as-pure": "^7.15.4",
+ "@babel/helper-function-name": "^7.15.4",
+ "@babel/helper-optimise-call-expression": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.15.4",
+ "@babel/helper-split-export-declaration": "^7.15.4",
"globals": "^11.1.0"
},
"dependencies": {
@@ -10257,9 +10285,9 @@
}
},
"@babel/plugin-transform-for-of": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz",
- "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz",
+ "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==",
"requires": {
"@babel/helper-plugin-utils": "^7.14.5"
}
@@ -10300,25 +10328,25 @@
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz",
- "integrity": "sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz",
+ "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==",
"requires": {
- "@babel/helper-module-transforms": "^7.15.0",
+ "@babel/helper-module-transforms": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-simple-access": "^7.14.8",
+ "@babel/helper-simple-access": "^7.15.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz",
- "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz",
+ "integrity": "sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==",
"requires": {
- "@babel/helper-hoist-variables": "^7.14.5",
- "@babel/helper-module-transforms": "^7.14.5",
+ "@babel/helper-hoist-variables": "^7.15.4",
+ "@babel/helper-module-transforms": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-validator-identifier": "^7.14.5",
+ "@babel/helper-validator-identifier": "^7.14.9",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
@@ -10357,9 +10385,9 @@
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz",
- "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz",
+ "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==",
"requires": {
"@babel/helper-plugin-utils": "^7.14.5"
}
@@ -10504,29 +10532,29 @@
}
},
"@babel/preset-env": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.0.tgz",
- "integrity": "sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q==",
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz",
+ "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==",
"requires": {
"@babel/compat-data": "^7.15.0",
- "@babel/helper-compilation-targets": "^7.15.0",
+ "@babel/helper-compilation-targets": "^7.15.4",
"@babel/helper-plugin-utils": "^7.14.5",
"@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5",
- "@babel/plugin-proposal-async-generator-functions": "^7.14.9",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4",
+ "@babel/plugin-proposal-async-generator-functions": "^7.15.4",
"@babel/plugin-proposal-class-properties": "^7.14.5",
- "@babel/plugin-proposal-class-static-block": "^7.14.5",
+ "@babel/plugin-proposal-class-static-block": "^7.15.4",
"@babel/plugin-proposal-dynamic-import": "^7.14.5",
"@babel/plugin-proposal-export-namespace-from": "^7.14.5",
"@babel/plugin-proposal-json-strings": "^7.14.5",
"@babel/plugin-proposal-logical-assignment-operators": "^7.14.5",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
"@babel/plugin-proposal-numeric-separator": "^7.14.5",
- "@babel/plugin-proposal-object-rest-spread": "^7.14.7",
+ "@babel/plugin-proposal-object-rest-spread": "^7.15.6",
"@babel/plugin-proposal-optional-catch-binding": "^7.14.5",
"@babel/plugin-proposal-optional-chaining": "^7.14.5",
"@babel/plugin-proposal-private-methods": "^7.14.5",
- "@babel/plugin-proposal-private-property-in-object": "^7.14.5",
+ "@babel/plugin-proposal-private-property-in-object": "^7.15.4",
"@babel/plugin-proposal-unicode-property-regex": "^7.14.5",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
@@ -10545,25 +10573,25 @@
"@babel/plugin-transform-arrow-functions": "^7.14.5",
"@babel/plugin-transform-async-to-generator": "^7.14.5",
"@babel/plugin-transform-block-scoped-functions": "^7.14.5",
- "@babel/plugin-transform-block-scoping": "^7.14.5",
- "@babel/plugin-transform-classes": "^7.14.9",
+ "@babel/plugin-transform-block-scoping": "^7.15.3",
+ "@babel/plugin-transform-classes": "^7.15.4",
"@babel/plugin-transform-computed-properties": "^7.14.5",
"@babel/plugin-transform-destructuring": "^7.14.7",
"@babel/plugin-transform-dotall-regex": "^7.14.5",
"@babel/plugin-transform-duplicate-keys": "^7.14.5",
"@babel/plugin-transform-exponentiation-operator": "^7.14.5",
- "@babel/plugin-transform-for-of": "^7.14.5",
+ "@babel/plugin-transform-for-of": "^7.15.4",
"@babel/plugin-transform-function-name": "^7.14.5",
"@babel/plugin-transform-literals": "^7.14.5",
"@babel/plugin-transform-member-expression-literals": "^7.14.5",
"@babel/plugin-transform-modules-amd": "^7.14.5",
- "@babel/plugin-transform-modules-commonjs": "^7.15.0",
- "@babel/plugin-transform-modules-systemjs": "^7.14.5",
+ "@babel/plugin-transform-modules-commonjs": "^7.15.4",
+ "@babel/plugin-transform-modules-systemjs": "^7.15.4",
"@babel/plugin-transform-modules-umd": "^7.14.5",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.14.9",
"@babel/plugin-transform-new-target": "^7.14.5",
"@babel/plugin-transform-object-super": "^7.14.5",
- "@babel/plugin-transform-parameters": "^7.14.5",
+ "@babel/plugin-transform-parameters": "^7.15.4",
"@babel/plugin-transform-property-literals": "^7.14.5",
"@babel/plugin-transform-regenerator": "^7.14.5",
"@babel/plugin-transform-reserved-words": "^7.14.5",
@@ -10575,7 +10603,7 @@
"@babel/plugin-transform-unicode-escapes": "^7.14.5",
"@babel/plugin-transform-unicode-regex": "^7.14.5",
"@babel/preset-modules": "^0.1.4",
- "@babel/types": "^7.15.0",
+ "@babel/types": "^7.15.6",
"babel-plugin-polyfill-corejs2": "^0.2.2",
"babel-plugin-polyfill-corejs3": "^0.2.2",
"babel-plugin-polyfill-regenerator": "^0.2.2",
@@ -10616,9 +10644,9 @@
}
},
"@babel/runtime": {
- "version": "7.9.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
- "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
+ "version": "7.15.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz",
+ "integrity": "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==",
"requires": {
"regenerator-runtime": "^0.13.4"
},
@@ -10631,27 +10659,27 @@
}
},
"@babel/template": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz",
- "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz",
+ "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==",
"requires": {
"@babel/code-frame": "^7.14.5",
- "@babel/parser": "^7.14.5",
- "@babel/types": "^7.14.5"
+ "@babel/parser": "^7.15.4",
+ "@babel/types": "^7.15.4"
}
},
"@babel/traverse": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz",
- "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==",
+ "version": "7.15.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz",
+ "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==",
"requires": {
"@babel/code-frame": "^7.14.5",
- "@babel/generator": "^7.15.0",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-hoist-variables": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5",
- "@babel/parser": "^7.15.0",
- "@babel/types": "^7.15.0",
+ "@babel/generator": "^7.15.4",
+ "@babel/helper-function-name": "^7.15.4",
+ "@babel/helper-hoist-variables": "^7.15.4",
+ "@babel/helper-split-export-declaration": "^7.15.4",
+ "@babel/parser": "^7.15.4",
+ "@babel/types": "^7.15.4",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -10677,9 +10705,9 @@
}
},
"@babel/types": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz",
- "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==",
+ "version": "7.15.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
+ "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
"requires": {
"@babel/helper-validator-identifier": "^7.14.9",
"to-fast-properties": "^2.0.0"
@@ -10772,32 +10800,29 @@
"defer-to-connect": "^1.0.1"
}
},
- "@types/bson": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz",
- "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==",
- "requires": {
- "@types/node": "*"
- }
- },
"@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=="
},
- "@types/mongodb": {
- "version": "3.6.17",
- "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.17.tgz",
- "integrity": "sha512-9hhgvYPdC5iHyyksPcKCu45gfaAIPQHKHGdvNXu4582DmOZX3wrUJIJPT40o4G1oTKPgpMMFqZglOTjhnYoF+A==",
- "requires": {
- "@types/bson": "*",
- "@types/node": "*"
- }
- },
"@types/node": {
- "version": "15.6.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz",
- "integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA=="
+ "version": "16.9.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
+ "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="
+ },
+ "@types/webidl-conversions": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
+ "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
+ },
+ "@types/whatwg-url": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
+ "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
+ "requires": {
+ "@types/node": "*",
+ "@types/webidl-conversions": "*"
+ }
},
"abbrev": {
"version": "1.1.1",
@@ -11222,20 +11247,6 @@
"file-uri-to-path": "1.0.0"
}
},
- "bl": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
- "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
- "requires": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- },
- "bluebird": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
- "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
- },
"bn.js": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
@@ -11566,9 +11577,23 @@
}
},
"bson": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
- "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg=="
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-4.5.2.tgz",
+ "integrity": "sha512-8CEMJpwc7qlQtrn2rney38jQSEeMar847lz0LyitwRmVknAW8iHXrzW4fTjHfyWm0E3sukyD/zppdH+QU1QefA==",
+ "requires": {
+ "buffer": "^5.6.0"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ }
+ }
},
"buffer": {
"version": "5.2.1",
@@ -11828,9 +11853,9 @@
}
},
"codemirror": {
- "version": "5.62.2",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.62.2.tgz",
- "integrity": "sha512-tVFMUa4J3Q8JUd1KL9yQzQB0/BJt7ZYZujZmTPgo/54Lpuq3ez4C8x/ATUY/wv7b7X3AUq8o3Xd+2C5ZrCGWHw=="
+ "version": "5.63.1",
+ "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.63.1.tgz",
+ "integrity": "sha512-baivaNZreZOGh1/tYyTvCupC9NeWk7qlZeGUDi4nFKj/J0JU8FYKZND4QqLw70P7HOttlCt4JJAOj9GoIhHEkA=="
},
"collection-visit": {
"version": "1.0.0",
@@ -12111,9 +12136,9 @@
}
},
"dedent-tabs": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/dedent-tabs/-/dedent-tabs-0.9.0.tgz",
- "integrity": "sha512-XpJr3b3pX6XHK0MDE9/hF2AxAIqzeBhBWqQ22PlzEZFqR31N8x44+e/iML76cwVvhjVqk1BqZeTBS9BrccMJlA=="
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/dedent-tabs/-/dedent-tabs-0.10.1.tgz",
+ "integrity": "sha512-BLwWIXQnJAxhCL+kDN4g/KItzG9glaw1cFglr+pql8W4lTADsZxC0QpolcRXO2M4+bI2/MXCGeg0WPuzeM3SYQ=="
},
"deep-extend": {
"version": "0.6.0",
@@ -12159,9 +12184,9 @@
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"denque": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
- "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ=="
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz",
+ "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw=="
},
"depd": {
"version": "1.1.2",
@@ -12517,22 +12542,24 @@
}
},
"eslint-plugin-react": {
- "version": "7.24.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz",
- "integrity": "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==",
+ "version": "7.26.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz",
+ "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==",
"dev": true,
"requires": {
"array-includes": "^3.1.3",
"array.prototype.flatmap": "^1.2.4",
"doctrine": "^2.1.0",
- "has": "^1.0.3",
+ "estraverse": "^5.2.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.0.4",
"object.entries": "^1.1.4",
"object.fromentries": "^2.0.4",
+ "object.hasown": "^1.0.0",
"object.values": "^1.1.4",
"prop-types": "^15.7.2",
"resolve": "^2.0.0-next.3",
+ "semver": "^6.3.0",
"string.prototype.matchall": "^4.0.5"
},
"dependencies": {
@@ -12545,6 +12572,12 @@
"esutils": "^2.0.2"
}
},
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ },
"resolve": {
"version": "2.0.0-next.3",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
@@ -12554,6 +12587,12 @@
"is-core-module": "^2.2.0",
"path-parse": "^1.0.6"
}
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
}
}
},
@@ -13167,9 +13206,9 @@
}
},
"googleapis": {
- "version": "84.0.0",
- "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-84.0.0.tgz",
- "integrity": "sha512-5WWLwmraulw3p55lu0gNpLz2FME1gcuR7QxgmUdAVHMiVN4LEasYjJV9p36gxcf2TMe6bn6+PgQ/63+CvBEgoQ==",
+ "version": "88.2.0",
+ "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-88.2.0.tgz",
+ "integrity": "sha512-z3iDvGVqaJ+4TZ7YulK530q5vkY0BifvAWqcu2JiUSgpnIHzsA89k005+McoaYB+lAgv7lPY2Y4OPMT6iloWRA==",
"requires": {
"google-auth-library": "^7.0.2",
"googleapis-common": "^5.0.2"
@@ -14071,9 +14110,9 @@
}
},
"marked": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz",
- "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA=="
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.4.tgz",
+ "integrity": "sha512-jBo8AOayNaEcvBhNobg6/BLhdsK3NvnKWJg33MAAPbvTWiG4QBn9gpW1+7RssrKu4K1dKlN+0goVQwV41xEfOA=="
},
"markedLegacy": {
"version": "npm:marked@0.3.19",
@@ -14247,15 +14286,6 @@
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
},
- "mini-create-react-context": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz",
- "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==",
- "requires": {
- "@babel/runtime": "^7.5.5",
- "tiny-warning": "^1.0.3"
- }
- },
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
@@ -14332,34 +14362,37 @@
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
},
"mongodb": {
- "version": "3.6.11",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.11.tgz",
- "integrity": "sha512-4Y4lTFHDHZZdgMaHmojtNAlqkvddX2QQBEN0K//GzxhGwlI9tZ9R0vhbjr1Decw+TF7qK0ZLjQT292XgHRRQgw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.1.1.tgz",
+ "integrity": "sha512-fbACrWEyvr6yl0sSiCGV0sqEiBwTtDJ8iSojmkDjAfw9JnOZSAkUyv9seFSPYhPPKwxp1PDtyjvBNfMDz0WBLQ==",
"requires": {
- "bl": "^2.2.1",
- "bson": "^1.1.4",
- "denque": "^1.4.1",
- "optional-require": "^1.0.3",
- "safe-buffer": "^5.1.2",
+ "bson": "^4.5.1",
+ "denque": "^1.5.0",
+ "mongodb-connection-string-url": "^2.0.0",
"saslprep": "^1.0.0"
}
},
- "mongoose": {
- "version": "5.13.7",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.7.tgz",
- "integrity": "sha512-ADIvftZ+KfoTALMZ0n8HvBlezFhcUd73hQaHQDwQ+3X+JZlqE47fUy9yhFZ2SjT+qzmuaCcIXCfhewIc38t2fQ==",
+ "mongodb-connection-string-url": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.0.0.tgz",
+ "integrity": "sha512-M0I1vyLoq5+HQTuPSJWbt+hIXsMCfE8sS1fS5mvP9R2DOMoi2ZD32yWqgBIITyu0dFu4qtS50erxKjvUeBiyog==",
"requires": {
- "@types/mongodb": "^3.5.27",
- "bson": "^1.1.4",
+ "@types/whatwg-url": "^8.2.1",
+ "whatwg-url": "^9.1.0"
+ }
+ },
+ "mongoose": {
+ "version": "6.0.8",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.0.8.tgz",
+ "integrity": "sha512-7XZ5TUoDtF8af7+mKfL58s8dN2BKmldQPTlmkb41PaRAleBVGeAck7Mj6JlIh9SOCi+64GT+afebiJaeyXe1Lw==",
+ "requires": {
+ "bson": "^4.2.2",
"kareem": "2.3.2",
- "mongodb": "3.6.11",
- "mongoose-legacy-pluralize": "1.0.2",
- "mpath": "0.8.3",
- "mquery": "3.2.5",
+ "mongodb": "4.1.1",
+ "mpath": "0.8.4",
+ "mquery": "4.0.0",
"ms": "2.1.2",
- "optional-require": "1.0.x",
"regexp-clone": "1.0.0",
- "safe-buffer": "5.2.1",
"sift": "13.5.2",
"sliced": "1.0.1"
},
@@ -14368,43 +14401,36 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "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=="
}
}
},
- "mongoose-legacy-pluralize": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
- "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
- },
"mpath": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz",
- "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA=="
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz",
+ "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g=="
},
"mquery": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz",
- "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz",
+ "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==",
"requires": {
- "bluebird": "3.5.1",
- "debug": "3.1.0",
+ "debug": "4.x",
"regexp-clone": "^1.0.0",
- "safe-buffer": "5.1.2",
"sliced": "1.0.1"
},
"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.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"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=="
}
}
},
@@ -14420,9 +14446,9 @@
"optional": true
},
"nanoid": {
- "version": "3.1.25",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz",
- "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q=="
+ "version": "3.1.28",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz",
+ "integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw=="
},
"nanomatch": {
"version": "1.2.13",
@@ -14661,6 +14687,16 @@
"has": "^1.0.3"
}
},
+ "object.hasown": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.0.0.tgz",
+ "integrity": "sha512-qYMF2CLIjxxLGleeM0jrcB4kiv3loGVAjKQKvH8pSU/i2VcRRvUNmxbD+nEMmrXRfORhuVJuH8OtSYCZoue3zA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.1"
+ }
+ },
"object.pick": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
@@ -14696,11 +14732,6 @@
"wrappy": "1"
}
},
- "optional-require": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz",
- "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA=="
- },
"optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -15108,19 +15139,16 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
"integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q=="
},
- "react-router": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz",
- "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==",
+ "react-router-dom": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.0.tgz",
+ "integrity": "sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ==",
"requires": {
- "@babel/runtime": "^7.1.2",
+ "@babel/runtime": "^7.12.13",
"history": "^4.9.0",
- "hoist-non-react-statics": "^3.1.0",
"loose-envify": "^1.3.1",
- "mini-create-react-context": "^0.4.0",
- "path-to-regexp": "^1.7.0",
"prop-types": "^15.6.2",
- "react-is": "^16.6.0",
+ "react-router": "5.2.1",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
},
@@ -15138,58 +15166,30 @@
"isarray": "0.0.1"
}
},
- "prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "react-router": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.1.tgz",
+ "integrity": "sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==",
"requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.8.1"
+ "@babel/runtime": "^7.12.13",
+ "history": "^4.9.0",
+ "hoist-non-react-statics": "^3.1.0",
+ "loose-envify": "^1.3.1",
+ "mini-create-react-context": "^0.4.0",
+ "path-to-regexp": "^1.7.0",
+ "prop-types": "^15.6.2",
+ "react-is": "^16.6.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
},
"dependencies": {
- "loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "mini-create-react-context": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz",
+ "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==",
"requires": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- }
- }
- }
- }
- }
- },
- "react-router-dom": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz",
- "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==",
- "requires": {
- "@babel/runtime": "^7.1.2",
- "history": "^4.9.0",
- "loose-envify": "^1.3.1",
- "prop-types": "^15.6.2",
- "react-router": "5.2.0",
- "tiny-invariant": "^1.0.2",
- "tiny-warning": "^1.0.0"
- },
- "dependencies": {
- "prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
- "requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.8.1"
- },
- "dependencies": {
- "loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "requires": {
- "js-tokens": "^3.0.0 || ^4.0.0"
+ "@babel/runtime": "^7.12.1",
+ "tiny-warning": "^1.0.3"
}
}
}
@@ -16275,6 +16275,21 @@
"nopt": "~1.0.10"
}
},
+ "tr46": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "requires": {
+ "punycode": "^2.1.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ }
+ }
+ },
"truncate-utf8-bytes": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
@@ -16814,6 +16829,20 @@
}
}
},
+ "webidl-conversions": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
+ },
+ "whatwg-url": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz",
+ "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==",
+ "requires": {
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ }
+ },
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
diff --git a/package.json b/package.json
index 0146f74d0..4b92b0e6b 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "homebrewery",
"description": "Create authentic looking D&D homebrews using only markdown",
- "version": "2.13.4",
+ "version": "3.0.1",
"engines": {
"node": "14.15.x"
},
@@ -40,43 +40,43 @@
]
},
"dependencies": {
- "@babel/core": "^7.15.0",
+ "@babel/core": "^7.15.5",
"@babel/plugin-transform-runtime": "^7.15.0",
- "@babel/preset-env": "^7.15.0",
+ "@babel/preset-env": "^7.15.6",
"@babel/preset-react": "^7.14.5",
"body-parser": "^1.19.0",
"classnames": "^2.3.1",
- "codemirror": "^5.62.2",
+ "codemirror": "^5.63.1",
"cookie-parser": "^1.4.5",
"create-react-class": "^15.7.0",
- "dedent-tabs": "^0.9.0",
+ "dedent-tabs": "^0.10.1",
"express": "^4.17.1",
"express-async-handler": "^1.1.4",
"express-static-gzip": "2.1.1",
"fs-extra": "10.0.0",
- "googleapis": "84.0.0",
+ "googleapis": "88.2.0",
"jwt-simple": "^0.5.6",
"less": "^3.13.1",
"lodash": "^4.17.21",
- "marked": "2.1.3",
+ "marked": "3.0.4",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.1",
- "mongoose": "^5.13.7",
- "nanoid": "3.1.25",
+ "mongoose": "^6.0.8",
+ "nanoid": "3.1.28",
"nconf": "^0.11.3",
"prop-types": "15.7.2",
"query-string": "7.0.1",
"react": "^16.14.0",
"react-dom": "^16.14.0",
"react-frame-component": "4.1.3",
- "react-router-dom": "5.2.0",
+ "react-router-dom": "5.3.0",
"sanitize-filename": "1.6.3",
"superagent": "^6.1.0",
"vitreum": "git+https://git@github.com/calculuschild/vitreum.git"
},
"devDependencies": {
"eslint": "^7.32.0",
- "eslint-plugin-react": "^7.24.0",
+ "eslint-plugin-react": "^7.26.1",
"pico-check": "^2.1.3"
}
}
diff --git a/server.js b/server.js
index fbf741ec0..a3a97cddf 100644
--- a/server.js
+++ b/server.js
@@ -72,10 +72,11 @@ const config = require('nconf')
//DB
const mongoose = require('mongoose');
mongoose.connect(config.get('mongodb_uri') || config.get('mongolab_uri') || 'mongodb://localhost/naturalcrit',
- { retryWrites: false, useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true });
-mongoose.connection.on('error', ()=>{
+ { retryWrites: false });
+mongoose.connection.on('error', (err)=>{
console.log('Error : Could not connect to a Mongo Database.');
console.log(' If you are running locally, make sure mongodb.exe is running.');
+ console.log(err);
throw 'Can not connect to Mongo';
});
@@ -103,6 +104,7 @@ const HomebrewModel = require('./server/homebrew.model.js').model;
const welcomeText = require('fs').readFileSync('./client/homebrew/pages/homePage/welcome_msg.md', 'utf8');
const welcomeTextV3 = require('fs').readFileSync('./client/homebrew/pages/homePage/welcome_msg_v3.md', 'utf8');
const changelogText = require('fs').readFileSync('./changelog.md', 'utf8');
+const faqText = require('fs').readFileSync('./faq.md', 'utf8');
String.prototype.replaceAll = function(s, r){return this.split(s).join(r);};
@@ -134,9 +136,23 @@ app.get('/v3_preview', async (req, res, next)=>{
//Changelog page
app.get('/changelog', async (req, res, next)=>{
const brew = {
- title : 'Changelog',
- text : changelogText
+ title : 'Changelog',
+ text : changelogText,
+ renderer : 'V3'
};
+ splitTextAndStyle(brew);
+ req.brew = brew;
+ return next();
+});
+
+//FAQ page
+app.get('/faq', async (req, res, next)=>{
+ const brew = {
+ title : 'FAQ',
+ text : faqText,
+ renderer : 'V3'
+ };
+ splitTextAndStyle(brew);
req.brew = brew;
return next();
});
@@ -280,5 +296,6 @@ app.use((err, req, res, next)=>{
//^=====--------------------------------------=====^//
const PORT = process.env.PORT || config.get('web_port') || 8000;
-app.listen(PORT);
-console.log(`server on port:${PORT}`);
+app.listen(PORT, ()=>{
+ console.log(`server on port:${PORT}`);
+});
diff --git a/server/googleActions.js b/server/googleActions.js
index 38118b96f..72059cb2d 100644
--- a/server/googleActions.js
+++ b/server/googleActions.js
@@ -154,21 +154,23 @@ GoogleActions = {
if(await GoogleActions.existsGoogleBrew(auth, brew.googleId) == true) {
await drive.files.update({
fileId : brew.googleId,
- resource : { name : `${brew.title}.txt`,
- description : `${brew.description}`,
- properties : { title : brew.title,
- published : brew.published,
- lastViewed : brew.lastViewed,
- views : brew.views,
- version : brew.version,
- renderer : brew.renderer,
- tags : brew.tags,
- systems : brew.systems.join(),
- pageCount : brew.pageCount
- }
- },
- media : { mimeType : 'text/plain',
- body : brew.text }
+ resource : {
+ name : `${brew.title}.txt`,
+ description : `${brew.description}`,
+ properties : {
+ title : brew.title,
+ published : brew.published,
+ version : brew.version,
+ renderer : brew.renderer,
+ tags : brew.tags,
+ pageCount : brew.pageCount,
+ systems : brew.systems.join()
+ }
+ },
+ media : {
+ mimeType : 'text/plain',
+ body : brew.text
+ }
})
.catch((err)=>{
console.log('Error saving to google');
@@ -369,8 +371,13 @@ GoogleActions = {
await drive.files.update({
fileId : brew.googleId,
- resource : { properties : { views : brew.views + 1,
- lastViewed : new Date() } }
+ resource : {
+ modifiedTime : brew.updatedAt,
+ properties : {
+ views : brew.views + 1,
+ lastViewed : new Date()
+ }
+ }
})
.catch((err)=>{
console.log('Error updating Google views');
diff --git a/server/homebrew.api.js b/server/homebrew.api.js
index 36d0aa576..59d4f6d68 100644
--- a/server/homebrew.api.js
+++ b/server/homebrew.api.js
@@ -19,6 +19,15 @@ const getGoodBrewTitle = (text)=>{
.slice(0, MAX_TITLE_LENGTH);
};
+const excludePropsFromUpdate = (brew)=>{
+ // Remove undesired properties
+ const propsToExclude = ['views', 'lastViewed'];
+ for (const prop of propsToExclude) {
+ delete brew[prop];
+ };
+ return brew;
+};
+
const mergeBrewText = (text, style)=>{
if(typeof style !== 'undefined') {
text = `\`\`\`css\n` +
@@ -64,7 +73,8 @@ const newBrew = (req, res)=>{
const updateBrew = (req, res)=>{
HomebrewModel.get({ editId: req.params.id })
.then((brew)=>{
- brew = _.merge(brew, req.body);
+ const updateBrew = excludePropsFromUpdate(req.body);
+ brew = _.merge(brew, updateBrew);
brew.text = mergeBrewText(brew.text, brew.style);
// Compress brew text to binary before saving
@@ -154,7 +164,7 @@ const updateGoogleBrew = async (req, res, next)=>{
try { oAuth2Client = GoogleActions.authCheck(req.account, res); } catch (err) { return res.status(err.status).send(err.message); }
- const brew = req.body;
+ const brew = excludePropsFromUpdate(req.body);
brew.text = mergeBrewText(brew.text, brew.style);
try {
diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js
index eee0e982b..5003d1053 100644
--- a/shared/naturalcrit/markdown.js
+++ b/shared/naturalcrit/markdown.js
@@ -65,13 +65,13 @@ const mustacheSpans = {
raw : raw, // Text to consume from the source
text : text, // Additional custom properties
tags : tags,
- tokens : this.inlineTokens(text) // inlineTokens to process **bold**, *italics*, etc.
+ tokens : this.lexer.inlineTokens(text) // inlineTokens to process **bold**, *italics*, etc.
};
}
}
},
renderer(token) {
- return `
${this.parser.parseInline(token.tokens)}`; // parseInline to turn child tokens into HTML
}
};
@@ -114,13 +114,13 @@ const mustacheDivs = {
raw : raw, // Text to consume from the source
text : text, // Additional custom properties
tags : tags,
- tokens : this.inline(this.blockTokens(text))
+ tokens : this.lexer.blockTokens(text)
};
}
}
},
renderer(token) {
- return `
${this.parser.parse(token.tokens)}
`; // parseInline to turn child tokens into HTML
}
};
@@ -149,7 +149,7 @@ const mustacheInjectInline = {
},
renderer(token) {
token.type = token.originalType;
- const text = this.parseInline([token]);
+ const text = this.parser.parseInline([token]);
const openingTag = /(<[^\s<>]+)([^\n<>]*>.*)/s.exec(text);
if(openingTag) {
return `${openingTag[1]} class="${token.tags}${openingTag[2]}`;
@@ -174,15 +174,18 @@ const mustacheInjectBlock = {
lastToken.originalType = 'mustacheInjectBlock';
lastToken.tags = ` ${processStyleTags(match[1])}`;
return {
- type : 'text', // Should match "name" above
- raw : match[0], // Text to consume from the source
+ type : 'mustacheInjectBlock', // Should match "name" above
+ raw : match[0], // Text to consume from the source
text : ''
};
}
},
renderer(token) {
+ if(!token.originalType){
+ return;
+ }
token.type = token.originalType;
- const text = this.parse([token]);
+ const text = this.parser.parse([token]);
const openingTag = /(<[^\s<>]+)([^\n<>]*>.*)/s.exec(text);
if(openingTag) {
return `${openingTag[1]} class="${token.tags}${openingTag[2]}`;
@@ -205,14 +208,14 @@ const definitionLists = {
level : 'block',
start(src) { return src.match(/^.*?::.*/m)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) {
- const regex = /^([^\n]*?)::([^\n]*)/ym;
+ const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym;
let match;
let endIndex = 0;
const definitions = [];
while (match = regex.exec(src)) {
definitions.push({
- dt : this.inlineTokens(match[1].trim()),
- dd : this.inlineTokens(match[2].trim())
+ dt : this.lexer.inlineTokens(match[1].trim()),
+ dd : this.lexer.inlineTokens(match[2].trim())
});
endIndex = regex.lastIndex;
}
@@ -225,12 +228,10 @@ const definitionLists = {
}
},
renderer(token) {
- return `
- ${token.definitions.reduce((html, def)=>{
- return `${html}- ${this.parseInline(def.dt)}
`
- + `- ${this.parseInline(def.dd)}
\n`;
- }, '')}
-
`;
+ return `
${token.definitions.reduce((html, def)=>{
+ return `${html}- ${this.parser.parseInline(def.dt)}
`
+ + `- ${this.parser.parseInline(def.dd)}
\n`;
+ }, '')}
`;
}
};
@@ -302,7 +303,7 @@ const spanTable = {
row = item.header[j];
for (k = 0; k < row.length; k++) {
row[k].tokens = [];
- this.inlineTokens(row[k].text, row[k].tokens);
+ this.lexer.inlineTokens(row[k].text, row[k].tokens);
}
}
@@ -312,7 +313,7 @@ const spanTable = {
row = item.rows[j];
for (k = 0; k < row.length; k++) {
row[k].tokens = [];
- this.inlineTokens(row[k].text, row[k].tokens);
+ this.lexer.inlineTokens(row[k].text, row[k].tokens);
}
}
return item;
@@ -329,7 +330,7 @@ const spanTable = {
output += `
`;
for (j = 0; j < row.length; j++) {
cell = row[j];
- text = this.parseInline(cell.tokens);
+ text = this.parser.parseInline(cell.tokens);
output += getTableCell(text, cell, 'th', token.align[col]);
col += cell.colspan;
}
@@ -344,7 +345,7 @@ const spanTable = {
output += `
`;
for (j = 0; j < row.length; j++) {
cell = row[j];
- text = this.parseInline(cell.tokens);
+ text = this.parser.parseInline(cell.tokens);
output += getTableCell(text, cell, 'td', token.align[col]);
col += cell.colspan;
}
@@ -508,9 +509,15 @@ const sanatizeScriptTags = (content)=>{
const tagTypes = ['div', 'span', 'a'];
const tagRegex = new RegExp(`(${
_.map(tagTypes, (type)=>{
- return `\\<${type}|\\${type}>`;
+ return `\\<${type}\\b|\\${type}>`;
}).join('|')})`, 'g');
+// Special "void" tags that can be self-closed but don't need to be.
+const voidTags = new Set([
+ 'area', 'base', 'br', 'col', 'command', 'hr', 'img',
+ 'input', 'keygen', 'link', 'meta', 'param', 'source'
+]);
+
const processStyleTags = (string)=>{
//split tags up. quotes can only occur right after colons.
//TODO: can we simplify to just split on commas?
@@ -527,7 +534,7 @@ const processStyleTags = (string)=>{
module.exports = {
marked : Markdown,
render : (rawBrewText)=>{
- rawBrewText = rawBrewText.replace(/^\\column$/gm, ``)
+ rawBrewText = rawBrewText.replace(/^\\column$/gm, `\n\n`)
.replace(/^(:+)$/gm, (match)=>`${``.repeat(match.length)}\n`);
return Markdown(
sanatizeScriptTags(rawBrewText),
@@ -551,6 +558,13 @@ module.exports = {
});
}
if(match === `${type}>`){
+ // Closing tag: Check we expect it to be closed.
+ // The accumulator may contain a sequence of voidable opening tags,
+ // over which we skip before checking validity of the close.
+ while (acc.length && voidTags.has(_.last(acc).type) && _.last(acc).type != type) {
+ acc.pop();
+ }
+ // Now check that what remains in the accumulator is valid.
if(!acc.length){
errors.push({
line : lineNumber,
diff --git a/shared/naturalcrit/markdownLegacy.js b/shared/naturalcrit/markdownLegacy.js
index 27cf10e9c..b42302fb8 100644
--- a/shared/naturalcrit/markdownLegacy.js
+++ b/shared/naturalcrit/markdownLegacy.js
@@ -99,9 +99,15 @@ const sanatizeScriptTags = (content)=>{
const tagTypes = ['div', 'span', 'a'];
const tagRegex = new RegExp(`(${
_.map(tagTypes, (type)=>{
- return `\\<${type}|\\${type}>`;
+ return `\\<${type}\\b|\\${type}>`;
}).join('|')})`, 'g');
+// Special "void" tags that can be self-closed but don't need to be.
+const voidTags = new Set([
+ 'area', 'base', 'br', 'col', 'command', 'hr', 'img',
+ 'input', 'keygen', 'link', 'meta', 'param', 'source'
+]);
+
module.exports = {
marked : Markdown,
@@ -128,6 +134,13 @@ module.exports = {
});
}
if(match === `${type}>`){
+ // Closing tag: Check we expect it to be closed.
+ // The accumulator may contain a sequence of voidable opening tags,
+ // over which we skip before checking validity of the close.
+ while (acc.length && voidTags.has(_.last(acc).type) && _.last(acc).type != type) {
+ acc.pop();
+ }
+ // Now check that what remains in the accumulator is valid.
if(!acc.length){
errors.push({
line : lineNumber,
diff --git a/themes/5ePhb.style.less b/themes/5ePhb.style.less
index 955a4639a..607a13cca 100644
--- a/themes/5ePhb.style.less
+++ b/themes/5ePhb.style.less
@@ -9,6 +9,7 @@
@headerText : #58180D; // Dark maroon
@monsterStatBackground : #EEDBAB; // Light orange parchment
@captionText : #766649; // Brown
+@watercolorStain : #BBAD82; // Light brown
@page { margin: 0; }
body {
counter-reset : phb-page-numbers;
@@ -18,7 +19,7 @@ body {
}
.useSansSerif(){
font-family : ScalySansRemake;
- font-size : 0.325cm;
+ font-size : 0.318cm;
line-height : 1.2em;
p,dl,ul,ol {
line-height : 1.2em;
@@ -33,10 +34,13 @@ body {
font-weight : 800;
letter-spacing : -0.02em;
}
+ h5 + * {
+ margin-top : 0.1cm;
+ }
}
-.useColumns(@multiplier : 1){
+.useColumns(@multiplier : 1, @fillMode: balance){
column-count : 2;
- column-fill : auto;
+ column-fill : @fillMode;
column-gap : 0.9cm;
column-width : 8cm * @multiplier;
-webkit-column-count : 2;
@@ -46,6 +50,12 @@ body {
-webkit-column-gap : 0.9cm;
-moz-column-gap : 0.9cm;
}
+.columnWrapper{
+ max-height : 100%;
+ column-span : all;
+ columns : inherit;
+ column-gap : inherit;
+}
.page{
.useColumns();
counter-increment : phb-page-numbers;
@@ -55,9 +65,9 @@ body {
overflow : hidden;
height : 279.4mm;
width : 215.9mm;
- padding : 1.4cm 1.9cm 1.7cm;
background-color : @background;
background-image : @backgroundImage;
+ padding : 1.4cm 1.9cm 1.7cm;
font-family : BookInsanityRemake;
font-size : 0.34cm;
text-rendering : optimizeLegibility;
@@ -68,10 +78,13 @@ body {
// *****************************/
p{
overflow-wrap : break-word; //TODO: MAKE ALL MARGINS TOP-ONLY. USE * + * STYLE SELECTORS
- margin-bottom : 0.8em;
+ display : block;
line-height : 1.3em;
+ &+* {
+ margin-top : 0.325cm;
+ }
&+p{
- margin-top : -0.8em;
+ margin-top : 0;
}
}
ul{
@@ -121,53 +134,55 @@ body {
color : @headerText;
}
h1{
- margin-bottom : 0.18cm;
+ margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE
column-span : all;
font-size : 0.89cm;
-webkit-column-span : all;
-moz-column-span : all;
&+p::first-letter{
- float : left;
- font-family : SolberaImitationRemake;
- line-height : 0.8em;
- font-size: 3.5cm;
- padding-left: 40px;
- margin-left: -40px;
- padding-top:10px;
- margin-top:-8px;
- padding-bottom:10px;
- margin-bottom:-20px;
- background-image: linear-gradient(-45deg, #322814, #998250, #322814);
- background-clip: text;
- -webkit-background-clip: text;
- color: rgba(0, 0, 0, 0);
+ float : left;
+ font-family : SolberaImitationRemake;
+ line-height : 1em;
+ font-size : 3.5cm;
+ padding-left : 40px; //Allow background color to extend into margins
+ margin-left : -40px;
+ margin-top : -0.3cm;
+ padding-bottom : 2px;
+ margin-bottom : -20px;
+ background-image : linear-gradient(-45deg, #322814, #998250, #322814);
+ background-clip : text;
+ -webkit-background-clip : text;
+ color : rgba(0, 0, 0, 0);
}
&+p::first-line{
font-variant : small-caps;
}
}
h2{
- margin-top : 0px;
- margin-bottom : 0.05cm;
+ //margin-top : 0px; //Font is misaligned. Shift up slightly
+ //margin-bottom : 0.05cm;
font-size : 0.75cm;
}
h3{
- margin-top : -0.1cm;
- margin-bottom : 0.1cm;
+ //margin-top : -0.1cm; //Font is misaligned. Shift up slightly
+ //margin-bottom : 0.1cm;
font-size : 0.575cm;
border-bottom : 2px solid @headerUnderline;
}
h4{
- margin-top : -0.02cm;
- margin-bottom : 0.02cm;
+ //margin-top : -0.02cm; //Font is misaligned. Shift up slightly
+ //margin-bottom : 0.02cm;
font-size : 0.458cm;
}
h5{
- margin-top : -0.02cm;
- margin-bottom : 0.02cm;
+ //margin-top : -0.02cm; //Font is misaligned. Shift up slightly
+ //margin-bottom : 0.02cm;
font-family : ScalySansSmallCapsRemake;
font-size : 0.423cm;
font-weight : 900;
+ & + * {
+ margin-top : 0.2cm;
+ }
}
//*****************************
// * TABLE
@@ -175,7 +190,9 @@ body {
table{
.useSansSerif();
width : 100%;
- margin-bottom : 1em;
+ & + * {
+ margin-top : 0.325cm;
+ }
thead{
display: table-row-group;
font-weight : 800;
@@ -199,29 +216,23 @@ body {
// * NOTE
// *****************************/
.note{
- &::before{
- content : "";
- box-sizing : border-box;
- border-style : solid;
- border-width : 11px;
- border-image : @noteBorderImage 12;
- border-image-outset : 9px 0px;
- box-shadow : 1px 4px 14px #888;
- position : absolute;
- width : 100%;
- height : 100%;
- top : 0;
- left : 0;
- }
.useSansSerif();
- position : relative;
- margin-top : 1.3em;
- margin-left : -0.1em;
- margin-right : -0.1em;
background-color : @noteGreen;
- padding : 0.5em 0.6em;
+ border-style : solid;
+ border-width : 1px;
+ border-image : @noteBorderImage 12 stretch;
+ border-image-outset : 9px 0px;
+ border-image-width : 11px;
+ padding : 0.13cm 0.16cm;
+ filter : drop-shadow(1px 4px 6px #888);
+ .page :where(&) {
+ margin-top : 9px; //Prevent top border getting cut off on colbreak
+ }
& + * {
- margin-top : 1.3em;
+ margin-top : 0.45cm;
+ }
+ h5 {
+ font-size : 0.375cm;
}
p{
display : block;
@@ -231,7 +242,7 @@ body {
padding-top : .8em;
}
:last-child {
- margin-bottom : 0em;
+ margin-bottom : 0;
}
}
//************************************
@@ -239,18 +250,21 @@ body {
// ************************************/
.descriptive{
.useSansSerif();
- display : block-inline;
- margin-top : 1.4em;
background-color : #faf7ea;
- font-family : ScalySansRemake;
border-style : solid;
border-width : 7px;
border-image : @descriptiveBoxImage 12 stretch;
border-image-outset : 4px;
- box-shadow : 0px 0px 6px #faf7ea;
padding : 0.1em;
+ filter : drop-shadow(0 0 3px #faf7ea);
+ .page :where(&) {
+ margin-top : 4px; //Prevent top border getting cut off on colbreak
+ }
& + * {
- margin-top : 1.4em;
+ margin-top : 0.45cm;
+ }
+ h5 {
+ font-size : 0.375cm;
}
p{
display : block;
@@ -261,14 +275,17 @@ body {
padding-top : .8em;
}
:last-child {
- margin-bottom : 0em;
+ margin-bottom : 0;
}
}
//*****************************
- // * ARTIST CREDIT BLOCK
+ // * Images Snippets
// *****************************/
+
+ /* Arist Credit */
.artist {
position : absolute;
+ width : auto;
text-align : center;
font-family : WalterTurncoat;
font-size : 0.27cm;
@@ -291,6 +308,58 @@ body {
}
}
+ /* Watermark */
+ .watermark {
+ display : grid !important;
+ place-items : center;
+ justify-content : center;
+ position : absolute;
+ top : 0;
+ left : 0;
+ width : 100%;
+ height : 100%;
+ font-size : 120px;
+ text-transform : uppercase;
+ color : black;
+ mix-blend-mode : overlay;
+ opacity : 30%;
+ transform : rotate(-45deg);
+ z-index : 500;
+ p {
+ margin-bottom : none;
+ }
+ }
+
+ /* Watercolor */
+ [class*="watercolor"] {
+ position : absolute;
+ width : 2000px; /* dimensions need to be real big so the user can set */
+ height : 2000px; /* height or width and the image will maintain aspect ratio */
+ -webkit-mask-image : var(--wc);
+ -webkit-mask-size : contain;
+ -webkit-mask-repeat : no-repeat;
+ mask-image : var(--wc);
+ mask-size : contain;
+ mask-repeat : no-repeat;
+ background-size : cover;
+ background-color : @watercolorStain; /*default color*/
+ --wc : @watercolor1; /*default image*/
+ z-index : -2;
+ }
+
+ .watercolor1 { --wc : @watercolor1; }
+ .watercolor2 { --wc : @watercolor2; }
+ .watercolor3 { --wc : @watercolor3; }
+ .watercolor4 { --wc : @watercolor4; }
+ .watercolor5 { --wc : @watercolor5; }
+ .watercolor6 { --wc : @watercolor6; }
+ .watercolor7 { --wc : @watercolor7; }
+ .watercolor8 { --wc : @watercolor8; }
+ .watercolor9 { --wc : @watercolor9; }
+ .watercolor10 { --wc : @watercolor10; }
+ .watercolor11 { --wc : @watercolor11; }
+ .watercolor12 { --wc : @watercolor12; }
+
//*****************************
// * MONSTER STAT BLOCK
// *****************************/
@@ -305,26 +374,16 @@ body {
border-image-outset : 0px 2px;
background-blend-mode : overlay;
background-attachment : fixed;
- box-shadow : 1px 4px 14px #888;
+ filter : drop-shadow(1px 4px 6px #888);
padding : 4px 2px;
- margin : 0px -6px 1em;
+ margin-left : -0.16cm;
+ margin-right : -0.16cm;
+ width : calc(100% + 0.32cm);
}
- //-webkit-transform : translateZ(0); //Prevents shadows from breaking across columns, but breaks internal columns...
position : relative;
padding : 0px;
- margin-bottom : 1em;
-
- p{
- margin-bottom : 0.3cm;
- }
- p+p {
- margin-top : 0; //May not be needed
- text-indent : 0;
- }
- p:last-of-type {
- margin-bottom: 0;
- }
+ margin-bottom : 0.325cm;
//Headers
h2{
@@ -341,7 +400,7 @@ body {
font-weight : 800;
font-variant : small-caps;
border-bottom : 2px solid @headerText;
- margin-top : 0.05cm;
+ // margin-top : 0.05cm; //Font is misaligned. Shift up slightly
padding-bottom : 0.05cm;
}
@@ -355,20 +414,28 @@ body {
border : none;
}
- //Attribute Lists
- dl {
+ //Attribute Lists - All text between HRs is red
+ hr ~ :is(dl,p) {
color : @headerText;
}
+ hr:last-of-type {
+ & ~ :is(dl,p) {
+ color : inherit; // After the HRs, reset text to black
+ }
+ & + * {
+ margin-top : 0.325cm; // Space after last HR
+ }
+ }
// Monster Ability table
hr + table:first-of-type{
margin : 0;
- column-span : 1;
+ column-span : none;
color : @headerText;
background-color : transparent;
border-style : none;
border-image : none;
- -webkit-column-span : 1;
+ -webkit-column-span : none;
tr {
background-color : transparent;
}
@@ -376,11 +443,15 @@ body {
padding: 0px;
}
}
+
+ :last-child {
+ margin-bottom : 0;
+ }
}
//Full Width
.monster.wide{
- .useColumns(0.96);
+ .useColumns(0.96, @fillMode: balance);
}
//*****************************
@@ -447,14 +518,20 @@ body {
pre code{
width : 100%;
- display : block;
- border : 4px solid;
+ display : inline-block;
+ border-style : solid;
+ border-width : 1px;
border-image : @codeBorderImage 26 stretch;
border-image-width : 10px;
border-image-outset : 2px;
border-radius : 12px;
+ margin-bottom : 2px;
+ padding : 0.15cm;
+ .page :where(&) {
+ margin-top : 2px; //Prevent top border getting cut off on colbreak
+ }
& + * {
- margin-top : 1em;
+ margin-top : 0.325cm;
}
}
//*****************************
@@ -464,13 +541,6 @@ body {
visibility : hidden;
margin : 0px;
}
- //Modified unorder list, used in spells
- hr+ul{
- margin-bottom : 0.5em;
- padding-left : 1em;
- text-indent : -1em;
- list-style-type : none;
- }
.columnSplit {
visibility : hidden;
-webkit-column-break-after : always;
@@ -485,10 +555,6 @@ body {
page-break-inside : avoid;
break-inside : avoid;
}
- //Better spacing for spell blocks
- h4+p+hr+ul{
- margin-top : -0.5em
- }
//Text indent right after table
table+p{
text-indent : 1em;
@@ -509,10 +575,7 @@ body {
// *****************************/
.page .spellList{
.useSansSerif();
- column-count : 4;
- column-span : all;
- -webkit-column-span : all;
- -moz-column-span : all;
+ column-count : 2;
ul+h5{
margin-top : 15px;
}
@@ -529,32 +592,57 @@ body {
page-break-inside : auto;
break-inside : auto;
}
+ &.wide{
+ column-count : 4;
+ }
}
-//*****************************
-// * WIDE
-// *****************************/
-.page .wide{
- column-span : all;
- -webkit-column-span : all;
- -moz-column-span : all;
-}
+
//*****************************
// * CLASS TABLE
// *****************************/
.page .classTable{
- margin-top : 25px;
- margin-bottom : 40px;
- border-collapse : separate;
- background-color : white;
- border : initial;
- border-style : solid;
- border-image-outset : 25px 17px;
- border-image-repeat : stretch;
- border-image-slice : 150 200 150 200;
- border-image-source : @frameBorderImage;
- border-image-width : 47px;
- h5{
- margin-bottom : 10px;
+ th[colspan]:not([rowspan]) {
+ white-space : nowrap;
+ }
+ &.frame {
+ margin-top : 0.66cm;
+ margin-bottom : 1.05cm;
+ margin-left : -0.1cm;
+ margin-right : -0.1cm;
+ width : calc(100% + 0.2cm);
+ border-collapse : separate;
+ background-color : white;
+ border : initial;
+ border-style : solid;
+ border-image-outset : 0.55cm 0.3cm;
+ border-image-repeat : stretch;
+ border-image-slice : 200;
+ border-image-source : @frameBorderImage;
+ border-image-width : 47px;
+ }
+ &.decoration {
+ transform-style : preserve-3d;
+ }
+ &.decoration::before {
+ content :'';
+ position : absolute;
+ background-image : @classTableDecoration;
+ background-size : contain;
+ background-repeat : space;
+ width : 7.75cm;
+ height : calc(100% + 3.3cm);
+ top : 50%;
+ left : 50%;
+ transform : translateY(-50%) translateX(-50%) translateZ(-1px);
+ filter : drop-shadow(0px 0px 1px #C8C5C080)
+ }
+ &.decoration.wide::before {
+ width : calc(100% + 3.3cm);
+ height : 7.75cm;
+ top : calc(50% + 0.4cm);
+ }
+ h5 + table{
+ margin-top : 0.2cm;
}
}
//*****************************
@@ -626,7 +714,7 @@ body {
}
}
&.wide{
- .useColumns(0.96);
+ .useColumns(0.96, @fillMode: balance);
}
}
@@ -635,16 +723,16 @@ body {
// *****************************/
.page {
.block {
- break-inside : avoid;
- -webkit-transform : translateZ(0); //Prevents shadows from breaking across columns
+ break-inside : avoid;
+ display : inline-block;
+ .page :where(&) {
+ width : 100%;
+ }
+ //-webkit-transform : translateZ(0); //Prevents shadows from breaking across columns
}
.inline-block {
display : inline-block;
text-indent : initial;
- line-height : 1.3em;
- }
- div {
- column-gap : 0.5cm; //Default spacing if a div uses multicolumns
}
}
@@ -655,20 +743,21 @@ body {
dl {
line-height : 1.3em;
padding-left : 1em;
- text-indent : -1em;
+ white-space : pre-line;
+ & + * {
+ margin-top : 0.28cm;
+ }
}
dl + * {
- margin-top : 0.28cm;
- }
- dl + p {
- margin-top : 0.5em;
+ margin-top : 0.17cm;
}
p + dl {
- margin-top: -0.5em;
+ margin-top: 0.17cm;
}
dt {
display : inline;
margin-right : 5px;
+ margin-left : -1em;
}
dd {
display : inline;
@@ -682,9 +771,21 @@ body {
// *****************************/
.page {
.blank {
- height: 0.75em;
- }
- p + .blank {
- margin-top: -1em;
+ height : 1em;
+ margin-top : 0;
+ }
+}
+
+//*****************************
+// * WIDE
+// *****************************/
+.page .wide{
+ column-span : all;
+ -webkit-column-span : all;
+ -moz-column-span : all;
+ display : block;
+ margin-bottom : 0.34cm;
+ &+* {
+ margin-top : 0;
}
}
diff --git a/themes/5ePhbLegacy.style.less b/themes/5ePhbLegacy.style.less
index d814d4036..fb2d6a829 100644
--- a/themes/5ePhbLegacy.style.less
+++ b/themes/5ePhbLegacy.style.less
@@ -231,11 +231,9 @@ body {
// Monster Ability table
hr+table{
margin : 0;
- column-span : 1;
background-color : transparent;
border-style : none;
border-image : none;
- -webkit-column-span : 1;
tbody{
tr:nth-child(odd), tr:nth-child(even){
background-color : transparent;
@@ -416,7 +414,6 @@ body {
// * DESCRIPTIVE TEXT BOX
// ************************************/
.phb .descriptive{
- display : block-inline;
margin-bottom : 1em;
background-color : #faf7ea;
font-family : ScalySans;
diff --git a/themes/assets/assets.less b/themes/assets/assets.less
index f159c9fc6..8790b1e59 100644
--- a/themes/assets/assets.less
+++ b/themes/assets/assets.less
@@ -1,3 +1,4 @@
+// PHB
@footerAccentImage : data-uri('./themes/assets/footerAccent.png');
@frameBorderImage : data-uri('./themes/assets/frameBorder.png');
@backgroundImage : data-uri('./themes/assets/parchmentBackground.jpg');
@@ -8,3 +9,18 @@
@monsterBlockBackground : data-uri('./themes/assets/parchmentBackgroundGrayscale.jpg');
@monsterBorderImage : data-uri('./themes/assets/monsterBorderFancy.png');
@codeBorderImage : data-uri('./themes/assets/codeBorder.png');
+@classTableDecoration : data-uri('./themes/assets/classTableDecoration.png');
+
+// Watercolor Images
+@watercolor1 : data-uri('./themes/assets/watercolor/watercolor1.png');
+@watercolor2 : data-uri('./themes/assets/watercolor/watercolor2.png');
+@watercolor3 : data-uri('./themes/assets/watercolor/watercolor3.png');
+@watercolor4 : data-uri('./themes/assets/watercolor/watercolor4.png');
+@watercolor5 : data-uri('./themes/assets/watercolor/watercolor5.png');
+@watercolor6 : data-uri('./themes/assets/watercolor/watercolor6.png');
+@watercolor7 : data-uri('./themes/assets/watercolor/watercolor7.png');
+@watercolor8 : data-uri('./themes/assets/watercolor/watercolor8.png');
+@watercolor9 : data-uri('./themes/assets/watercolor/watercolor9.png');
+@watercolor10 : data-uri('./themes/assets/watercolor/watercolor10.png');
+@watercolor11 : data-uri('./themes/assets/watercolor/watercolor11.png');
+@watercolor12 : data-uri('./themes/assets/watercolor/watercolor12.png');
diff --git a/themes/assets/classTableDecoration.png b/themes/assets/classTableDecoration.png
new file mode 100644
index 000000000..3d8346c67
Binary files /dev/null and b/themes/assets/classTableDecoration.png differ
diff --git a/themes/assets/watercolor/watercolor1.png b/themes/assets/watercolor/watercolor1.png
new file mode 100644
index 000000000..5855e6aff
Binary files /dev/null and b/themes/assets/watercolor/watercolor1.png differ
diff --git a/themes/assets/watercolor/watercolor10.png b/themes/assets/watercolor/watercolor10.png
new file mode 100644
index 000000000..96c38892e
Binary files /dev/null and b/themes/assets/watercolor/watercolor10.png differ
diff --git a/themes/assets/watercolor/watercolor11.png b/themes/assets/watercolor/watercolor11.png
new file mode 100644
index 000000000..e43ab4f0e
Binary files /dev/null and b/themes/assets/watercolor/watercolor11.png differ
diff --git a/themes/assets/watercolor/watercolor12.png b/themes/assets/watercolor/watercolor12.png
new file mode 100644
index 000000000..f901dd46a
Binary files /dev/null and b/themes/assets/watercolor/watercolor12.png differ
diff --git a/themes/assets/watercolor/watercolor2.png b/themes/assets/watercolor/watercolor2.png
new file mode 100644
index 000000000..3ce39c171
Binary files /dev/null and b/themes/assets/watercolor/watercolor2.png differ
diff --git a/themes/assets/watercolor/watercolor3.png b/themes/assets/watercolor/watercolor3.png
new file mode 100644
index 000000000..2b6600e97
Binary files /dev/null and b/themes/assets/watercolor/watercolor3.png differ
diff --git a/themes/assets/watercolor/watercolor4.png b/themes/assets/watercolor/watercolor4.png
new file mode 100644
index 000000000..d7b91c377
Binary files /dev/null and b/themes/assets/watercolor/watercolor4.png differ
diff --git a/themes/assets/watercolor/watercolor5.png b/themes/assets/watercolor/watercolor5.png
new file mode 100644
index 000000000..8b0d08a10
Binary files /dev/null and b/themes/assets/watercolor/watercolor5.png differ
diff --git a/themes/assets/watercolor/watercolor6.png b/themes/assets/watercolor/watercolor6.png
new file mode 100644
index 000000000..f82bc3a3e
Binary files /dev/null and b/themes/assets/watercolor/watercolor6.png differ
diff --git a/themes/assets/watercolor/watercolor7.png b/themes/assets/watercolor/watercolor7.png
new file mode 100644
index 000000000..c49bcbafe
Binary files /dev/null and b/themes/assets/watercolor/watercolor7.png differ
diff --git a/themes/assets/watercolor/watercolor8.png b/themes/assets/watercolor/watercolor8.png
new file mode 100644
index 000000000..bfc82f227
Binary files /dev/null and b/themes/assets/watercolor/watercolor8.png differ
diff --git a/themes/assets/watercolor/watercolor9.png b/themes/assets/watercolor/watercolor9.png
new file mode 100644
index 000000000..c001f2dee
Binary files /dev/null and b/themes/assets/watercolor/watercolor9.png differ