`. The first (or second, depending on which side of the homebrewery went missing) `
` has a style tag, that looks similar to this: `
`.
+Homebrewery is specifically designed to not hold personal information as a measure to protect both users and admin, and does not require an email address. Thus it would be difficult to send a new password to a user. Reach out to the moderators on [the subreddit](https://www.reddit.com/r/homebrewery) with your Homebrewery username.
-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).
+If you have linked your account with a Google account, you would change your password within Google.
-**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!
+### Is there a way to restore a previous version of my brew?
-**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.
+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.
+### I worked on a brew for X hours, and when I returned the next day, all changes were gone?
-**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.
+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.
-## 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/)
+*Linking your brew to Google Drive greatly decreases the odds of lost work.*
-**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.
+### Why is only Chrome supported?
-***Example:*** You want to have a different font for all elements with the `testFontClass` class. This is how you would go about that:
+Different browsers have differing abilities to handle web styling (or "CSS"). For example, Firefox is not currently capable of handling column breaks well but Chrome has no problem. Also, each browser has slight differences in how they display pages which can make it a nightmare to compensate for. These capabilities change over time and we are hopeful that each browser update bridges these gaps and adds more features; until then, we will develop with one browser in mind.
-1. Upload your font to [fontsquirrel.com](https://www.fontsquirrel.com/tools/webfont-generator) and have it base64 encoded.
+### Both my friend and myself are using Chrome, but the brews still look different. Why?
-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):
+A pixel can be rendered differently depending on the browser, operating system, computer, or screen. Unless you and your friend have exactly the same setup, it is likely your online brew will have very tiny differences. However, sometimes a few pixels is all it takes to create *big* differences....for example, an extra pixel can cause a whole line of text or even a monster stat block to run out of space in it's current column and be pushed to the next column or even off the page.
- @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;
- }
+The best way to avoid this is to leave space at the end of a column equal to one or two lines of text. Or, create a PDF from your document for sharing--- PDF's are designed to be rendered the same on all devices.
-3. In your homebrew, either add a `` section at the top or, if you already have one, add the copied `@font-face{ [...] }` to it.
+### Why do I need to manually create a new page? Why doesn't text flow between pages?
-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";`
+\page
-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/)
+### Whenever I click on the "Get PDF" button, instead of getting a download, it opens Print Preview in another tab.
-**Q:** How do I fix line indentations in monster statblocks?
-**A:** [Described here](https://old.reddit.com/r/homebrewery/comments/ag46i1/indentation_problem/)
+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.
-**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.
+### The preview window is suddenly gone, I can only see the editor side of the Homebrewery (or the other way around).
-## 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.
+1. Press `CTRL`+`SHIFT`+`i` (or right-click and select "Inspect") while in the Homebrewery.
-The default homebrewery paper size is “Letter.”
+2. Expand...
+```
+ - `body`
+ - `main`
+ - `div class="homebrew"`
+ - `div class="editPage page"`
+ - `div class="content"`
+ - `div class="splitPane"`
+```
-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".
+There you will find 3 divs: `div class="pane" [...]`, `div class="divider" [...]`, and `div class="pane" [...]`.
-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.
+The `class="pane"` looks similar to this: `div class="pane" data-reactid="36" style="flex: 0 0 auto; width: 925px;"`.
-## 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.
+Change whatever stands behind width: to something smaller than your display width.
----
+### I have white borders on the bottom/sides of the print preview.
-# PSAs
+The Homebrewery paper size and your print paper size do not match.
-## Back Up Your Stuff!
+The Homebrewery defaults to creating US Letter page sizes. If you are printing with A4 size paper, you must add the "A4 Page Size" snippet. In the "Print" dialog be sure your Paper Size matches the page size in Homebrewery.
-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 ;) ).
+### Typing `#### Adhesion` in the text editor doesn't show the header at all in the completed page?
-Whatever method you prefer, just do it.
+Whitelist homebrewery.naturalcrit.com in your ad-blocking software.
-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
From b6739483ee5e381ff98ebbc10397e84b74776e50 Mon Sep 17 00:00:00 2001
From: Gazook89 <58999374+Gazook89@users.noreply.github.com>
Date: Mon, 11 Oct 2021 18:18:52 -0500
Subject: [PATCH 080/610] update faq.md with revisions from calculuschild.
---
faq.md | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/faq.md b/faq.md
index d42a2a303..0e6843a2b 100644
--- a/faq.md
+++ b/faq.md
@@ -58,7 +58,7 @@ pre {
```
# FAQ
-{{wide Updated Sept. 12, 2021}}
+{{wide Updated Oct. 11, 2021}}
### The site is down for me! Anyone else?
@@ -69,7 +69,8 @@ You can check the site status here: [Everyone or Just Me](https://downforeveryon
Go to https://homebrewery.naturalcrit.com/login, and hit the "*logout*" link.
-### I am getting an error when trying to save to Google Drive?
+### Why am I getting an error when trying to save, and my account is linked to Google?
+
A sign-in with Google only lasts a year until the authentication expires. You must go [here](https://www.naturalcrit.com/login), click the *Log-out* button, and then sign back in using your Google account.
### I lost my password, how do I reset it? How do I change my password?
@@ -80,14 +81,11 @@ If you have linked your account with a Google account, you would change your pas
### Is there a way to restore a previous version of my brew?
-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.
+Currently, there is no way to do this through the site yourself. This would take too much of a toll on the amount of storage the homebrewery requires. However, we do have daily backups of our database that we keep for 8 days, and you can contact the moderators on [the subreddit](https://www.reddit.com/r/homebrewery) with your Homebrewery username, the name of the lost brew, and the last known time it was working properly. We can manually look through our backups and restore it if it exists.
-### I worked on a brew for X hours, and when I returned the next day, all changes were gone?
-
-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.
-
-*Linking your brew to Google Drive greatly decreases the odds of lost work.*
+# I worked on a brew for X hours, and suddenly all the text disappeared!
+This usually happens if you accidentally drag-select all of your text and then start typing which overwrites the selection. Do not panic, and do not refresh the page or reload your brew quite yet as it is probably auto-saved in this state already. Simply press CTRL+Z as many times as needed to undo your last few changes and you will be back to where you were, then make sure to save your brew in the "good" state.
### Why is only Chrome supported?
@@ -149,8 +147,4 @@ The Homebrewery defaults to creating US Letter page sizes. If you are printing
### Typing `#### Adhesion` in the text editor doesn't show the header at all in the completed page?
-Whitelist homebrewery.naturalcrit.com in your ad-blocking software.
-
-
-
-
+Your ad-blocking software is mistakenly assuming your text to be an ad. Whitelist homebrewery.naturalcrit.com in your ad-blocking software.
From 1ff83086475946c19239a2806c283cf98acb7fdb Mon Sep 17 00:00:00 2001
From: Gazook89 <58999374+Gazook89@users.noreply.github.com>
Date: Mon, 11 Oct 2021 20:31:13 -0500
Subject: [PATCH 081/610] add link to FAQ in welcome pages
---
client/homebrew/pages/homePage/welcome_msg.md | 6 +++++-
.../homebrew/pages/homePage/welcome_msg_v3.md | 2 ++
faq.md | 18 ++++++++++--------
3 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/client/homebrew/pages/homePage/welcome_msg.md b/client/homebrew/pages/homePage/welcome_msg.md
index b57fc50b4..f182517f5 100644
--- a/client/homebrew/pages/homePage/welcome_msg.md
+++ b/client/homebrew/pages/homePage/welcome_msg.md
@@ -45,7 +45,11 @@ With the latest major update to *The Homebrewery* we've implemented an extended
What's new in the latest update? Check out the full changelog [here](/changelog)
### Bugs, Issues, Suggestions?
-Have an idea of how to make The Homebrewery better? Or did you find something that wasn't quite right? Head [here](https://www.reddit.com/r/homebrewery/submit?selftext=true&title=%5BIssue%5D%20Describe%20Your%20Issue%20Here) and let me know!.
+Take a quick look at our [Frequently Asked Questions page](/faq) to see if your question has a handy answer.
+
+Need help getting started or just the right look for your brew? Head to [r/Homebrewery](https://www.reddit.com/r/homebrewery/submit?selftext=true&title=%5BIssue%5D%20Describe%20Your%20Issue%20Here) and let us know!
+
+Have an idea to make The Homebrewery better? Or did you find something that wasn't quite right? Check out the [GitHub Repo](https://github.com/naturalcrit/homebrewery/) to report technical issues.
### Legal Junk
The Homebrewery is licensed using the [MIT License](https://github.com/naturalcrit/homebrewery/blob/master/license). This means you are free to use The Homebrewery codebase any way that you want, except for claiming that you made it yourself.
diff --git a/client/homebrew/pages/homePage/welcome_msg_v3.md b/client/homebrew/pages/homePage/welcome_msg_v3.md
index ecd5ffe7a..8baf14269 100644
--- a/client/homebrew/pages/homePage/welcome_msg_v3.md
+++ b/client/homebrew/pages/homePage/welcome_msg_v3.md
@@ -60,6 +60,8 @@ Like this tool? Want to buy me a beer? [Head here](https://www.patreon.com/Natur
This tool will **always** be free, never have ads, and I will never offer any "premium" features or whatever.
### Bugs, Issues, Suggestions?
+Take a quick look at our [Frequently Asked Questions page](/faq) to see if your question has a handy answer.
+
Need help getting started or just the right look for your brew? Head to [r/Homebrewery](https://www.reddit.com/r/homebrewery/submit?selftext=true&title=%5BIssue%5D%20Describe%20Your%20Issue%20Here) and let us know!
Have an idea to make The Homebrewery better? Or did you find something that wasn't quite right? Check out the [GitHub Repo](https://github.com/naturalcrit/homebrewery/) to report technical issues.
diff --git a/faq.md b/faq.md
index 0e6843a2b..1889b09e4 100644
--- a/faq.md
+++ b/faq.md
@@ -55,6 +55,10 @@ pre {
font-size:2em;
margin-left:-1.2em;
}
+
+.page .columnSplit + h3 {
+ margin-top:0;
+}
```
# FAQ
@@ -83,10 +87,12 @@ If you have linked your account with a Google account, you would change your pas
Currently, there is no way to do this through the site yourself. This would take too much of a toll on the amount of storage the homebrewery requires. However, we do have daily backups of our database that we keep for 8 days, and you can contact the moderators on [the subreddit](https://www.reddit.com/r/homebrewery) with your Homebrewery username, the name of the lost brew, and the last known time it was working properly. We can manually look through our backups and restore it if it exists.
-# I worked on a brew for X hours, and suddenly all the text disappeared!
+### I worked on a brew for X hours, and suddenly all the text disappeared!
This usually happens if you accidentally drag-select all of your text and then start typing which overwrites the selection. Do not panic, and do not refresh the page or reload your brew quite yet as it is probably auto-saved in this state already. Simply press CTRL+Z as many times as needed to undo your last few changes and you will be back to where you were, then make sure to save your brew in the "good" state.
+\column
+
### Why is only Chrome supported?
Different browsers have differing abilities to handle web styling (or "CSS"). For example, Firefox is not currently capable of handling column breaks well but Chrome has no problem. Also, each browser has slight differences in how they display pages which can make it a nightmare to compensate for. These capabilities change over time and we are hopeful that each browser update bridges these gaps and adds more features; until then, we will develop with one browser in mind.
@@ -106,18 +112,14 @@ The Homebrewery does not provide images for use besides some page elements and e
Once you have an image you would like to use, it is recommended to host it somewhere that won't disappear; commonly, people host their images on [Imgur](https://www.imgur.com). Create an account and upload your images there, and use the *Direct Link* that is shown when you click into the image from the gallery in your Homebrewery document.
+\page
+
### A particular font does not work for my language, what do I do?
The fonts used were originally created for use with the English language, though revisions since then have added more support for other languages. They are still not complete sets and may be missing a glyph/character you need. Unfortunately, the volunteer group as it stands at the time of this writing does not have a font guru, so it would be difficult to add more glyphs (especially complicated glyphs). Let us know which glyph is missing on the subreddit, but you may need to search [Google Fonts](https://fonts.google.com) for an alternative font if you need something fast.
-\page
-
-
-
### Whenever I click on the "Get PDF" button, instead of getting a download, it opens Print Preview in another tab.
-
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.
-
### The preview window is suddenly gone, I can only see the editor side of the Homebrewery (or the other way around).
1. Press `CTRL`+`SHIFT`+`i` (or right-click and select "Inspect") while in the Homebrewery.
@@ -147,4 +149,4 @@ The Homebrewery defaults to creating US Letter page sizes. If you are printing
### Typing `#### Adhesion` in the text editor doesn't show the header at all in the completed page?
-Your ad-blocking software is mistakenly assuming your text to be an ad. Whitelist homebrewery.naturalcrit.com in your ad-blocking software.
+Your ad-blocking software is mistakenly assuming your text to be an ad. Whitelist homebrewery.naturalcrit.com in your ad-blocking software.
\ No newline at end of file
From 9add142edfacc5757978c6f60c27e3967c7ec0c2 Mon Sep 17 00:00:00 2001
From: Trevor Buckner
Date: Tue, 12 Oct 2021 22:25:38 -0400
Subject: [PATCH 082/610] Tweak v3 welcome to fit in page
---
client/homebrew/pages/homePage/welcome_msg_v3.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/client/homebrew/pages/homePage/welcome_msg_v3.md b/client/homebrew/pages/homePage/welcome_msg_v3.md
index 8baf14269..92704ba86 100644
--- a/client/homebrew/pages/homePage/welcome_msg_v3.md
+++ b/client/homebrew/pages/homePage/welcome_msg_v3.md
@@ -52,7 +52,7 @@ Much of the syntax and styling has changed in V3. Code in one version may be bro
Scroll down to the next page for a brief summary of the changes and new features available in V3!
#### New Things All The Time!
-What's new in the latest update? Check out the full changelog [here](/changelog).
+Check out the latest updates in the full changelog [here](/changelog).
### Helping out
Like this tool? Want to buy me a beer? [Head here](https://www.patreon.com/Naturalcrit) to help me keep the servers running.
From 8244b59b579540236786f431aa4ee9cbd1ae0d16 Mon Sep 17 00:00:00 2001
From: Trevor Buckner
Date: Tue, 12 Oct 2021 22:38:16 -0400
Subject: [PATCH 083/610] Update welcome_msg_v3.md
---
.../homebrew/pages/homePage/welcome_msg_v3.md | 27 +++++++++----------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/client/homebrew/pages/homePage/welcome_msg_v3.md b/client/homebrew/pages/homePage/welcome_msg_v3.md
index 92704ba86..9cd1b6062 100644
--- a/client/homebrew/pages/homePage/welcome_msg_v3.md
+++ b/client/homebrew/pages/homePage/welcome_msg_v3.md
@@ -34,13 +34,18 @@ After clicking the "Print" item in the navbar a new page will open and a print d
* In **Options** make sure "Background Images" is selected.
* Hit print and enjoy! You're done!
-If you want to save ink or have a monochrome printer, add the **PRINT → {{fas,fa-tint}} Ink Friendly** snippet to your brew before you print
+If you want to save ink or have a monochrome printer, add the **PRINT → {{fas,fa-tint}} Ink Friendly** snippet to your brew!
}}
-
+ {position:absolute,bottom:20px,left:130px,width:220px}
-
1
-
PART 1 | FANCINESS
+{{artist,bottom:160px,left:100px
+##### Homebrew Mug
+[naturalcrit](https://homebrew.naturalcrit.com)
+}}
+
+{{pageNumber 1}}
+{{footnote PART 1 | FANCINESS}}
\column
@@ -74,8 +79,8 @@ If you wish to sell or in some way gain profit for what's created on this site,
#### Crediting Me
If you'd like to credit me in your brew, I'd be flattered! Just reference that you made it with The Homebrewery.
-### More Resources
-If you are looking for more 5e Homebrew resources check out [r/UnearthedArcana](https://www.reddit.com/r/UnearthedArcana/) and their list of useful resources [here](https://www.reddit.com/r/UnearthedArcana/wiki/resources).
+### More Homebrew Resources
+Check out [r/UnearthedArcana](https://www.reddit.com/r/UnearthedArcana/) and their list of useful resources [here](https://www.reddit.com/r/UnearthedArcana/wiki/resources).
\page
@@ -86,7 +91,6 @@ The Homebrewery aims to make homebrewing as simple as possible, providing a live
In version 3.0.0, with a goal of adding maximum flexibility without users resorting to complex HTML to accomplish simple tasks, Homebrewery provides an extended verision of Markdown with additional syntax.
**You can enable V3 via the {{fa,fa-info-circle}} Properties button!**
-
### Curly Brackets
The biggest change in V3 is the replacement of `` and `` with `{{ }}` for a cleaner custom formatting. Inline spans and block elements can be created and given ID's and Classes, as well as css properties, each of which are comma separated with no spaces. Use double quotes if a value requires spaces. Spans and Blocks start the same:
@@ -99,7 +103,6 @@ My favorite author is {{pen,#author,color:orange,font-family:"trebuchet ms" Bran
My favorite book is Wheel of Time. This block has a class of `purple`, an id of `book`, and centered text with a colored background. The opening and closing brackets are on lines separate from the block contents.
}}
-
#### Injection
For any element not inside a span or block, you can *inject* attributes using the same syntax but with single brackets in a single line immediately after the element.
@@ -161,12 +164,8 @@ Using *Curly Injection* you can assign an id, classes, or specific inline CSS pr
## Snippets
Homebrewery comes with a series of *code snippets* found at the top of the editor pane that make it easy to create brews as quickly as possible. Just set your cursor where you want the code to appear in the editor pane, choose a snippet, and make the adjustments you need.
-
## Style Editor Panel
-
{{fa,fa-paint-brush}} Technically released prior to v3 but still new to many users, check out the new **Style Editor** located on the right side of the Snippet bar. This editor accepts CSS for styling without requiring `
@@ -116,9 +116,10 @@ module.exports = ()=>{
# ${_.sample(titles)}
-
+
+{{wide
##### ${_.sample(subtitles)}
-
+}}
\\page`;
};
\ No newline at end of file
From 9e7239cfef48c563e34cb579fb037ea8845796c8 Mon Sep 17 00:00:00 2001
From: Charlie Humphreys
Date: Sun, 28 Nov 2021 22:37:51 -0600
Subject: [PATCH 194/610] Fix table of contents CSS so the first items in both
columns start at the same vertical position
---
themes/5ePhb.style.less | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/themes/5ePhb.style.less b/themes/5ePhb.style.less
index 8991e51e7..0ac35a916 100644
--- a/themes/5ePhb.style.less
+++ b/themes/5ePhb.style.less
@@ -652,7 +652,7 @@ body {
break-inside : avoid;
h1 {
text-align : center;
- margin-bottom : 0cm;
+ margin-bottom : 0.52cm;
}
a{
display : table;
@@ -668,9 +668,6 @@ body {
line-height: 1.2em;
}
}
- & > ul {
- margin-top: 0.52cm;
- }
ul{
padding-left : 0;
list-style-type : none;
From 85c221e9bda1fe4a521ffd7e65293169076dadeb Mon Sep 17 00:00:00 2001
From: Charlie Humphreys
Date: Sun, 28 Nov 2021 23:02:44 -0600
Subject: [PATCH 195/610] Change counter usage in cover page snippet to no
longer increment the counter on the cover page
---
client/homebrew/editor/snippetbar/snippets/coverpage.gen.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/client/homebrew/editor/snippetbar/snippets/coverpage.gen.js b/client/homebrew/editor/snippetbar/snippets/coverpage.gen.js
index ca1b27dd0..67a5be509 100644
--- a/client/homebrew/editor/snippetbar/snippets/coverpage.gen.js
+++ b/client/homebrew/editor/snippetbar/snippets/coverpage.gen.js
@@ -100,9 +100,8 @@ const subtitles = [
module.exports = ()=>{
return `
-
+{{margin-top:225px}}
# ${_.sample(titles)}
-
+{{margin-top:25px}}
{{wide
##### ${_.sample(subtitles)}
From cebc74009dc3eef08ced703971efd77f1df9b84c Mon Sep 17 00:00:00 2001
From: Trevor Buckner
Date: Wed, 15 Dec 2021 21:48:13 -0500
Subject: [PATCH 245/610] Couple more tweaks to spacings in the TOC
---
themes/5ePhb.style.less | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/themes/5ePhb.style.less b/themes/5ePhb.style.less
index 34998480e..63af5e972 100644
--- a/themes/5ePhb.style.less
+++ b/themes/5ePhb.style.less
@@ -653,7 +653,7 @@ body {
break-inside : avoid;
h1 {
text-align : center;
- margin-bottom : 0.52cm;
+ margin-bottom : 0.3cm;
}
a{
display : table;
@@ -664,7 +664,8 @@ body {
}
}
h4 {
- margin-top : 0.14cm;
+ margin-top : 0.2cm;
+ line-height : 0.4cm;
& + ul li {
line-height: 1.2em;
}
From cfe9bcdfe672a99791d8268cbb641266cfa6dc86 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 16 Dec 2021 03:01:09 +0000
Subject: [PATCH 246/610] Bump pico-check from 2.1.3 to 2.2.0
Bumps [pico-check](https://github.com/stolksdorf/pico-check) from 2.1.3 to 2.2.0.
- [Release notes](https://github.com/stolksdorf/pico-check/releases)
- [Commits](https://github.com/stolksdorf/pico-check/commits)
---
updated-dependencies:
- dependency-name: pico-check
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index a8ad026b8..deb332675 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -48,7 +48,7 @@
"devDependencies": {
"eslint": "^8.4.1",
"eslint-plugin-react": "^7.27.1",
- "pico-check": "^2.1.3"
+ "pico-check": "^2.2.0"
},
"engines": {
"node": "16.11.x"
@@ -7129,9 +7129,9 @@
}
},
"node_modules/pico-check": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/pico-check/-/pico-check-2.1.3.tgz",
- "integrity": "sha512-QkxfOKE35cECjQLbwtM1hwPWMuYWxoR9O3V9MPaQVCHbTt8zJZHoobBN55UsnDyFlbeVzf1JK7ecGqUPrvPtkA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pico-check/-/pico-check-2.2.0.tgz",
+ "integrity": "sha512-ruVsr2h1CDfp0iCqVG6BBBdegZ4+XsqidamvgR5P3b5goW003w+8VjtZATicY8ugnpjN9K83rubQaCQq7zrTVQ==",
"dev": true,
"bin": {
"pico-check": "src/cli.js"
@@ -15042,9 +15042,9 @@
}
},
"pico-check": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/pico-check/-/pico-check-2.1.3.tgz",
- "integrity": "sha512-QkxfOKE35cECjQLbwtM1hwPWMuYWxoR9O3V9MPaQVCHbTt8zJZHoobBN55UsnDyFlbeVzf1JK7ecGqUPrvPtkA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pico-check/-/pico-check-2.2.0.tgz",
+ "integrity": "sha512-ruVsr2h1CDfp0iCqVG6BBBdegZ4+XsqidamvgR5P3b5goW003w+8VjtZATicY8ugnpjN9K83rubQaCQq7zrTVQ==",
"dev": true
},
"picocolors": {
diff --git a/package.json b/package.json
index a60f4082f..d8ef42d19 100644
--- a/package.json
+++ b/package.json
@@ -79,6 +79,6 @@
"devDependencies": {
"eslint": "^8.4.1",
"eslint-plugin-react": "^7.27.1",
- "pico-check": "^2.1.3"
+ "pico-check": "^2.2.0"
}
}
From fd23396b955af37d2fe1605c76b73d4aee1f2bda Mon Sep 17 00:00:00 2001
From: Charlie Humphreys
Date: Wed, 15 Dec 2021 23:57:52 -0600
Subject: [PATCH 247/610] Add migrate nav item to pages and update migrate
document
---
client/homebrew/navbar/migrate.navitem.jsx | 13 ++
client/homebrew/navbar/navbar.less | 7 +-
client/homebrew/pages/editPage/editPage.jsx | 2 +
client/homebrew/pages/errorPage/errorPage.jsx | 2 +
client/homebrew/pages/homePage/homePage.jsx | 2 +
client/homebrew/pages/homePage/migrate.md | 202 ++++++++++++++++++
client/homebrew/pages/homePage/migrate_gmb.md | 169 ---------------
client/homebrew/pages/newPage/newPage.jsx | 2 +
server.js | 8 +-
shared/naturalcrit/markdown.js | 19 +-
10 files changed, 233 insertions(+), 193 deletions(-)
create mode 100644 client/homebrew/navbar/migrate.navitem.jsx
create mode 100644 client/homebrew/pages/homePage/migrate.md
delete mode 100644 client/homebrew/pages/homePage/migrate_gmb.md
diff --git a/client/homebrew/navbar/migrate.navitem.jsx b/client/homebrew/navbar/migrate.navitem.jsx
new file mode 100644
index 000000000..d0ac086d3
--- /dev/null
+++ b/client/homebrew/navbar/migrate.navitem.jsx
@@ -0,0 +1,13 @@
+const React = require('react');
+const Nav = require('naturalcrit/nav/nav.jsx');
+
+module.exports = function(props){
+ return
+ migrate
+ ;
+};
diff --git a/client/homebrew/navbar/navbar.less b/client/homebrew/navbar/navbar.less
index 36cbdf935..37c28f3e8 100644
--- a/client/homebrew/navbar/navbar.less
+++ b/client/homebrew/navbar/navbar.less
@@ -1,5 +1,5 @@
@navbarHeight : 28px;
-@keyframes coloring {
+@keyframes pinkColoring {
//from {color: white;}
//to {color: red;}
0% {color: pink;}
@@ -62,11 +62,14 @@
}
i{
.animate(color);
- animation-name: coloring;
+ animation-name: pinkColoring;
animation-duration: 2s;
color: pink;
}
}
+ .migrate.navItem{
+ border-right : 1px solid #666;
+ }
.recent.navItem{
position : relative;
.dropdown{
diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx
index ee4f41f5b..c73e59bd7 100644
--- a/client/homebrew/pages/editPage/editPage.jsx
+++ b/client/homebrew/pages/editPage/editPage.jsx
@@ -23,6 +23,7 @@ const Markdown = require('naturalcrit/markdown.js');
const googleDriveActive = require('../../googleDrive.png');
const googleDriveInactive = require('../../googleDriveMono.png');
+const MigrateNavItem = require("../../navbar/migrate.navitem.jsx");
const SAVE_TIMEOUT = 3000;
@@ -433,6 +434,7 @@ const EditPage = createClass({
{this.renderGoogleDriveIcon()}
{this.renderSaveButton()}
+
diff --git a/client/homebrew/pages/errorPage/errorPage.jsx b/client/homebrew/pages/errorPage/errorPage.jsx
index aa51c83be..fe4473dc7 100644
--- a/client/homebrew/pages/errorPage/errorPage.jsx
+++ b/client/homebrew/pages/errorPage/errorPage.jsx
@@ -11,6 +11,7 @@ const IssueNavItem = require('../../navbar/issue.navitem.jsx');
const RecentNavItem = require('../../navbar/recent.navitem.jsx').both;
const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx');
+const MigrateNavItem = require("../../navbar/migrate.navitem.jsx");
const ErrorPage = createClass({
getDefaultProps : function() {
@@ -33,6 +34,7 @@ const ErrorPage = createClass({
+
diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx
index c46d451eb..f7384285d 100644
--- a/client/homebrew/pages/homePage/homePage.jsx
+++ b/client/homebrew/pages/homePage/homePage.jsx
@@ -10,6 +10,7 @@ const Nav = require('naturalcrit/nav/nav.jsx');
const Navbar = require('../../navbar/navbar.jsx');
const NewBrewItem = require('../../navbar/newbrew.navitem.jsx');
const IssueNavItem = require('../../navbar/issue.navitem.jsx');
+const MigrateNavItem = require('../../navbar/migrate.navitem.jsx');
const RecentNavItem = require('../../navbar/recent.navitem.jsx').both;
const AccountNavItem = require('../../navbar/account.navitem.jsx');
@@ -58,6 +59,7 @@ const HomePage = createClass({
return
+
diff --git a/client/homebrew/pages/homePage/migrate.md b/client/homebrew/pages/homePage/migrate.md
new file mode 100644
index 000000000..9624fef6c
--- /dev/null
+++ b/client/homebrew/pages/homePage/migrate.md
@@ -0,0 +1,202 @@
+# How to Convert a Legacy Document to v3
+Here you will find a number of steps to guide you through converting a Legacy document into a Homebrewery v3 document.
+
+**The first thing you'll want to do is switch the editor's rendering engine from `Legacy` to `v3`.** This will be the renderer we design features for moving forward.
+
+There are some examples of Legacy code in the code pane if you need more context behind some of the changes.
+
+**This document will evolve as users like yourself inform us of issues with it, or areas of conversion that it does not cover. _Please_ reach out if you have any suggestions for this document.**
+
+## Simple Replacements
+To make your life a little easier with this section, a text editor like [VSCode](https://code.visualstudio.com/) or Notepad will help a lot.
+
+The following table describes Legacy and other document elements and their Homebrewery counterparts. A simple find/replace should get these in working order.
+
+| Legacy / Other | Homebrewery |
+|:----------------|:-----------------------------|
+| `\pagebreak` | `\page` |
+| `======` | `\page` |
+| `\pagebreaknum` | `{{pageNumber,auto}}\n\page` |
+| `@=====` | `{{pageNumber,auto}}\n\page` |
+| `\columnbreak` | `\column` |
+| `.phb` | `.page` |
+
+## Classed or Styled Divs
+Anything that relies on the following syntax can be changed to the new Homebrewery v3 curly brace syntax:
+
+```
+
+...
+
+```
+:
+The above example is equivalent to the following in v3 syntax.
+
+```
+{{classTable,wide
+...
+}}
+```
+:
+Some examples of this include class tables (as shown above), descriptive blocks, notes, and spell lists.
+
+\column
+
+## Margins and Padding
+Any manual margins and padding to push text down the page will likely need to be updated. Colons can be used on lines by themselves to push things down the page vertically if you'd rather not set pixel-perfect margins or padding.
+
+## Notes
+
+In Legacy, notes are denoted using markdown blockquote syntax. In Homebrewery v3, this is replaced by the curly brace syntax.
+
+
+
+{{note
+##### Title
+Information
+}}
+
+## Split Tables
+Split tables also use the curly brace syntax, as the new renderer can handle style values separately from class names.
+
+
+
+##### Typical Difficulty Classes
+{{column-count:2
+| Task Difficulty | DC |
+|:----------------|:--:|
+| Very easy | 5 |
+| Easy | 10 |
+| Medium | 15 |
+
+| Task Difficulty | DC |
+|:------------------|:--:|
+| Hard | 20 |
+| Very hard | 25 |
+| Nearly impossible | 30 |
+}}
+
+## Blockquotes
+Blockquotes are denoted by the `>` character at the beginning of the line. In Homebrewery's v3 renderer, they hold virtually no meaning and have no CSS styling. You are free to use blockquotes when styling your document or creating themes without needing to worry about your CSS affecting other parts of the document.
+
+{{pageNumber,auto}}
+
+\page
+
+## Stat Blocks
+
+There are pretty significant differences between stat blocks on the Legacy renderer and Homebrewery v3. This section contains a list of changes that will need to be made to update the stat block.
+
+### Initial Changes
+You will want to **remove all leading** `___` that started the stat block in Legacy, and replace that with `{{monster` before the stat block, and `}}` after it.
+
+**If you want a frame** around the stat block, you can add `,frame` to the curly brace definition.
+
+**If the stat block was wide**, make sure to add `,wide` to the curly brace definition.
+
+### Blockquotes
+The key difference is the lack of blockquotes. Legacy documents use the `>` symbol at the start of the line for each line in the stat block, and the v3 renderer does not. **You will want to remove all `>` characters at the beginning of all lines, and delete any leading spaces.**
+
+### Lists
+The basic characteristics and advanced characteristics sections are not list elements in Homebrewery. You will want to **remove all `-` or `*` characters from the beginning of lines.**
+
+### Spacing
+In order to have the correct spacing after removing the list elements, you will want to **add two colons between the name of each basic/advanced characteristic and its value.** _(see example in the code pane)_
+
+Additionally, in the special traits and actions sections, you will want to add a colon at the beginning of each line that separates a trait/action from another, as seen below. **Any empty lines between special traits and actions should contain only a colon.** _(see example in the code pane)_
+
+\column
+
+{{margin-top:102px}}
+
+
+
+### Homebrewery example:
+
+{{monster
+## Centaur
+*Large monstrosity, neutral good*
+___
+**Armor Class** :: 12
+**Hit Points** :: 45(6d10 + 12)
+**Speed** :: 50ft.
+___
+| STR | DEX | CON | INT | WIS | CHA |
+|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
+|18 (+4)|14 (+2)|14 (+2)|9 (-1) |13 (+1)|11 (+0)|
+___
+**Skills** :: Athletics +6, Perception +3, Survival +3
+**Senses** :: passive Perception 13
+**Languages** :: Elvish, Sylvan
+**Challenge** :: 2 (450 XP)
+___
+***Charge.*** If the centaur moves at least 30 feet straight toward a target and then hits it with a pike attack on the same turn, the target takes an extra 10 (3d6) piercing damage.
+:
+***Second Thing*** More details.
+
+### Actions
+***Multiattack.*** The centaur makes two attacks: one with its pike and one with its hooves or two with its longbow.
+:
+***Pike.*** *Melee Weapon Attack:* +6 to hit, reach 10 ft., one target. *Hit:* 9 (1d10 + 4) piercing damage.
+:
+***Hooves.*** *Melee Weapon Attack:* +6 to hit, reach 5 ft., one target. *Hit:* 11 (2d6 + 4) bludgeoning damage.
+:
+***Longbow.*** *Ranged Weapon Attack:* +4 to hit, range 150/600 ft., one target. *Hit:* 6 (1d8 + 2) piercing damage.
+}}
+
+{{pageNumber,auto}}
+
+
+
diff --git a/client/homebrew/pages/homePage/migrate_gmb.md b/client/homebrew/pages/homePage/migrate_gmb.md
deleted file mode 100644
index 5a70452df..000000000
--- a/client/homebrew/pages/homePage/migrate_gmb.md
+++ /dev/null
@@ -1,169 +0,0 @@
-# How to Convert a GMBinder Document to Homebrewery
-Here you will find a number of steps to guide you through converting a GMBinder document into a Homebrewery document.
-
-**This document will evolve as users like yourself inform us of issues with it, or areas of conversion that it does not cover. _Please_ reach out if you have any suggestions for this document.**
-
-The first thing you'll want to do is switch the editor's rendering engine from `Legacy` to `v3`. This will be the renderer we design features for moving forward.
-
-### Simple Text Replacements
-To make your life a little easier with this section, we recommend using a text editor like [VSCode](https://code.visualstudio.com/) or Notepad.
-
-The following table describes GMBinder elements and their Homebrewery counterparts. A simple find/replace should get these in working order.
-
-| GMBinder | Homebrewery |
-|:----------------|:---|
-| `\pagebreak` | `\page` |
-| `======` | `\page` |
-| `\pagebreaknum` | `{{pageNumber,auto}}\n\page` |
-| `@=====` | `{{pageNumber,auto}}\n\page` |
-| `\columnbreak` | `\column` |
-| `.phb` | `.page` |
-
-### Margins and Padding
-Any manual margins and padding to push text down the page will likely need to be updated. Something to note is immediately after a column break
-
-\page
-
-## Stat Blocks
-
-{{wide
-There are pretty significant differences between stat blocks on GMBinder and Homebrewery. In this section we will describe a list of find/replace commands you can run against your GMB stat block to help make migrating them easier.
-}}
-
-### GMBinder Example:
-
-```
-___
-> ## Centaur
-> *Large Monstrosity, neutral good*
->___
-> - **Armor Class** 12
-> - **Hit Points** 45(6d10 + 12)
-> - **Speed** 50ft.
->___
->|STR|DEX|CON|INT|WIS|CHA|
->|:---:|:---:|:---:|:---:|:---:|:---:|
->|18 (+4)|14 (+2)|14 (+2)|9 (-1)|13 (+1)|11 (+0)|
->___
-> - **Skills** Athletics +6, Perception +3, Survival +3
-> - **Senses** passive Perception 13
-> - **Languages** Elvish, Sylvan
-> - **Challenge** 2 (450 XP)
-> ___
-> ***Charge.*** If the centaur moves at least 30 feet straight toward a target and then hits it with a pike attack on the same turn, the target takes an extra 10 (3d6) piercing damage.
->
-> ***Second Thing*** More details.
->
-> ### Actions
-> ***Multiattack.*** The centaur makes two attacks: one with its pike and one with its hooves or two with its longbow.
->
-> ***Pike.*** *Melee Weapon Attack:* +6 to hit, reach 10 ft., one target. *Hit:* 9 (1d10 + 4) piercing damage.
->
-> ***Hooves.*** *Melee Weapon Attack:* +6 to hit, reach 5 ft., one target. *Hit:* 11 (2d6 + 4) bludgeoning damage.
->
-> ***Longbow.*** *Ranged Weapon Attack:* +4 to hit, range 150/600 ft., one target. *Hit:* 6 (1d8 + 2) piercing damage.
-```
-
-\column
-
-### Homebrewery example:
-
-```
-{{monster
-## Centaur
-*Large monstrosity, neutral good*
-___
-**Armor Class** :: 12
-**Hit Points** :: 45(6d10 + 12)
-**Speed** :: 50ft.
-___
-| STR | DEX | CON | INT | WIS | CHA |
-|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
-|18 (+4)|14 (+2)|14 (+2)|9 (-1) |13 (+1)|11 (+0)|
-___
-**Skills** :: Athletics +6, Perception +3, Survival +3
-**Senses** :: passive Perception 13
-**Languages** :: Elvish, Sylvan
-**Challenge** :: 2 (450 XP)
-___
-***Charge.*** If the centaur moves at least 30 feet straight toward a target and then hits it with a pike attack on the same turn, the target takes an extra 10 (3d6) piercing damage.
-:
-***Second Thing*** More details.
-
-### Actions
-***Multiattack.*** The centaur makes two attacks: one with its pike and one with its hooves or two with its longbow.
-:
-***Pike.*** *Melee Weapon Attack:* +6 to hit, reach 10 ft., one target. *Hit:* 9 (1d10 + 4) piercing damage.
-:
-***Hooves.*** *Melee Weapon Attack:* +6 to hit, reach 5 ft., one target. *Hit:* 11 (2d6 + 4) bludgeoning damage.
-:
-***Longbow.*** *Ranged Weapon Attack:* +4 to hit, range 150/600 ft., one target. *Hit:* 6 (1d8 + 2) piercing damage.
-}}
-```
-
-\page
-
-{{monster
-## Centaur
-*Large monstrosity, neutral good*
-___
-**Armor Class** :: 12
-**Hit Points** :: 45(6d10 + 12)
-**Speed** :: 50ft.
-___
-| STR | DEX | CON | INT | WIS | CHA |
-|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
-|18 (+4)|14 (+2)|14 (+2)|9 (-1) |13 (+1)|11 (+0)|
-___
-**Skills** :: Athletics +6, Perception +3, Survival +3
-**Senses** :: passive Perception 13
-**Languages** :: Elvish, Sylvan
-**Challenge** :: 2 (450 XP)
-___
-***Charge.*** If the centaur moves at least 30 feet straight toward a target and then hits it with a pike attack on the same turn, the target takes an extra 10 (3d6) piercing damage.
-:
-***Second Thing*** More details.
-
-### Actions
-***Multiattack.*** The centaur makes two attacks: one with its pike and one with its hooves or two with its longbow.
-:
-***Pike.*** *Melee Weapon Attack:* +6 to hit, reach 10 ft., one target. *Hit:* 9 (1d10 + 4) piercing damage.
-:
-***Hooves.*** *Melee Weapon Attack:* +6 to hit, reach 5 ft., one target. *Hit:* 11 (2d6 + 4) bludgeoning damage.
-:
-***Longbow.*** *Ranged Weapon Attack:* +4 to hit, range 150/600 ft., one target. *Hit:* 6 (1d8 + 2) piercing damage.
-}}
-
-\column
-
-**Use these find/replace commands in the order listed for the best result.**
-
-#### Blockquotes
-The key difference is the lack of blockquotes. GMBinder uses the `>` symbol at the start of the line for each line in the stat block, and Homebrewery's v3 renderer does not. **You will want to remove all `>` characters at the beginning of all lines, and delete any leading spaces.**
-
-#### Lists
-The basic characteristics and advanced characteristics sections are not list elements in Homebrewery. **You will want to remove all `-` or `*` characters from the beginning of lines.**
-
-#### Spacing
-In order to have the correct spacing after removing the list elements, **you will want to add two colons (`::`) between the name of each basic/advanced characteristic and its value.** i.e:
-```
-**Skills** :: Athletics +6
-```
-
-:
-
-Additionally, in the special traits and actions sections, you will want to add a colon at the beginning of each line that separates a trait/action from another, as seen below. **Any empty lines between special traits and actions should contain only a colon.**
-
-```
-### Actions
-***Multiattack.*** The centaur makes two attacks: one with its pike and one with its hooves or two with its longbow.
-:
-***Pike.*** *Melee Weapon Attack:* +6 to hit, reach 10 ft., one target. *Hit:* 9 (1d10 + 4) piercing damage.
-```
-
-:
-
-#### Final Notes
-Lastly you will want to remove the leading `___` that started the stat block in GMBinder, and replace that with `{{monster` before the stat block, and `}}` after it. If you want a frame around the stat block, you can use `{{monster,frame` instead.
-
-
diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx
index 3f09cac4e..04b0be723 100644
--- a/client/homebrew/pages/newPage/newPage.jsx
+++ b/client/homebrew/pages/newPage/newPage.jsx
@@ -16,6 +16,7 @@ const IssueNavItem = require('../../navbar/issue.navitem.jsx');
const SplitPane = require('naturalcrit/splitPane/splitPane.jsx');
const Editor = require('../../editor/editor.jsx');
const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx');
+const MigrateNavItem = require("../../navbar/migrate.navitem.jsx");
const BREWKEY = 'homebrewery-new';
const STYLEKEY = 'homebrewery-new-style';
@@ -290,6 +291,7 @@ const NewPage = createClass({
{this.renderSaveButton()}
{this.renderLocalPrintButton()}
+
diff --git a/server.js b/server.js
index f68c326ae..2ea8f305b 100644
--- a/server.js
+++ b/server.js
@@ -103,7 +103,7 @@ app.use(require('./server/admin.api.js'));
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 migrateGMBText = require('fs').readFileSync('./client/homebrew/pages/homePage/migrate_gmb.md', 'utf8');
+const migrateText = require('fs').readFileSync('./client/homebrew/pages/homePage/migrate.md', 'utf8');
const changelogText = require('fs').readFileSync('./changelog.md', 'utf8');
const faqText = require('fs').readFileSync('./faq.md', 'utf8');
@@ -134,10 +134,10 @@ app.get('/v3_preview', async (req, res, next)=>{
return next();
});
-//GMBinder Migration Guide
-app.get('/migrate-from-gmb', async (req, res, next)=>{
+//Legacy/Other Document -> v3 Migration Guide
+app.get('/migrate', async (req, res, next)=>{
const brew = {
- text : migrateGMBText,
+ text : migrateText,
renderer : 'V3'
};
splitTextAndStyle(brew);
diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js
index 10e92eb4e..52fc4c352 100644
--- a/shared/naturalcrit/markdown.js
+++ b/shared/naturalcrit/markdown.js
@@ -535,24 +535,7 @@ module.exports = {
marked : Markdown,
render : (rawBrewText)=>{
rawBrewText = rawBrewText.replace(/^\\column$/gm, `\n\n`)
- .replace(/^(:+)$/gm, (match, _, i)=>{
- let test, matches=[];
- const codeBlock = /`/gm, inlineCodeBlock = /[^`]`[^`]/g;
- while (test = codeBlock.exec(rawBrewText)) {
- matches.push(test);
- }
- // console.log(match, m, i, indexes);
- if(matches.filter((m)=>m.index < i).length % 2 !== 0) return match;
-
- // matches = [];
- // while (test = inlineCodeBlock.exec(rawBrewText)) {
- // matches.push(test);
- // }
- // console.log(matches, match, i);
- // if(matches.filter((m)=>m.index < i).length % 2 !== 0) return match;
-
- return `${``.repeat(match.length)}\n`;
- });
+ .replace(/^(:+)$/gm, (match)=>`${``.repeat(match.length)}\n`);
return Markdown(
sanatizeScriptTags(rawBrewText),
{ renderer: renderer }
From 889d3073720763d23ff4e57f1951baaf1a05d990 Mon Sep 17 00:00:00 2001
From: Charlie Humphreys
Date: Wed, 15 Dec 2021 23:58:49 -0600
Subject: [PATCH 248/610] Lint change double quotes into single quotes
---
client/homebrew/pages/editPage/editPage.jsx | 2 +-
client/homebrew/pages/errorPage/errorPage.jsx | 2 +-
client/homebrew/pages/newPage/newPage.jsx | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx
index c73e59bd7..9b2a48aae 100644
--- a/client/homebrew/pages/editPage/editPage.jsx
+++ b/client/homebrew/pages/editPage/editPage.jsx
@@ -23,7 +23,7 @@ const Markdown = require('naturalcrit/markdown.js');
const googleDriveActive = require('../../googleDrive.png');
const googleDriveInactive = require('../../googleDriveMono.png');
-const MigrateNavItem = require("../../navbar/migrate.navitem.jsx");
+const MigrateNavItem = require('../../navbar/migrate.navitem.jsx');
const SAVE_TIMEOUT = 3000;
diff --git a/client/homebrew/pages/errorPage/errorPage.jsx b/client/homebrew/pages/errorPage/errorPage.jsx
index fe4473dc7..2b7aef8aa 100644
--- a/client/homebrew/pages/errorPage/errorPage.jsx
+++ b/client/homebrew/pages/errorPage/errorPage.jsx
@@ -11,7 +11,7 @@ const IssueNavItem = require('../../navbar/issue.navitem.jsx');
const RecentNavItem = require('../../navbar/recent.navitem.jsx').both;
const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx');
-const MigrateNavItem = require("../../navbar/migrate.navitem.jsx");
+const MigrateNavItem = require('../../navbar/migrate.navitem.jsx');
const ErrorPage = createClass({
getDefaultProps : function() {
diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx
index 04b0be723..18a090b3d 100644
--- a/client/homebrew/pages/newPage/newPage.jsx
+++ b/client/homebrew/pages/newPage/newPage.jsx
@@ -16,7 +16,7 @@ const IssueNavItem = require('../../navbar/issue.navitem.jsx');
const SplitPane = require('naturalcrit/splitPane/splitPane.jsx');
const Editor = require('../../editor/editor.jsx');
const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx');
-const MigrateNavItem = require("../../navbar/migrate.navitem.jsx");
+const MigrateNavItem = require('../../navbar/migrate.navitem.jsx');
const BREWKEY = 'homebrewery-new';
const STYLEKEY = 'homebrewery-new-style';
From 25c1d03ccad3ab9c6f8465eb2f7791ac821c6d84 Mon Sep 17 00:00:00 2001
From: Charlie Humphreys
Date: Wed, 15 Dec 2021 23:59:36 -0600
Subject: [PATCH 249/610] Update package-lock.json
---
package-lock.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/package-lock.json b/package-lock.json
index a8ad026b8..0298d92f3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,6 +5,7 @@
"requires": true,
"packages": {
"": {
+ "name": "homebrewery",
"version": "3.0.5",
"hasInstallScript": true,
"license": "MIT",
From 0bc27e83edf0d62ca8cfc3e4ce95cfc7c6289f1a Mon Sep 17 00:00:00 2001
From: Charlie Humphreys
Date: Thu, 16 Dec 2021 00:01:16 -0600
Subject: [PATCH 250/610] Fix reference to old function
---
server.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server.js b/server.js
index 88598f9a3..9812af38d 100644
--- a/server.js
+++ b/server.js
@@ -148,7 +148,7 @@ app.get('/migrate', async (req, res, next)=>{
text : migrateText,
renderer : 'V3'
};
- splitTextAndStyle(brew);
+ splitTextStyleAndMetadata(brew);
req.brew = brew;
return next();
});
From 603cf2c0abb54c6157e75c8faa45e1eb76a9ed22 Mon Sep 17 00:00:00 2001
From: Charlie Humphreys
Date: Thu, 16 Dec 2021 00:03:23 -0600
Subject: [PATCH 251/610] Adjust migrate document text
---
client/homebrew/pages/homePage/migrate.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/client/homebrew/pages/homePage/migrate.md b/client/homebrew/pages/homePage/migrate.md
index 9624fef6c..822e97ef0 100644
--- a/client/homebrew/pages/homePage/migrate.md
+++ b/client/homebrew/pages/homePage/migrate.md
@@ -163,7 +163,7 @@ ___
> ***Longbow.*** *Ranged Weapon Attack:* +4 to hit, range 150/600 ft., one target. *Hit:* 6 (1d8 + 2) piercing damage.
-->
-### Homebrewery example:
+### Homebrewery v3 Example:
{{monster
## Centaur
From b1a9fbe3ca576df0845d585cb6d7ab3648858cd8 Mon Sep 17 00:00:00 2001
From: Sean Robertson
Date: Fri, 17 Dec 2021 15:21:52 +1300
Subject: [PATCH 252/610] Update location of FreeBSD install instructions
---
README.FREEBSD.md | 2 +-
{freebsd => install/freebsd}/install.sh | 0
{freebsd => install/freebsd}/rc.d/homebrewery | 0
install/ubuntu/install.sh | 14 ++++++++++++++
4 files changed, 15 insertions(+), 1 deletion(-)
rename {freebsd => install/freebsd}/install.sh (100%)
rename {freebsd => install/freebsd}/rc.d/homebrewery (100%)
create mode 100644 install/ubuntu/install.sh
diff --git a/README.FREEBSD.md b/README.FREEBSD.md
index 92f9064d0..c99c248ee 100644
--- a/README.FREEBSD.md
+++ b/README.FREEBSD.md
@@ -10,7 +10,7 @@ These instructions assume that you are installing to a completely new, fresh Fre
2. Install wget (`pkg install -y wget`). On a fresh jail, you will be prompted to press 'Y' to set up `pkg`.
-3. Download the installation script (`wget --no-check-certificate https://raw.githubusercontent.com/naturalcrit/homebrewery/master/freebsd/install.sh`). The parameter `--no-check-certificate` is required as we haven't set up any trusted certificates/authorities yet.
+3. Download the installation script (`wget --no-check-certificate https://raw.githubusercontent.com/naturalcrit/homebrewery/master/install/freebsd/install.sh`). The parameter `--no-check-certificate` is required as we haven't set up any trusted certificates/authorities yet.
4. Make the downloaded file executable (`chmod +x install.sh`).
diff --git a/freebsd/install.sh b/install/freebsd/install.sh
similarity index 100%
rename from freebsd/install.sh
rename to install/freebsd/install.sh
diff --git a/freebsd/rc.d/homebrewery b/install/freebsd/rc.d/homebrewery
similarity index 100%
rename from freebsd/rc.d/homebrewery
rename to install/freebsd/rc.d/homebrewery
diff --git a/install/ubuntu/install.sh b/install/ubuntu/install.sh
new file mode 100644
index 000000000..44311ce71
--- /dev/null
+++ b/install/ubuntu/install.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
+apt install -y git nodejs npm mongodb44
+
+export NODE_ENV=local
+
+cd /usr/local/
+git clone https://github.com/naturalcrit/homebrewery.git
+
+cd homebrewery
+npm install
+npm audit fix
+npm run postinstall
\ No newline at end of file
From aa4de67e90e482607cd831a7318eb66a1d75f542 Mon Sep 17 00:00:00 2001
From: Sean Robertson
Date: Fri, 17 Dec 2021 16:06:34 +1300
Subject: [PATCH 253/610] Ensure curl is installed Fix mongodb package name Use
apt satisfy instead of apt install
---
install/ubuntu/install.sh | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/install/ubuntu/install.sh b/install/ubuntu/install.sh
index 44311ce71..4fa821102 100644
--- a/install/ubuntu/install.sh
+++ b/install/ubuntu/install.sh
@@ -1,11 +1,13 @@
#!/bin/sh
+apt install -y curl
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
-apt install -y git nodejs npm mongodb44
-export NODE_ENV=local
+apt satisfy -y git nodejs npm mongodb
+
+NODE_ENV=local
+export NODE_ENV
-cd /usr/local/
git clone https://github.com/naturalcrit/homebrewery.git
cd homebrewery
From f02bda2c528453d0edc8bf7d6a41aa8e170d8d12 Mon Sep 17 00:00:00 2001
From: Trevor Buckner
Date: Fri, 17 Dec 2021 00:00:00 -0500
Subject: [PATCH 254/610] 3.0.6
---
package-lock.json | 4 ++--
package.json | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index deb332675..1ad99d21c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,11 +1,11 @@
{
"name": "homebrewery",
- "version": "3.0.5",
+ "version": "3.0.6",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "version": "3.0.5",
+ "version": "3.0.6",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
diff --git a/package.json b/package.json
index d8ef42d19..6dd282d2d 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "homebrewery",
"description": "Create authentic looking D&D homebrews using only markdown",
- "version": "3.0.5",
+ "version": "3.0.6",
"engines": {
"node": "16.11.x"
},
From fb1d947e97416b389128997a06ff27be99ca07e9 Mon Sep 17 00:00:00 2001
From: Trevor Buckner
Date: Sat, 18 Dec 2021 22:56:18 -0500
Subject: [PATCH 255/610] Update changelog.md
---
changelog.md | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/changelog.md b/changelog.md
index b44eae35e..a6fab8d3b 100644
--- a/changelog.md
+++ b/changelog.md
@@ -34,6 +34,36 @@ pre {
## changelog
For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery).
+### Saturday 18/12/2021 - v3.0.6
+{{taskList
+* [x] Fixed text wrapping for long strings in code blocks.
+
+ Fixes issues: [#1736](https://github.com/naturalcrit/homebrewery/issues/1736)
+
+* [x] Code search/replace `CTRL F / CTRL SHIFT F`
+
+ Fixes issues: [#1201](https://github.com/naturalcrit/homebrewery/issues/1201)
+
+* [x] Auto-closing HTML tags and curly braces `{{ }}`
+* [x] Highlight current active line
+
+ Fixes issues: [#1202](https://github.com/naturalcrit/homebrewery/issues/1202)
+
+* [x] Display tabs and trailing spaces
+
+ Fixes issues: [#1622](https://github.com/naturalcrit/homebrewery/issues/1622)
+
+* [x] Make columns even in V3 Table of Contents.
+
+ Fixes issues: [#1671](https://github.com/naturalcrit/homebrewery/issues/1671)
+
+* [x] Fix `CTRL P` failing to print from `/new` pages.
+
+ Fixes issues: [#1815](https://github.com/naturalcrit/homebrewery/issues/1815)
+}}
+
+\page
+
### Tuesday 07/12/2021 - v3.0.5
{{taskList
* [x] Fixed paragraph spacing for **note** and **descriptive** boxes in V3.
@@ -98,6 +128,12 @@ For a full record of development, visit our [Github Page](https://github.com/nat
* [x] Added {{fa,fa-undo}} **Undo** and {{fa,fa-redo}} **Redo** buttons to the snippet bar.
+}}
+
+\column
+
+{{taskList
+
* [x] Switching between the {{fa,fa-beer}} **Brew** and {{fa,fa-paint-brush}} **Style** tabs no longer loses your scroll position or undo history.
Fixes issues: [#1735](https://github.com/naturalcrit/homebrewery/issues/1735)
From 41bc6ca4443d625eba4c3720db8234a1b2c4e18c Mon Sep 17 00:00:00 2001
From: "G.Ambatte"
Date: Sun, 19 Dec 2021 18:50:35 +1300
Subject: [PATCH 256/610] Add HB service file Update install.sh to create
service and set to start automatically
---
.../etc/systemd/system/homebrewery.service | 13 ++++++++++
install/ubuntu/install.sh | 26 ++++++++++++++++---
2 files changed, 35 insertions(+), 4 deletions(-)
create mode 100644 install/ubuntu/etc/systemd/system/homebrewery.service
diff --git a/install/ubuntu/etc/systemd/system/homebrewery.service b/install/ubuntu/etc/systemd/system/homebrewery.service
new file mode 100644
index 000000000..939d11fb8
--- /dev/null
+++ b/install/ubuntu/etc/systemd/system/homebrewery.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Homebrewery Web Server
+
+[Service]
+User=root
+After=mongodb
+Environment=NODE_ENV=local
+WorkingDirectory=/usr/local/homebrewery
+ExecStart=node server.js
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/install/ubuntu/install.sh b/install/ubuntu/install.sh
index 4fa821102..ebad7f3f2 100644
--- a/install/ubuntu/install.sh
+++ b/install/ubuntu/install.sh
@@ -1,16 +1,34 @@
#!/bin/sh
+# Install CURL and add required NodeJS source to package repo
+echo ::Install CURL
apt install -y curl
+echo ::Add NodeJS source to package repo
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
+# Install required packages
+echo ::Install Homebrewery requirements
apt satisfy -y git nodejs npm mongodb
-NODE_ENV=local
-export NODE_ENV
-
+# Clone Homebrewery repo
+echo ::Get Homebrewery files
+cd /usr/local/
git clone https://github.com/naturalcrit/homebrewery.git
+# Install Homebrewery
+echo ::Install Homebrewery
cd homebrewery
npm install
npm audit fix
-npm run postinstall
\ No newline at end of file
+npm run postinstall
+
+# Create Homebrewery service
+echo ::Create Homebrewery service
+ln -s /usr/local/homebrewery/install/ubuntu/etc/systemd/system/homebrewery.service /etc/systemd/system/homebrewery.service
+systemctl daemon-reload
+echo ::Set Homebrewery to start automatically
+systemctl enable homebrewery
+
+# Start Homebrewery
+echo ::Start Homebrewery
+systemctl start homebrewery
\ No newline at end of file
From dcf17e3b7239b8dfc2e7154ae49f40034ba25757 Mon Sep 17 00:00:00 2001
From: "G.Ambatte"
Date: Sun, 19 Dec 2021 19:22:33 +1300
Subject: [PATCH 257/610] Add README.UBUNTU.md
---
README.UBUNTU.md | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
create mode 100644 README.UBUNTU.md
diff --git a/README.UBUNTU.md b/README.UBUNTU.md
new file mode 100644
index 000000000..d14cfef46
--- /dev/null
+++ b/README.UBUNTU.md
@@ -0,0 +1,35 @@
+# Ubuntu Installation Instructions
+
+## Before Installing
+
+These instructions assume that you are installing to a completely new, fresh Ubuntu installation. As such, some steps will not be necessary if you are installing to an existing Ubuntu instance.
+
+## Installation instructions
+
+1. Install Ubuntu.
+
+2. Install wget (`apt install -y wget`). This may already be installed, depending on your exact Ubuntu version.
+
+3. Download the installation script (`wget https://raw.githubusercontent.com/naturalcrit/homebrewery/master/install/ubuntu/install.sh`).
+
+4. Make the downloaded file executable (`chmod +x install.sh`).
+
+5. Run the script (`sudo ./install.sh`). This will automatically download all of the required packages, install both them and HomeBrewery, configure the system and finally start HomeBrewery.
+
+**NOTE:** At this time, the script **ONLY** installs HomeBrewery. It does **NOT** install the NaturalCrit login system, as that is currently a completely separate project.
+
+---
+
+### Testing
+
+These installation instructions have been tested on the following Ubuntu releases:
+
+- *ubuntu-20.04.3-desktop-amd64*
+
+## Final Notes
+
+While this installation process works successfully at the time of writing (December 19, 2021), it relies on all of the Node.JS packages used in the HomeBrewery project retaining their cross-platform capabilities to continue to function. This is one of the inherent advantages of Node.JS, but it is by no means guaranteed and as such, functionality or even installation may fail without warning at some point in the future.
+
+Regards,
+G
+December 19, 2021
From db5987a466ddd34c93764af4a00af848e713783f Mon Sep 17 00:00:00 2001
From: "G.Ambatte"
Date: Sun, 19 Dec 2021 19:26:12 +1300
Subject: [PATCH 258/610] Shift install instruction READMEs into `install`
directory
---
README.FREEBSD.md => install/README.FREEBSD.md | 0
README.UBUNTU.md => install/README.UBUNTU.md | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename README.FREEBSD.md => install/README.FREEBSD.md (100%)
rename README.UBUNTU.md => install/README.UBUNTU.md (100%)
diff --git a/README.FREEBSD.md b/install/README.FREEBSD.md
similarity index 100%
rename from README.FREEBSD.md
rename to install/README.FREEBSD.md
diff --git a/README.UBUNTU.md b/install/README.UBUNTU.md
similarity index 100%
rename from README.UBUNTU.md
rename to install/README.UBUNTU.md
From eeaaa0e6c94650242b0996c4e58e564b8c8d16ce Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Dec 2021 03:00:51 +0000
Subject: [PATCH 259/610] Bump eslint from 8.4.1 to 8.5.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.4.1 to 8.5.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.4.1...v8.5.0)
---
updated-dependencies:
- dependency-name: eslint
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 1ad99d21c..caa0b36af 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -46,7 +46,7 @@
"vitreum": "git+https://git@github.com/calculuschild/vitreum.git"
},
"devDependencies": {
- "eslint": "^8.4.1",
+ "eslint": "^8.5.0",
"eslint-plugin-react": "^7.27.1",
"pico-check": "^2.2.0"
},
@@ -3839,9 +3839,9 @@
}
},
"node_modules/eslint": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.1.tgz",
- "integrity": "sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==",
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.5.0.tgz",
+ "integrity": "sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==",
"dev": true,
"dependencies": {
"@eslint/eslintrc": "^1.0.5",
@@ -12523,9 +12523,9 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"eslint": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.1.tgz",
- "integrity": "sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==",
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.5.0.tgz",
+ "integrity": "sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==",
"dev": true,
"requires": {
"@eslint/eslintrc": "^1.0.5",
diff --git a/package.json b/package.json
index 6dd282d2d..60a35ffcd 100644
--- a/package.json
+++ b/package.json
@@ -77,7 +77,7 @@
"vitreum": "git+https://git@github.com/calculuschild/vitreum.git"
},
"devDependencies": {
- "eslint": "^8.4.1",
+ "eslint": "^8.5.0",
"eslint-plugin-react": "^7.27.1",
"pico-check": "^2.2.0"
}
From 9119860012030638387d02c685c88291864f63b0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Dec 2021 03:01:01 +0000
Subject: [PATCH 260/610] Bump express from 4.17.1 to 4.17.2
Bumps [express](https://github.com/expressjs/express) from 4.17.1 to 4.17.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.17.1...4.17.2)
---
updated-dependencies:
- dependency-name: express
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 581 ++++++++++++++--------------------------------
package.json | 2 +-
2 files changed, 175 insertions(+), 408 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 1ad99d21c..ac4238160 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -19,7 +19,7 @@
"cookie-parser": "^1.4.6",
"create-react-class": "^15.7.0",
"dedent-tabs": "^0.10.1",
- "express": "^4.17.1",
+ "express": "^4.17.2",
"express-async-handler": "^1.2.0",
"express-static-gzip": "2.1.1",
"fs-extra": "10.0.0",
@@ -2476,50 +2476,6 @@
"node": ">= 0.8"
}
},
- "node_modules/body-parser/node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/body-parser/node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/body-parser/node_modules/qs": {
- "version": "6.9.6",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
- "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/body-parser/node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/body-parser/node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
"node_modules/boxen": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
@@ -3264,16 +3220,35 @@
"integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
},
"node_modules/content-disposition": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
- "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"dependencies": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "5.2.1"
},
"engines": {
"node": ">= 0.6"
}
},
+ "node_modules/content-disposition/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==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/content-type": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
@@ -4316,16 +4291,16 @@
}
},
"node_modules/express": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
- "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
+ "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==",
"dependencies": {
"accepts": "~1.3.7",
"array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
+ "body-parser": "1.19.1",
+ "content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.0",
+ "cookie": "0.4.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
@@ -4339,13 +4314,13 @@
"on-finished": "~2.3.0",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.9.6",
"range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.17.2",
+ "serve-static": "1.14.2",
+ "setprototypeof": "1.2.0",
"statuses": "~1.5.0",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
@@ -4368,70 +4343,24 @@
"serve-static": "^1.14.1"
}
},
- "node_modules/express/node_modules/body-parser": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
- "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
- "dependencies": {
- "bytes": "3.1.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/express/node_modules/bytes": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
- "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/express/node_modules/cookie": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
- "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express/node_modules/http-errors": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
- "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express/node_modules/raw-body": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
- "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
- "dependencies": {
- "bytes": "3.1.0",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
+ "node_modules/express/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==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
},
"node_modules/extend": {
"version": "3.0.2",
@@ -4626,9 +4555,9 @@
"integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="
},
"node_modules/forwarded": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"engines": {
"node": ">= 0.6"
}
@@ -5176,15 +5105,15 @@
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"node_modules/http-errors": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
- "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
"dependencies": {
"depd": "~1.1.2",
"inherits": "2.0.4",
- "setprototypeof": "1.1.1",
+ "setprototypeof": "1.2.0",
"statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
+ "toidentifier": "1.0.1"
},
"engines": {
"node": ">= 0.6"
@@ -5395,9 +5324,9 @@
}
},
"node_modules/ipaddr.js": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
- "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"engines": {
"node": ">= 0.10"
}
@@ -5999,18 +5928,6 @@
"node": ">=6"
}
},
- "node_modules/less/node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "optional": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@@ -6344,6 +6261,17 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/mime-db": {
"version": "1.44.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
@@ -7231,12 +7159,12 @@
}
},
"node_modules/proxy-addr": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
- "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"dependencies": {
- "forwarded": "~0.1.2",
- "ipaddr.js": "1.9.0"
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
},
"engines": {
"node": ">= 0.10"
@@ -7297,11 +7225,14 @@
}
},
"node_modules/qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "version": "6.9.6",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
+ "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
"engines": {
"node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/query-string": {
@@ -7376,39 +7307,6 @@
"node": ">= 0.8"
}
},
- "node_modules/raw-body/node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body/node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/raw-body/node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/raw-body/node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
"node_modules/rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@@ -7872,9 +7770,9 @@
}
},
"node_modules/send": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
- "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "version": "0.17.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
+ "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
"dependencies": {
"debug": "2.6.9",
"depd": "~1.1.2",
@@ -7883,9 +7781,9 @@
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "~1.7.2",
+ "http-errors": "1.8.1",
"mime": "1.6.0",
- "ms": "2.1.1",
+ "ms": "2.1.3",
"on-finished": "~2.3.0",
"range-parser": "~1.2.1",
"statuses": "~1.5.0"
@@ -7894,31 +7792,20 @@
"node": ">= 0.8.0"
}
},
- "node_modules/send/node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/send/node_modules/ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/serve-static": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
- "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
+ "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.17.1"
+ "send": "0.17.2"
},
"engines": {
"node": ">= 0.8.0"
@@ -7958,9 +7845,9 @@
}
},
"node_modules/setprototypeof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
- "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/sha.js": {
"version": "2.4.11",
@@ -8600,14 +8487,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
- "node_modules/superagent/node_modules/qs": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz",
- "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==",
- "engines": {
- "node": ">=0.6"
- }
- },
"node_modules/superagent/node_modules/readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
@@ -8772,9 +8651,9 @@
}
},
"node_modules/toidentifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
- "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"engines": {
"node": ">=0.6"
}
@@ -11391,40 +11270,6 @@
"qs": "6.9.6",
"raw-body": "2.4.2",
"type-is": "~1.6.18"
- },
- "dependencies": {
- "http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "qs": {
- "version": "6.9.6",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
- "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ=="
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
- }
}
},
"boxen": {
@@ -12042,11 +11887,18 @@
"integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
},
"content-disposition": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
- "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "5.2.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
}
},
"content-type": {
@@ -12883,16 +12735,16 @@
}
},
"express": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
- "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
+ "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==",
"requires": {
"accepts": "~1.3.7",
"array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
+ "body-parser": "1.19.1",
+ "content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.0",
+ "cookie": "0.4.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
@@ -12906,68 +12758,23 @@
"on-finished": "~2.3.0",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.9.6",
"range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.17.2",
+ "serve-static": "1.14.2",
+ "setprototypeof": "1.2.0",
"statuses": "~1.5.0",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"dependencies": {
- "body-parser": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
- "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
- "requires": {
- "bytes": "3.1.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
- }
- },
- "bytes": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
- "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
- },
- "cookie": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
- "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
- },
- "http-errors": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
- "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- }
- },
- "raw-body": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
- "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
- "requires": {
- "bytes": "3.1.0",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- }
+ "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=="
}
}
},
@@ -13143,9 +12950,9 @@
"integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="
},
"forwarded": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
},
"fragment-cache": {
"version": "0.2.1",
@@ -13554,15 +13361,15 @@
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"http-errors": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
- "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
"requires": {
"depd": "~1.1.2",
"inherits": "2.0.4",
- "setprototypeof": "1.1.1",
+ "setprototypeof": "1.2.0",
"statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
+ "toidentifier": "1.0.1"
},
"dependencies": {
"inherits": {
@@ -13725,9 +13532,9 @@
}
},
"ipaddr.js": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
- "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"is-accessor-descriptor": {
"version": "1.0.0",
@@ -14161,12 +13968,6 @@
"pify": "^4.0.1",
"semver": "^5.6.0"
}
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "optional": true
}
}
},
@@ -14431,6 +14232,11 @@
}
}
},
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
"mime-db": {
"version": "1.44.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
@@ -15116,12 +14922,12 @@
}
},
"proxy-addr": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
- "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"requires": {
- "forwarded": "~0.1.2",
- "ipaddr.js": "1.9.0"
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
}
},
"prr": {
@@ -15178,9 +14984,9 @@
}
},
"qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+ "version": "6.9.6",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
+ "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ=="
},
"query-string": {
"version": "7.0.1",
@@ -15234,35 +15040,6 @@
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
- },
- "dependencies": {
- "http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
- }
}
},
"rc": {
@@ -15651,9 +15428,9 @@
}
},
"send": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
- "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "version": "0.17.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
+ "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
"requires": {
"debug": "2.6.9",
"depd": "~1.1.2",
@@ -15662,35 +15439,30 @@
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "~1.7.2",
+ "http-errors": "1.8.1",
"mime": "1.6.0",
- "ms": "2.1.1",
+ "ms": "2.1.3",
"on-finished": "~2.3.0",
"range-parser": "~1.2.1",
"statuses": "~1.5.0"
},
"dependencies": {
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
"ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"serve-static": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
- "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
+ "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.17.1"
+ "send": "0.17.2"
}
},
"set-value": {
@@ -15720,9 +15492,9 @@
}
},
"setprototypeof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
- "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"sha.js": {
"version": "2.4.11",
@@ -16239,11 +16011,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
- "qs": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz",
- "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ=="
- },
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
@@ -16375,9 +16142,9 @@
}
},
"toidentifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
- "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"touch": {
"version": "3.1.0",
diff --git a/package.json b/package.json
index 6dd282d2d..d67b7ff81 100644
--- a/package.json
+++ b/package.json
@@ -50,7 +50,7 @@
"cookie-parser": "^1.4.6",
"create-react-class": "^15.7.0",
"dedent-tabs": "^0.10.1",
- "express": "^4.17.1",
+ "express": "^4.17.2",
"express-async-handler": "^1.2.0",
"express-static-gzip": "2.1.1",
"fs-extra": "10.0.0",
From 01f6d106a2a50e11c8baae491eaf6fc8f111d5f7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Dec 2021 03:01:12 +0000
Subject: [PATCH 261/610] Bump marked from 4.0.7 to 4.0.8
Bumps [marked](https://github.com/markedjs/marked) from 4.0.7 to 4.0.8.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v4.0.7...v4.0.8)
---
updated-dependencies:
- dependency-name: marked
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 1ad99d21c..31c4eb285 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -28,7 +28,7 @@
"jwt-simple": "^0.5.6",
"less": "^3.13.1",
"lodash": "^4.17.21",
- "marked": "4.0.7",
+ "marked": "4.0.8",
"marked-extended-tables": "^1.0.3",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.1",
@@ -6139,9 +6139,9 @@
}
},
"node_modules/marked": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.7.tgz",
- "integrity": "sha512-mQrRvV2vRk7DHZsWsYJfAjmBo+lSYPhTJPThaaGpkEfmC+4oefeug2txZniQTieDS0CFpokfVhd7JuS5GtnHhA==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.8.tgz",
+ "integrity": "sha512-dkpJMIlJpc833hbjjg8jraw1t51e/eKDoG8TFOgc5O0Z77zaYKigYekTDop5AplRoKFGIaoazhYEhGkMtU3IeA==",
"bin": {
"marked": "bin/marked.js"
},
@@ -14267,9 +14267,9 @@
}
},
"marked": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.7.tgz",
- "integrity": "sha512-mQrRvV2vRk7DHZsWsYJfAjmBo+lSYPhTJPThaaGpkEfmC+4oefeug2txZniQTieDS0CFpokfVhd7JuS5GtnHhA=="
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.8.tgz",
+ "integrity": "sha512-dkpJMIlJpc833hbjjg8jraw1t51e/eKDoG8TFOgc5O0Z77zaYKigYekTDop5AplRoKFGIaoazhYEhGkMtU3IeA=="
},
"marked-extended-tables": {
"version": "1.0.3",
diff --git a/package.json b/package.json
index 6dd282d2d..33abe8d0b 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"jwt-simple": "^0.5.6",
"less": "^3.13.1",
"lodash": "^4.17.21",
- "marked": "4.0.7",
+ "marked": "4.0.8",
"marked-extended-tables": "^1.0.3",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.1",
From 38d8764f15da5b707ce93614ed5b4fbf912c0d3e Mon Sep 17 00:00:00 2001
From: Charlie Humphreys
Date: Mon, 20 Dec 2021 00:42:53 -0600
Subject: [PATCH 262/610] Disable code folding in style tab, disable active
line highlight and whitespace visibility
---
client/homebrew/editor/editor.jsx | 1 +
shared/naturalcrit/codeEditor/codeEditor.jsx | 89 +++++++++++--------
shared/naturalcrit/codeEditor/codeEditor.less | 16 ++--
3 files changed, 59 insertions(+), 47 deletions(-)
diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx
index 6eefc183f..9b7c27c34 100644
--- a/client/homebrew/editor/editor.jsx
+++ b/client/homebrew/editor/editor.jsx
@@ -208,6 +208,7 @@ const Editor = createClass({
view={this.state.view}
value={this.props.brew.style ?? DEFAULT_STYLE_TEXT}
onChange={this.props.onStyleChange}
+ enableFolding={false}
rerenderParent={this.rerenderParent} />
>;
}
diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx
index 0956521f4..6d756fd6f 100644
--- a/shared/naturalcrit/codeEditor/codeEditor.jsx
+++ b/shared/naturalcrit/codeEditor/codeEditor.jsx
@@ -27,9 +27,9 @@ if(typeof navigator !== 'undefined'){
require('codemirror/addon/search/matchesonscrollbar.js');
require('codemirror/addon/dialog/dialog.js');
//Trailing space highlighting
- require('codemirror/addon/edit/trailingspace.js');
+ // require('codemirror/addon/edit/trailingspace.js');
//Active line highlighting
- require('codemirror/addon/selection/active-line.js');
+ // require('codemirror/addon/selection/active-line.js');
//Auto-closing
//XML code folding is a requirement of the auto-closing tag feature and is not enabled
require('codemirror/addon/fold/xml-fold.js');
@@ -42,10 +42,11 @@ if(typeof navigator !== 'undefined'){
const CodeEditor = createClass({
getDefaultProps : function() {
return {
- language : '',
- value : '',
- wrap : true,
- onChange : ()=>{}
+ language : '',
+ value : '',
+ wrap : true,
+ onChange : ()=>{},
+ enableFolding : true
};
},
@@ -81,6 +82,12 @@ const CodeEditor = createClass({
} else if(this.codeMirror?.getValue() != this.props.value) { //update editor contents if brew.text is changed from outside
this.codeMirror.setValue(this.props.value);
}
+
+ if(this.props.enableFolding) {
+ this.codeMirror.setOption('foldOptions', this.foldOptions(this.codeMirror));
+ } else {
+ this.codeMirror.setOption('foldOptions', false);
+ }
},
buildEditor : function() {
@@ -139,39 +146,19 @@ const CodeEditor = createClass({
'Ctrl-]' : this.unfoldAllCode,
'Cmd-]' : this.unfoldAllCode
},
- foldGutter : true,
- foldOptions : {
- scanUp : true,
- rangeFinder : CodeMirror.fold.homebrewery,
- widget : (from, to)=>{
- let text = '';
- let currentLine = from.line;
- const maxLength = 50;
- while (currentLine <= to.line && text.length <= maxLength) {
- text += this.codeMirror.getLine(currentLine);
- if(currentLine < to.line)
- text += ' ';
- currentLine += 1;
- }
-
- text = text.trim();
- if(text.length > maxLength)
- text = `${text.substr(0, maxLength)}...`;
-
- return `\u21A4 ${text} \u21A6`;
- }
- },
- gutters : ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'],
- autoCloseTags : true,
- styleActiveLine : true,
- showTrailingSpace : true,
- specialChars : / /,
- specialCharPlaceholder : function(char) {
- const el = document.createElement('span');
- el.className = 'cm-space';
- el.innerHTML = ' ';
- return el;
- }
+ foldGutter : true,
+ foldOptions : this.foldOptions(this.codeMirror),
+ gutters : ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'],
+ autoCloseTags : true,
+ styleActiveLine : true,
+ showTrailingSpace : false,
+ // specialChars : / /,
+ // specialCharPlaceholder : function(char) {
+ // const el = document.createElement('span');
+ // el.className = 'cm-space';
+ // el.innerHTML = ' ';
+ // return el;
+ // }
});
closeTag.autoCloseCurlyBraces(CodeMirror, this.codeMirror);
@@ -355,6 +342,30 @@ const CodeEditor = createClass({
historySize : function(){
return this.codeMirror.doc.historySize();
},
+
+ foldOptions : function(cm){
+ return {
+ scanUp : true,
+ rangeFinder : CodeMirror.fold.homebrewery,
+ widget : (from, to)=>{
+ let text = '';
+ let currentLine = from.line;
+ const maxLength = 50;
+ while (currentLine <= to.line && text.length <= maxLength) {
+ text += this.codeMirror.getLine(currentLine);
+ if(currentLine < to.line)
+ text += ' ';
+ currentLine += 1;
+ }
+
+ text = text.trim();
+ if(text.length > maxLength)
+ text = `${text.substr(0, maxLength)}...`;
+
+ return `\u21A4 ${text} \u21A6`;
+ }
+ };
+ },
//----------------------//
render : function(){
diff --git a/shared/naturalcrit/codeEditor/codeEditor.less b/shared/naturalcrit/codeEditor/codeEditor.less
index 037a326bc..bf36293ed 100644
--- a/shared/naturalcrit/codeEditor/codeEditor.less
+++ b/shared/naturalcrit/codeEditor/codeEditor.less
@@ -10,13 +10,13 @@
font-weight: 600;
}
- .cm-tab {
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAQAAACOs/baAAAARUlEQVR4nGJgIAG8JkXxUAcCtDWemcGR1lY4MvgzCEKY7jSBjgxBDAG09UEQzAe0AMwMHrSOAwEGRtpaMIwAAAAA//8DAG4ID9EKs6YqAAAAAElFTkSuQmCC) no-repeat right;
- }
+ //.cm-tab {
+ // background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAQAAACOs/baAAAARUlEQVR4nGJgIAG8JkXxUAcCtDWemcGR1lY4MvgzCEKY7jSBjgxBDAG09UEQzAe0AMwMHrSOAwEGRtpaMIwAAAAA//8DAG4ID9EKs6YqAAAAAElFTkSuQmCC) no-repeat right;
+ //}
- .cm-trailingspace {
- .cm-space {
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQAgMAAABW5NbuAAAACVBMVEVHcEwAAAAAAAAWawmTAAAAA3RSTlMAPBJ6PMxpAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAFUlEQVQI12NgwACcCQysASAEZGAAACMuAX06aCQUAAAAAElFTkSuQmCC) no-repeat right;
- }
- }
+ //.cm-trailingspace {
+ // .cm-space {
+ // background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQAgMAAABW5NbuAAAACVBMVEVHcEwAAAAAAAAWawmTAAAAA3RSTlMAPBJ6PMxpAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAFUlEQVQI12NgwACcCQysASAEZGAAACMuAX06aCQUAAAAAElFTkSuQmCC) no-repeat right;
+ // }
+ //}
}
\ No newline at end of file
From f253bdf954f002e9594b5dcb3034bf4b9b4d8ee8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Dec 2021 03:00:47 +0000
Subject: [PATCH 263/610] Bump codemirror from 5.64.0 to 5.65.0
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.64.0 to 5.65.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.64.0...5.65.0)
---
updated-dependencies:
- dependency-name: codemirror
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 1ad99d21c..107efca53 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,7 +15,7 @@
"@babel/preset-react": "^7.16.5",
"body-parser": "^1.19.1",
"classnames": "^2.3.1",
- "codemirror": "^5.64.0",
+ "codemirror": "^5.65.0",
"cookie-parser": "^1.4.6",
"create-react-class": "^15.7.0",
"dedent-tabs": "^0.10.1",
@@ -3154,9 +3154,9 @@
}
},
"node_modules/codemirror": {
- "version": "5.64.0",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.64.0.tgz",
- "integrity": "sha512-fqr6CtDQdJ6iNMbD8NX2gH2G876nNDk+TO1rrYkgWnqQdO3O1Xa9tK6q+psqhJJgE5SpbaDcgdfLmukoUVE8pg=="
+ "version": "5.65.0",
+ "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.0.tgz",
+ "integrity": "sha512-gWEnHKEcz1Hyz7fsQWpK7P0sPI2/kSkRX2tc7DFA6TmZuDN75x/1ejnH/Pn8adYKrLEA1V2ww6L00GudHZbSKw=="
},
"node_modules/collection-visit": {
"version": "1.0.0",
@@ -11945,9 +11945,9 @@
}
},
"codemirror": {
- "version": "5.64.0",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.64.0.tgz",
- "integrity": "sha512-fqr6CtDQdJ6iNMbD8NX2gH2G876nNDk+TO1rrYkgWnqQdO3O1Xa9tK6q+psqhJJgE5SpbaDcgdfLmukoUVE8pg=="
+ "version": "5.65.0",
+ "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.0.tgz",
+ "integrity": "sha512-gWEnHKEcz1Hyz7fsQWpK7P0sPI2/kSkRX2tc7DFA6TmZuDN75x/1ejnH/Pn8adYKrLEA1V2ww6L00GudHZbSKw=="
},
"collection-visit": {
"version": "1.0.0",
diff --git a/package.json b/package.json
index 6dd282d2d..8a1746a05 100644
--- a/package.json
+++ b/package.json
@@ -46,7 +46,7 @@
"@babel/preset-react": "^7.16.5",
"body-parser": "^1.19.1",
"classnames": "^2.3.1",
- "codemirror": "^5.64.0",
+ "codemirror": "^5.65.0",
"cookie-parser": "^1.4.6",
"create-react-class": "^15.7.0",
"dedent-tabs": "^0.10.1",
From 8a695c14d718dce835a86c6545664aeb64489377 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 22 Dec 2021 03:00:58 +0000
Subject: [PATCH 264/610] Bump mongoose from 6.1.2 to 6.1.3
Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.1.2 to 6.1.3.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/6.1.2...6.1.3)
---
updated-dependencies:
- dependency-name: mongoose
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 1ad99d21c..c7379306a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -32,7 +32,7 @@
"marked-extended-tables": "^1.0.3",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.1",
- "mongoose": "^6.1.2",
+ "mongoose": "^6.1.3",
"nanoid": "3.1.30",
"nconf": "^0.11.3",
"prop-types": "15.7.2",
@@ -6485,9 +6485,9 @@
}
},
"node_modules/mongoose": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.2.tgz",
- "integrity": "sha512-/CNxPVSPnaRNKndlhVOblFSB8kfpHWuAiJSEoVqs/pjS42actV7m/Wk0o0RbsndUvJ1WUenoXpbG8lrD9atGlQ==",
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.3.tgz",
+ "integrity": "sha512-EK3IBmQcIZEhnX3HQYge82hF0ukAnrxnJovBUFwAEkoe3SZ3VJb2k1eMF4MOKEo5mF/h3auxzKJhItaXc3dfmg==",
"dependencies": {
"bson": "^4.2.2",
"kareem": "2.3.2",
@@ -14545,9 +14545,9 @@
}
},
"mongoose": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.2.tgz",
- "integrity": "sha512-/CNxPVSPnaRNKndlhVOblFSB8kfpHWuAiJSEoVqs/pjS42actV7m/Wk0o0RbsndUvJ1WUenoXpbG8lrD9atGlQ==",
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.3.tgz",
+ "integrity": "sha512-EK3IBmQcIZEhnX3HQYge82hF0ukAnrxnJovBUFwAEkoe3SZ3VJb2k1eMF4MOKEo5mF/h3auxzKJhItaXc3dfmg==",
"requires": {
"bson": "^4.2.2",
"kareem": "2.3.2",
diff --git a/package.json b/package.json
index 6dd282d2d..e4e80d974 100644
--- a/package.json
+++ b/package.json
@@ -63,7 +63,7 @@
"marked-extended-tables": "^1.0.3",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.1",
- "mongoose": "^6.1.2",
+ "mongoose": "^6.1.3",
"nanoid": "3.1.30",
"nconf": "^0.11.3",
"prop-types": "15.7.2",
From 67bf69fc21622bd37b87c0c2c130bf41f7362ffb Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 23 Dec 2021 03:01:10 +0000
Subject: [PATCH 265/610] Bump eslint-plugin-react from 7.27.1 to 7.28.0
Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.27.1 to 7.28.0.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yannickcr/eslint-plugin-react/compare/v7.27.1...v7.28.0)
---
updated-dependencies:
- dependency-name: eslint-plugin-react
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 8602c24cd..a12ff5b42 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -47,7 +47,7 @@
},
"devDependencies": {
"eslint": "^8.5.0",
- "eslint-plugin-react": "^7.27.1",
+ "eslint-plugin-react": "^7.28.0",
"pico-check": "^2.2.0"
},
"engines": {
@@ -3869,9 +3869,9 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz",
- "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz",
+ "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==",
"dev": true,
"dependencies": {
"array-includes": "^3.1.4",
@@ -12493,9 +12493,9 @@
}
},
"eslint-plugin-react": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz",
- "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz",
+ "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==",
"dev": true,
"requires": {
"array-includes": "^3.1.4",
diff --git a/package.json b/package.json
index 5bf9e75c8..6ae757aac 100644
--- a/package.json
+++ b/package.json
@@ -78,7 +78,7 @@
},
"devDependencies": {
"eslint": "^8.5.0",
- "eslint-plugin-react": "^7.27.1",
+ "eslint-plugin-react": "^7.28.0",
"pico-check": "^2.2.0"
}
}
From ec54434427afb56bb23092b3594b010fdcccc2a1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 23 Dec 2021 03:01:28 +0000
Subject: [PATCH 266/610] Bump prop-types from 15.7.2 to 15.8.0
Bumps [prop-types](https://github.com/facebook/prop-types) from 15.7.2 to 15.8.0.
- [Release notes](https://github.com/facebook/prop-types/releases)
- [Changelog](https://github.com/facebook/prop-types/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/prop-types/compare/v15.7.2...v15.8.0)
---
updated-dependencies:
- dependency-name: prop-types
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 30 +++++++++++++++---------------
package.json | 2 +-
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 8602c24cd..e67ea14ef 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -35,7 +35,7 @@
"mongoose": "^6.1.3",
"nanoid": "3.1.30",
"nconf": "^0.11.3",
- "prop-types": "15.7.2",
+ "prop-types": "15.8.0",
"query-string": "7.0.1",
"react": "^16.14.0",
"react-dom": "^16.14.0",
@@ -7138,13 +7138,13 @@
}
},
"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==",
+ "version": "15.8.0",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.0.tgz",
+ "integrity": "sha512-fDGekdaHh65eI3lMi5OnErU6a8Ighg2KjcjQxO7m8VHyWjcPyj5kiOgV1LQDOOOgVy3+5FgjXvdSSX7B8/5/4g==",
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
- "react-is": "^16.8.1"
+ "react-is": "^16.13.1"
}
},
"node_modules/prop-types/node_modules/loose-envify": {
@@ -7356,9 +7356,9 @@
}
},
"node_modules/react-is": {
- "version": "16.12.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
- "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q=="
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/react-router-dom": {
"version": "5.3.0",
@@ -14902,13 +14902,13 @@
"dev": true
},
"prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "version": "15.8.0",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.0.tgz",
+ "integrity": "sha512-fDGekdaHh65eI3lMi5OnErU6a8Ighg2KjcjQxO7m8VHyWjcPyj5kiOgV1LQDOOOgVy3+5FgjXvdSSX7B8/5/4g==",
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
- "react-is": "^16.8.1"
+ "react-is": "^16.13.1"
},
"dependencies": {
"loose-envify": {
@@ -15081,9 +15081,9 @@
"requires": {}
},
"react-is": {
- "version": "16.12.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
- "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q=="
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"react-router-dom": {
"version": "5.3.0",
diff --git a/package.json b/package.json
index 5bf9e75c8..9de5aeaa9 100644
--- a/package.json
+++ b/package.json
@@ -66,7 +66,7 @@
"mongoose": "^6.1.3",
"nanoid": "3.1.30",
"nconf": "^0.11.3",
- "prop-types": "15.7.2",
+ "prop-types": "15.8.0",
"query-string": "7.0.1",
"react": "^16.14.0",
"react-dom": "^16.14.0",
From 1adaa9f5c4d311b2b826a8f7e229bee82b5147bb Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 28 Dec 2021 03:01:01 +0000
Subject: [PATCH 267/610] Bump mongoose from 6.1.3 to 6.1.4
Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.1.3 to 6.1.4.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/6.1.3...6.1.4)
---
updated-dependencies:
- dependency-name: mongoose
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 30 +++++++++++++++---------------
package.json | 2 +-
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 487a2daf8..99724b4e7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -32,7 +32,7 @@
"marked-extended-tables": "^1.0.3",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.1",
- "mongoose": "^6.1.3",
+ "mongoose": "^6.1.4",
"nanoid": "3.1.30",
"nconf": "^0.11.3",
"prop-types": "15.8.0",
@@ -5851,9 +5851,9 @@
}
},
"node_modules/kareem": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
- "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.3.tgz",
+ "integrity": "sha512-uESCXM2KdtOQ8LOvKyTUXEeg0MkYp4wGglTIpGcYHvjJcS5sn2Wkfrfit8m4xSbaNDAw2KdI9elgkOxZbrFYbg=="
},
"node_modules/keyv": {
"version": "3.1.0",
@@ -6413,12 +6413,12 @@
}
},
"node_modules/mongoose": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.3.tgz",
- "integrity": "sha512-EK3IBmQcIZEhnX3HQYge82hF0ukAnrxnJovBUFwAEkoe3SZ3VJb2k1eMF4MOKEo5mF/h3auxzKJhItaXc3dfmg==",
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.4.tgz",
+ "integrity": "sha512-RsNiMpGWo7OXFmq5xt0ZWYt2rabHLxNYr0oAiR0xDv23lHKCkXDqyDl71+sXF9rcWEe8BTHG+1IRQykiNBvaKQ==",
"dependencies": {
"bson": "^4.2.2",
- "kareem": "2.3.2",
+ "kareem": "2.3.3",
"mongodb": "4.2.2",
"mpath": "0.8.4",
"mquery": "4.0.0",
@@ -13909,9 +13909,9 @@
"integrity": "sha512-40aUybvhH9t2h71ncA1/1SbtTNCVZHgsTsTgqPUxGWDmUDrXyDf2wMNQKEbdBjbf4AI+fQhbECNTV6lWxQKUzg=="
},
"kareem": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
- "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.3.tgz",
+ "integrity": "sha512-uESCXM2KdtOQ8LOvKyTUXEeg0MkYp4wGglTIpGcYHvjJcS5sn2Wkfrfit8m4xSbaNDAw2KdI9elgkOxZbrFYbg=="
},
"keyv": {
"version": "3.1.0",
@@ -14351,12 +14351,12 @@
}
},
"mongoose": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.3.tgz",
- "integrity": "sha512-EK3IBmQcIZEhnX3HQYge82hF0ukAnrxnJovBUFwAEkoe3SZ3VJb2k1eMF4MOKEo5mF/h3auxzKJhItaXc3dfmg==",
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.4.tgz",
+ "integrity": "sha512-RsNiMpGWo7OXFmq5xt0ZWYt2rabHLxNYr0oAiR0xDv23lHKCkXDqyDl71+sXF9rcWEe8BTHG+1IRQykiNBvaKQ==",
"requires": {
"bson": "^4.2.2",
- "kareem": "2.3.2",
+ "kareem": "2.3.3",
"mongodb": "4.2.2",
"mpath": "0.8.4",
"mquery": "4.0.0",
diff --git a/package.json b/package.json
index 0d419053c..1eb72583a 100644
--- a/package.json
+++ b/package.json
@@ -63,7 +63,7 @@
"marked-extended-tables": "^1.0.3",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.1",
- "mongoose": "^6.1.3",
+ "mongoose": "^6.1.4",
"nanoid": "3.1.30",
"nconf": "^0.11.3",
"prop-types": "15.8.0",
From 5bb580147aa7da8dc8fde419808c665f491e1c60 Mon Sep 17 00:00:00 2001
From: Charlie Humphreys
Date: Tue, 28 Dec 2021 21:59:02 -0600
Subject: [PATCH 268/610] Add discord, github, and reddit links to home page
document
---
client/homebrew/pages/homePage/welcome_msg.md | 24 +++++++++++++++++++
server.js | 1 +
2 files changed, 25 insertions(+)
diff --git a/client/homebrew/pages/homePage/welcome_msg.md b/client/homebrew/pages/homePage/welcome_msg.md
index f182517f5..77be2bfe7 100644
--- a/client/homebrew/pages/homePage/welcome_msg.md
+++ b/client/homebrew/pages/homePage/welcome_msg.md
@@ -1,4 +1,28 @@
+```css
+#header {
+ display: flex;
+ flex: 0 0 auto;
+ justify-content: space-between;
+}
+
+#header a {
+ color: black;
+}
+
+i.domt:before {
+ content: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3Csvg version='1.1' id='Layer_3' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' height='31' width='31' viewBox='0 0 36 36' style='enable-background:new 0 0 36 36;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0%7Bopacity:0.9;%7D .st1%7Bfill:%23001013;%7D .st2%7Bfill:%23FFFFFF;%7D .st3%7Bfill:%23AA2A29;%7D%0A%3C/style%3E%3Cg class='st0'%3E%3Cpath d='M6.2,1.5C6,1.8,5.9,2,5.8,2.3C5.7,2.8,5.5,3.3,5.5,3.9c0,7.7,0,15.3,0,23c0,1.8,1.2,3.3,2.9,3.7c0.2,0,0.5,0.1,0.7,0.1 c6.3,0,12.7,0,19,0h0.6c-0.3-1.1-0.9-3.1-0.9-3.1l0.2,0.2c0,0,3.8,3.5,5.7,5.2c0.2,0.2,0.3,0.4,0.3,0.7c0,0.8,0,1.5,0,2.3 c-0.6-0.5-1.1-0.9-1.6-1.4c-0.9-0.8-1.8-1.6-2.6-2.3c-0.2-0.2-0.4-0.3-0.7-0.3c-7.2,0-14.3,0-21.5,0c-1.9,0-3.1-0.8-3.8-2.6 c-0.1-0.2-0.1-0.5-0.1-0.7c0-7.1,0-14.3,0-21.4V4.8C3.8,3.3,4.7,2.1,6.2,1.5z'/%3E%3C/g%3E%3Cpath class='st1' d='M28,28c0,0,0.5,1.8,0.8,2.8h-0.5c-6.4,0-12.7,0-19.1,0c-1.6,0-3.2-0.9-3.7-3.1c0-0.2,0-0.4,0-0.5 c0-7.8,0-15.7,0-23.5c0-1.8,1.4-3.4,3.2-3.5c0.3,0,0.5,0,0.8,0c7.5,0,15.1,0,22.6,0c1.2,0,2.3,0.3,3.1,1.3c0.6,0.7,0.9,1.5,0.9,2.3 c0,10.2,0,20.5,0,30.7c0,0.1,0,0.2,0,0.4c-0.4-0.3-0.7-0.6-1-0.9c-2.2-2-4.3-3.9-6.5-5.9c-0.1-0.1-0.3-0.3-0.3-0.3l-0.2-0.2L28,28z' /%3E%3Cpath class='st2' d='M35.4,33.9c-0.7-0.6-1.4-1.2-2-1.8c-1.7-1.6-3.4-3.2-5.2-4.8c-0.2-0.2-0.4-0.3-0.7-0.2 c-0.3,0.1-0.3,0.4-0.2,0.7c0.2,0.8,0.4,1.5,0.7,2.2c0,0.1,0,0.1,0,0.2c-0.1,0-0.3,0-0.4,0c-6.2,0-12.4,0-18.5,0 c-1.7,0-3-1.2-3.2-2.7c0-0.3-0.1-0.6-0.1-0.9c0-7.6,0-15.2,0-22.8c0-1,0.3-1.8,1-2.5c0.5-0.5,1.2-0.8,1.9-0.8c0.2,0,0.4,0,0.5,0 c7.6,0,15.1,0,22.7,0c0.9,0,1.7,0.2,2.4,0.8c0.7,0.7,1,1.6,1,2.5c0,3.7,0,7.5,0,11.2L35.4,33.9L35.4,33.9z'/%3E%3Cpath class='st3' d='M25.6,9.6c-1.1,4.1-2.1,8.2-3.2,12.3l-8.9-9.1L25.6,9.6z'/%3E%3Cpath class='st3' d='M31.9,18.3L23.1,22c1-4,2.1-8,3.1-11.9l0.1,0L31.9,18.3z'/%3E%3Cpath class='st3' d='M12.1,23.5c0.3-3.3,0.5-6.6,0.8-10l8.7,8.9L12.1,23.5z'/%3E%3Cpath class='st3' d='M17.4,3.8l7.6,5.1L13.3,12L17.4,3.8z'/%3E%3Cpath class='st3' d='M30.5,19.7l-6.7,6.7c-0.3-1.2-0.6-2.4-0.9-3.5L30.5,19.7z'/%3E%3Cpath class='st3' d='M22.1,23.1c0.3,1.2,0.6,2.3,1,3.5l-9.1-2.4l0-0.1L22.1,23.1z'/%3E%3Cpath class='st3' d='M31.3,16l-4.7-6.9l2.5-2L31.3,16L31.3,16z'/%3E%3Cpath class='st3' d='M12.1,12.9c-0.2,2.8-0.4,5.6-0.6,8.4l-0.1,0c-0.8-2.9-1.6-5.9-2.4-8.9L12.1,12.9z'/%3E%3Cpath class='st3' d='M26,8.5l-6.3-4.2l0-0.1l8.6,2.3L26,8.5z'/%3E%3Cpath class='st3' d='M9.5,11.7l6.1-6.3l0.1,0.1l-3.4,6.7L9.5,11.7z'/%3E%3C/svg%3E%0A");
+}
+```
+
+