diff --git a/README.md b/README.md index 35f0150d1..df7f41503 100644 --- a/README.md +++ b/README.md @@ -21,24 +21,29 @@ below. First, install three programs that The Homebrewery requires to run and retrieve updates: -1. install [node](https://nodejs.org/en/) +1. install [node](https://nodejs.org/en/), version v16 or higher. 1. install [mongodb](https://www.mongodb.com/try/download/community) (Community version) For the easiest installation, follow these steps: 1. In the installer, uncheck the option to run as a service. 1. You can install MongoDB Compass if you want a GUI to view your database documents. + 1. If you install any version over 6.0, you will have to install [MongoDB Shell](https://www.mongodb.com/try/download/shell). 1. Go to the C:\ drive and create a folder called "data". 1. Inside the "data" folder, create a new folder called "db". - 1. Open a command prompt or other terminal and navigate to your MongoDB install folder (C:\Program Files\Mongo\Server\4.4\bin). + 1. Open a command prompt or other terminal and navigate to your MongoDB install folder (C:\Program Files\Mongo\Server\6.0\bin). 1. In the command prompt, run "mongod", which will start up your local database server. 1. While MongoD is running, open a second command prompt and navigate to the MongoDB install folder. - 1. In the second command prompt, run "mongo", which allows you to edit the database. - 1. Type `use homebrewery` to create The Homebrewery database. You should see `switched to db homebrewery`. - 1. Type `db.brews.insert({"title":"test"})` to create a blank document. You should see `WriteResult({ "nInserted" : 1 })`. 1. Search in Windows for "Advanced system settings" and open it. 1. Click "Environment variables", find the "path" variable, and double-click to open it. 1. Click "New" and paste in the path to the MongoDB "bin" folder. 1. Click "OK" three times to close all the windows. + 1. In the second command prompt, run "mongo", which allows you to edit the database. + 1. Type `use homebrewery` to create The Homebrewery database. You should see `switched to db homebrewery`. + 1. Type `db.brews.insertOne({"title":"test"})` to create a blank document. You should see `{ +acknowledged: true, +insertedId: ObjectId("63c2fce9e5ac5a94fe2410cf") +}` + 1. install [git](https://git-scm.com/downloads) (select the option that allows Git to run from the command prompt). Checkout the repo ([documentation][github-clone-repo-docs-url]): @@ -51,11 +56,19 @@ git clone https://github.com/naturalcrit/homebrewery.git Second, you will need to add the environment variable `NODE_ENV=local` to allow the project to run locally. -You can set this temporarily in your shell of choice: +You can set this **temporarily** (until you close the terminal) in your shell of choice with admin privileges: * Windows Powershell: `$env:NODE_ENV="local"` * Windows CMD: `set NODE_ENV=local` * Linux / macOS: `export NODE_ENV=local` +If you want to add this variable **permanently** the steps are as follows: + 1. Search in Windows for "Advanced system settings" and open it. + 1. Click "Environment variables". + 1. In System Variables, click "New" + 1. Click "New" and write `NODE_ENV` as a name and `local` as the value. + 1. Click "OK" three times to close all the windows. + This can be undone at any time if needed. + Third, you will need to install the Node dependencies, compile the app, and run it using the two commands: @@ -65,6 +78,13 @@ it using the two commands: You should now be able to go to [http://localhost:8000](http://localhost:8000) in your browser and use The Homebrewery offline. +If you had any issue at all, here are some links that may be useful: +- [Course](https://learn.mongodb.com/courses/m103-basic-cluster-administration) on cluster administration, useful for beginners +- [Mongo community forums](https://www.mongodb.com/community/forums/) +- Useful Stack Overflow links for your most probable errors: [1](https://stackoverflow.com/questions/44962540/mongod-and-mongo-commands-not-working-on-windows-10), [2](https://stackoverflow.com/questions/15053893/mongo-command-not-recognized-when-trying-to-connect-to-a-mongodb-server/41507803#41507803), [3](https://stackoverflow.com/questions/51224959/mongo-is-not-recognized-as-an-internal-or-external-command-operable-program-o) + +If you still have problems, post in [Our Subreddit](https://www.reddit.com/r/homebrewery/) and we will help you. + ### Running the application via Docker Please see the docs here: [README.DOCKER.md](./README.DOCKER.md) diff --git a/changelog.md b/changelog.md index e171df69a..3e6216607 100644 --- a/changelog.md +++ b/changelog.md @@ -52,16 +52,20 @@ pre { font-family: 'Open Sans'; font-size: 0.9em; } + +.page { + padding-bottom: 1.5cm; +} ``` ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). -### v3.6.0 +### Friday 23/01/2023 - v3.6.0 {{taskList ##### calculuschild - * [x] Fix Google Drive brews sometimes duplicating +* [x] Fix Google Drive brews sometimes duplicating Fixes issues [#2603](https://github.com/naturalcrit/homebrewery/issues/2603) @@ -69,9 +73,17 @@ Fixes issues [#2603](https://github.com/naturalcrit/homebrewery/issues/2603) * [x] Add unit tests with full coverage for the Homebrewery API +* [x] Add message to refresh the browser if the user is missing an update to the Homebrewery + +Fixes issues [#2583](https://github.com/naturalcrit/homebrewery/issues/2583) + ##### G-Ambatte -* [x] Add Themes directory to development server watchlist. +* [x] Auto-compile Themes CSS on development server + +##### 5e-Cleric + +* [x] Fix cloned brews inheriting the parent view count }} ### Friday 23/12/2022 - v3.5.0 @@ -89,22 +101,6 @@ Fixes issues [#1987](https://github.com/naturalcrit/homebrewery/issues/1987) \page -### Monday 05/12/2022 - v3.4.1 -{{taskList - -##### G-Ambatte - -* [x] Fix Account page incorrect last login time - -Fixes issues [#2521](https://github.com/naturalcrit/homebrewery/issues/2521) - -##### Gazook - -* [x] Fix crashing on iOS and Safari browsers - -Fixes issues [#2531](https://github.com/naturalcrit/homebrewery/issues/2531) -}} - ### Saturday 10/12/2022 - v3.4.2 {{taskList diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 654806886..f8a5fce0a 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -134,7 +134,7 @@ const BrewRenderer = createClass({ renderStyle : function() { if(!this.props.style) return; - return
${this.props.style} ` }} />; + return
@layer styleTab {\n${this.props.style}\n} ` }} />; }, renderPage : function(pageText, index){ diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 75ab08de4..58e84e4fc 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -32,6 +32,7 @@ const Editor = createClass({ onTextChange : ()=>{}, onStyleChange : ()=>{}, onMetaChange : ()=>{}, + reportError : ()=>{}, renderer : 'legacy' }; @@ -291,7 +292,8 @@ const Editor = createClass({ rerenderParent={this.rerenderParent} /> + onChange={this.props.onMetaChange} + reportError={this.props.reportError}/> ; } }, diff --git a/client/homebrew/editor/metadataEditor/metadataEditor.jsx b/client/homebrew/editor/metadataEditor/metadataEditor.jsx index 03f40e7cf..3d77f557f 100644 --- a/client/homebrew/editor/metadataEditor/metadataEditor.jsx +++ b/client/homebrew/editor/metadataEditor/metadataEditor.jsx @@ -4,7 +4,7 @@ const React = require('react'); const createClass = require('create-react-class'); const _ = require('lodash'); const cx = require('classnames'); -const request = require('superagent'); +const request = require('../../utils/request-middleware.js'); const Nav = require('naturalcrit/nav/nav.jsx'); const StringArrayEditor = require('../stringArrayEditor/stringArrayEditor.jsx'); @@ -37,7 +37,8 @@ const MetadataEditor = createClass({ renderer : 'legacy', theme : '5ePHB' }, - onChange : ()=>{} + onChange : ()=>{}, + reportError : ()=>{} }; }, @@ -121,8 +122,12 @@ const MetadataEditor = createClass({ request.delete(`/api/${this.props.metadata.googleId ?? ''}${this.props.metadata.editId}`) .send() - .end(function(err, res){ - window.location.href = '/'; + .end((err, res)=>{ + if(err) { + this.props.reportError(err); + } else { + window.location.href = '/'; + } }); }, @@ -184,6 +189,10 @@ const MetadataEditor = createClass({ return
this.handleTheme(theme)} title={''}> {`${theme.renderer} : ${theme.name}`} +
+
{`${theme.name}`} preview
+ +
; }); }; @@ -193,14 +202,14 @@ const MetadataEditor = createClass({ if(this.props.metadata.renderer == 'legacy') { dropdown = - +
{`Themes are not supported in the Legacy Renderer`}
; } else { dropdown = - +
{`${_.upperFirst(currentTheme.renderer)} : ${currentTheme.name}`}
diff --git a/client/homebrew/editor/metadataEditor/metadataEditor.less b/client/homebrew/editor/metadataEditor/metadataEditor.less index be1a9aa9c..001285d11 100644 --- a/client/homebrew/editor/metadataEditor/metadataEditor.less +++ b/client/homebrew/editor/metadataEditor/metadataEditor.less @@ -35,7 +35,6 @@ flex-direction: column; flex: 5 0 200px; gap: 10px; - } .field{ display : flex; @@ -159,7 +158,6 @@ font-size : 13.33px; .navDropdownContainer { background-color : white; - width : 100%; position : relative; z-index : 500; &.disabled { @@ -182,24 +180,51 @@ } .navDropdown { box-shadow : 0px 5px 10px rgba(0, 0, 0, 0.3); - position : absolute; - width : 100%; + position : absolute; + width : 100%; .item { - padding : 3px 3px; - border-top : 1px solid rgb(118, 118, 118); - position : relative; - overflow : hidden; + padding : 3px 3px; + border-top : 1px solid rgb(118, 118, 118); + position : relative; + overflow : visible; background-color : white; + .preview { + display : flex; + flex-direction: column; + background : #ccc; + border-radius : 5px; + box-shadow : 0 0 5px black; + width : 200px; + color :black; + position : absolute; + top : 0; + right : 0; + opacity : 0; + transition : opacity 250ms ease; + z-index : 1; + overflow :hidden; + h6 { + font-weight : 900; + padding-inline:1em; + padding-block :.5em; + border-bottom :2px solid hsl(0,0%,40%); + } + } &:hover { background-color : @blue; - color : white; + color : white; } - img { - mask-image : linear-gradient(90deg, transparent, black 20%); + &:hover > .preview { + opacity: 1; + } + >img { + mask-image : linear-gradient(90deg, transparent, black 20%); -webkit-mask-image : linear-gradient(90deg, transparent, black 20%); - position : absolute; - left : ~"max(100px, 100% - 300px)"; - top : 0px; + position : absolute; + right : 0; + top : 0px; + width : 50%; + height : 100%; } } } diff --git a/client/homebrew/editor/snippetbar/snippetbar.jsx b/client/homebrew/editor/snippetbar/snippetbar.jsx index 9dbee4280..c03c01212 100644 --- a/client/homebrew/editor/snippetbar/snippetbar.jsx +++ b/client/homebrew/editor/snippetbar/snippetbar.jsx @@ -163,15 +163,22 @@ const SnippetGroup = createClass({ onSnippetClick : function(){}, }; }, - handleSnippetClick : function(snippet){ + handleSnippetClick : function(e, snippet){ + e.stopPropagation(); this.props.onSnippetClick(execute(snippet.gen, this.props.brew)); }, - renderSnippets : function(){ - return _.map(this.props.snippets, (snippet)=>{ - return
this.handleSnippetClick(snippet)}> + renderSnippets : function(snippets){ + return _.map(snippets, (snippet)=>{ + return
this.handleSnippetClick(e, snippet)}> {snippet.name} + {snippet.subsnippets && <> + +
+ {this.renderSnippets(snippet.subsnippets)} +
}
; + }); }, @@ -182,7 +189,7 @@ const SnippetGroup = createClass({ {this.props.groupName}
- {this.renderSnippets()} + {this.renderSnippets(this.props.snippets)}
; }, diff --git a/client/homebrew/editor/snippetbar/snippetbar.less b/client/homebrew/editor/snippetbar/snippetbar.less index 371f51fda..57f868899 100644 --- a/client/homebrew/editor/snippetbar/snippetbar.less +++ b/client/homebrew/editor/snippetbar/snippetbar.less @@ -1,4 +1,4 @@ - +@import (less) './client/icons/customIcons.less'; .snippetBar{ @menuHeight : 25px; position : relative; @@ -83,7 +83,7 @@ .snippetGroup{ border-right : 1px solid black; &:hover{ - .dropdown{ + &>.dropdown{ visibility : visible; } } @@ -97,15 +97,30 @@ background-color : #ddd; .snippet{ .animate(background-color); + width : max-content; padding : 5px; cursor : pointer; font-size : 10px; i{ margin-right : 8px; font-size : 1.2em; + height : 1.2em; + &~i{ + margin-right: 0; + margin-left: 8px; + } } &:hover{ background-color : #999; + &>.dropdown{ + visibility : visible; + &.side { + left: 100%; + top: 0%; + margin-left:0; + box-shadow: -1px 1px 2px 0px #999; + } + } } } } diff --git a/client/homebrew/navbar/error-navitem.jsx b/client/homebrew/navbar/error-navitem.jsx new file mode 100644 index 000000000..efee04019 --- /dev/null +++ b/client/homebrew/navbar/error-navitem.jsx @@ -0,0 +1,85 @@ +require('./error-navitem.less'); +const React = require('react'); +const Nav = require('naturalcrit/nav/nav.jsx'); +const createClass = require('create-react-class'); + +const ErrorNavItem = createClass({ + getDefaultProps : function() { + return { + error : '', + parent : null + }; + }, + render : function() { + const clearError = ()=>{ + const state = { + error : null + }; + if(this.props.parent.state.isSaving) { + state.isSaving = false; + } + this.props.parent.setState(state); + }; + + const error = this.props.error; + const response = error.response; + const status = response.status; + const message = response.body?.message; + let errMsg = ''; + try { + errMsg += `${error.toString()}\n\n`; + errMsg += `\`\`\`\n${error.stack}\n`; + errMsg += `${JSON.stringify(response.error, null, ' ')}\n\`\`\``; + console.log(errMsg); + } catch (e){} + + if(status === 409) { + return + Oops! +
+ {message ?? 'Conflict: please refresh to get latest changes'} +
+
; + } else if(status === 412) { + return + Oops! +
+ {message ?? 'Your client is out of date. Please save your changes elsewhere and refresh.'} +
+
; + } + + if(response.req.url.match(/^\/api.*Google.*$/m)){ + return + Oops! +
+ Looks like your Google credentials have + expired! Visit our log in page to sign out + and sign back in with Google, + then try saving again! + +
+ Sign In +
+
+
+ Not Now +
+
+
; + } + + return + Oops! +
+ Looks like there was a problem saving.
+ Report the issue + here + . +
+
; + } +}); + +module.exports = ErrorNavItem; \ No newline at end of file diff --git a/client/homebrew/navbar/error-navitem.less b/client/homebrew/navbar/error-navitem.less new file mode 100644 index 000000000..8a7cabb19 --- /dev/null +++ b/client/homebrew/navbar/error-navitem.less @@ -0,0 +1,77 @@ +.navItem { + &.error { + position : relative; + background-color : @red; + } + + .errorContainer{ + animation-name: glideDown; + animation-duration: 0.4s; + position : absolute; + top : 100%; + left : 50%; + z-index : 1000; + width : 140px; + padding : 3px; + color : white; + background-color : #333; + border : 3px solid #444; + border-radius : 5px; + transform : translate(-50% + 3px, 10px); + text-align : center; + font-size : 10px; + font-weight : 800; + text-transform : uppercase; + a{ + color : @teal; + } + &:before { + content: ""; + width: 0px; + height: 0px; + position: absolute; + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-top: 10px solid transparent; + border-bottom: 10px solid #444; + left: 53px; + top: -23px; + } + &:after { + content: ""; + width: 0px; + height: 0px; + position: absolute; + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-top: 10px solid transparent; + border-bottom: 10px solid #333; + left: 53px; + top: -19px; + } + .deny { + width : 48%; + margin : 1px; + padding : 5px; + background-color : #333; + display : inline-block; + border-left : 1px solid #666; + .animate(background-color); + &:hover{ + background-color : red; + } + } + .confirm { + width : 48%; + margin : 1px; + padding : 5px; + background-color : #333; + display : inline-block; + color : white; + .animate(background-color); + &:hover{ + background-color : teal; + } + } + } +} \ No newline at end of file diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index d17c020af..aa2f47431 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -4,7 +4,7 @@ const createClass = require('create-react-class'); const _ = require('lodash'); const cx = require('classnames'); const moment = require('moment'); -const request = require('superagent'); +const request = require('../../../../utils/request-middleware.js'); const googleDriveIcon = require('../../../../googleDrive.png'); const dedent = require('dedent-tabs').default; @@ -18,7 +18,8 @@ const BrewItem = createClass({ description : '', authors : [], stubbed : true - } + }, + reportError : ()=>{} }; }, @@ -33,8 +34,12 @@ const BrewItem = createClass({ request.delete(`/api/${this.props.brew.googleId ?? ''}${this.props.brew.editId}`) .send() - .end(function(err, res){ - location.reload(); + .end((err, res)=>{ + if(err) { + this.props.reportError(err); + } else { + location.reload(); + } }); }, diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 162aba5e4..45fb30ac4 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -23,7 +23,8 @@ const ListPage = createClass({ brews : [] } ], - navItems : <> + navItems : <>, + reportError : null }; }, getInitialState : function() { @@ -81,7 +82,7 @@ const ListPage = createClass({ if(!brews || !brews.length) return
No Brews.
; return _.map(brews, (brew, idx)=>{ - return ; + return ; }); }, @@ -218,12 +219,13 @@ const ListPage = createClass({ render : function(){ return
+ {this.props.navItems} {this.renderSortOptions()}
-
+
{this.renderBrewCollection(this.state.brewCollection)}
diff --git a/client/homebrew/pages/basePages/listPage/listPage.less b/client/homebrew/pages/basePages/listPage/listPage.less index 7ee5a7e67..4e5557a3e 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.less +++ b/client/homebrew/pages/basePages/listPage/listPage.less @@ -10,14 +10,14 @@ -moz-column-width : auto; -webkit-column-gap : auto; -moz-column-gap : auto; + height : auto; + min-height : 279.4mm; + margin : 20px auto; } .listPage{ .content{ - .phb{ - .noColumns(); - height : auto; - min-height : 279.4mm; - margin : 20px auto; + .page{ + .noColumns() !important; //Needed to override PHB Theme since this is on a lower @layer &::after{ display : none; } diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 873f5d3d2..87bc7eefb 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -3,7 +3,7 @@ require('./editPage.less'); const React = require('react'); const createClass = require('create-react-class'); const _ = require('lodash'); -const request = require('superagent'); +const request = require('../../utils/request-middleware.js'); const { Meta } = require('vitreum/headtags'); const Nav = require('naturalcrit/nav/nav.jsx'); @@ -12,6 +12,7 @@ const Navbar = require('../../navbar/navbar.jsx'); const NewBrew = require('../../navbar/newbrew.navitem.jsx'); const HelpNavItem = require('../../navbar/help.navitem.jsx'); const PrintLink = require('../../navbar/print.navitem.jsx'); +const ErrorNavItem = require('../../navbar/error-navitem.jsx'); const Account = require('../../navbar/account.navitem.jsx'); const RecentNavItem = require('../../navbar/recent.navitem.jsx').both; @@ -45,7 +46,7 @@ const EditPage = createClass({ alertLoginToTransfer : false, saveGoogle : this.props.brew.googleId ? true : false, confirmGoogleTransfer : false, - errors : null, + error : null, htmlErrors : Markdown.validate(this.props.brew.text), url : '', autoSave : true, @@ -60,7 +61,6 @@ const EditPage = createClass({ url : window.location.href }); - this.savedBrew = JSON.parse(JSON.stringify(this.props.brew)); //Deep copy this.setState({ autoSave: JSON.parse(localStorage.getItem('AUTOSAVE_ON')) ?? true }, ()=>{ @@ -157,7 +157,10 @@ const EditPage = createClass({ this.setState((prevState)=>({ confirmGoogleTransfer : !prevState.confirmGoogleTransfer })); - this.clearErrors(); + this.setState({ + error : null, + isSaving : false + }); }, closeAlerts : function(event){ @@ -173,24 +176,16 @@ const EditPage = createClass({ this.setState((prevState)=>({ saveGoogle : !prevState.saveGoogle, isSaving : false, - errors : null + error : null }), ()=>this.save()); }, - clearErrors : function(){ - this.setState({ - errors : null, - isSaving : false - - }); - }, - save : async function(){ if(this.debounceSave && this.debounceSave.cancel) this.debounceSave.cancel(); this.setState((prevState)=>({ isSaving : true, - errors : null, + error : null, htmlErrors : Markdown.validate(prevState.brew.text) })); @@ -205,8 +200,9 @@ const EditPage = createClass({ .send(brew) .catch((err)=>{ console.log('Error Updating Local Brew'); - this.setState({ errors: err }); + this.setState({ error: err }); }); + if(!res) return; this.savedBrew = res.body; history.replaceState(null, null, `/edit/${this.savedBrew.editId}`); @@ -266,77 +262,6 @@ const EditPage = createClass({ }, renderSaveButton : function(){ - if(this.state.errors){ - let errMsg = ''; - try { - errMsg += `${this.state.errors.toString()}\n\n`; - errMsg += `\`\`\`\n${this.state.errors.stack}\n`; - errMsg += `${JSON.stringify(this.state.errors.response.error, null, ' ')}\n\`\`\``; - console.log(errMsg); - } catch (e){} - - // if(this.state.errors.status == '401'){ - // return - // Oops! - //
- // You must be signed in to a Google account - // to save this to
Google Drive!
- // - //
- // Sign In - //
- //
- //
- // Not Now - //
- //
- //
; - // } - - if(this.state.errors.response.req.url.match(/^\/api.*Google.*$/m)){ - return - Oops! -
- Looks like your Google credentials have - expired! Visit our log in page to sign out - and sign back in with Google, - then try saving again! - -
- Sign In -
-
-
- Not Now -
-
-
; - } - - if(this.state.errors.response.error.status === 409) { - const message = this.state.errors.response.body?.message; - return - Oops! -
- {message ? message : 'Conflict: please refresh to get latest changes'} -
-
; - } - - return - Oops! -
- Looks like there was a problem saving.
- Report the issue - here - . -
-
; - } - if(this.state.autoSaveWarning && this.hasChanges()){ this.setAutosaveWarning(); const elapsedTime = Math.round((new Date() - this.state.unsavedTime) / 1000 / 60); @@ -380,6 +305,12 @@ const EditPage = createClass({ this.warningTimer; }, + errorReported : function(error) { + this.setState({ + error + }); + }, + renderAutoSaveButton : function(){ return Autosave @@ -424,10 +355,13 @@ const EditPage = createClass({ {this.renderGoogleDriveIcon()} - - {this.renderSaveButton()} - {this.renderAutoSaveButton()} - + {this.state.error ? + : + + {this.renderSaveButton()} + {this.renderAutoSaveButton()} + + } @@ -465,6 +399,7 @@ const EditPage = createClass({ onTextChange={this.handleTextChange} onStyleChange={this.handleStyleChange} onMetaChange={this.handleMetaChange} + reportError={this.errorReported} renderer={this.state.brew.renderer} /> diff --git a/client/homebrew/pages/editPage/editPage.less b/client/homebrew/pages/editPage/editPage.less index 9d3f69221..581e6dfa2 100644 --- a/client/homebrew/pages/editPage/editPage.less +++ b/client/homebrew/pages/editPage/editPage.less @@ -13,10 +13,6 @@ cursor : initial; color : #666; } - &.error{ - position : relative; - background-color : @red; - } } .googleDriveStorage { position : relative; @@ -26,74 +22,4 @@ padding : 0px; margin : -5px; } - .errorContainer{ - animation-name: glideDown; - animation-duration: 0.4s; - position : absolute; - top : 100%; - left : 50%; - z-index : 500; - width : 140px; - padding : 3px; - color : white; - background-color : #333; - border : 3px solid #444; - border-radius : 5px; - transform : translate(-50% + 3px, 10px); - text-align : center; - font-size : 10px; - font-weight : 800; - text-transform : uppercase; - a{ - color : @teal; - } - &:before { - content: ""; - width: 0px; - height: 0px; - position: absolute; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-top: 10px solid transparent; - border-bottom: 10px solid #444; - left: 53px; - top: -23px; - } - &:after { - content: ""; - width: 0px; - height: 0px; - position: absolute; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-top: 10px solid transparent; - border-bottom: 10px solid #333; - left: 53px; - top: -19px; - } - .deny { - width : 48%; - margin : 1px; - padding : 5px; - background-color : #333; - display : inline-block; - border-left : 1px solid #666; - .animate(background-color); - &:hover{ - background-color : red; - } - } - .confirm { - width : 48%; - margin : 1px; - padding : 5px; - background-color : #333; - display : inline-block; - color : white; - .animate(background-color); - &:hover{ - background-color : teal; - } - } - } } diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx index 7e9d9c3b4..9802517b1 100644 --- a/client/homebrew/pages/homePage/homePage.jsx +++ b/client/homebrew/pages/homePage/homePage.jsx @@ -3,7 +3,7 @@ const React = require('react'); const createClass = require('create-react-class'); const _ = require('lodash'); const cx = require('classnames'); -const request = require('superagent'); +const request = require('../../utils/request-middleware.js'); const { Meta } = require('vitreum/headtags'); const Nav = require('naturalcrit/nav/nav.jsx'); @@ -12,6 +12,7 @@ const NewBrewItem = require('../../navbar/newbrew.navitem.jsx'); const HelpNavItem = require('../../navbar/help.navitem.jsx'); const RecentNavItem = require('../../navbar/recent.navitem.jsx').both; const AccountNavItem = require('../../navbar/account.navitem.jsx'); +const ErrorNavItem = require('../../navbar/error-navitem.jsx'); const SplitPane = require('naturalcrit/splitPane/splitPane.jsx'); @@ -31,14 +32,18 @@ const HomePage = createClass({ getInitialState : function() { return { brew : this.props.brew, - welcomeText : this.props.brew.text + welcomeText : this.props.brew.text, + error : undefined }; }, handleSave : function(){ request.post('/api') .send(this.state.brew) .end((err, res)=>{ - if(err) return; + if(err) { + this.setState({ error: err }); + return; + } const brew = res.body; window.location = `/edit/${brew.editId}`; }); @@ -54,6 +59,10 @@ const HomePage = createClass({ renderNavbar : function(){ return + {this.state.error ? + : + null + } diff --git a/client/homebrew/pages/homePage/homePage.less b/client/homebrew/pages/homePage/homePage.less index 719e89f22..a7523bd3c 100644 --- a/client/homebrew/pages/homePage/homePage.less +++ b/client/homebrew/pages/homePage/homePage.less @@ -40,4 +40,11 @@ right : 350px; } } + + .navItem.save{ + background-color: @orange; + &:hover{ + background-color: @green; + } + } } diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index cd197f5fb..3e96ff5c0 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -3,13 +3,14 @@ require('./newPage.less'); const React = require('react'); const createClass = require('create-react-class'); const _ = require('lodash'); -const request = require('superagent'); +const request = require('../../utils/request-middleware.js'); const Markdown = require('naturalcrit/markdown.js'); const Nav = require('naturalcrit/nav/nav.jsx'); const Navbar = require('../../navbar/navbar.jsx'); const AccountNavItem = require('../../navbar/account.navitem.jsx'); +const ErrorNavItem = require('../../navbar/error-navitem.jsx'); const RecentNavItem = require('../../navbar/recent.navitem.jsx').both; const HelpNavItem = require('../../navbar/help.navitem.jsx'); @@ -39,7 +40,7 @@ const NewPage = createClass({ brew : brew, isSaving : false, saveGoogle : (global.account && global.account.googleId ? true : false), - errors : null, + error : null, htmlErrors : Markdown.validate(brew.text) }; }, @@ -122,14 +123,6 @@ const NewPage = createClass({ })); }, - clearErrors : function(){ - this.setState({ - errors : null, - isSaving : false - - }); - }, - save : async function(){ this.setState({ isSaving : true @@ -152,7 +145,7 @@ const NewPage = createClass({ .send(brew) .catch((err)=>{ console.log(err); - this.setState({ isSaving: false, errors: err }); + this.setState({ isSaving: false, error: err }); }); if(!res) return; @@ -164,67 +157,6 @@ const NewPage = createClass({ }, renderSaveButton : function(){ - if(this.state.errors){ - let errMsg = ''; - try { - errMsg += `${this.state.errors.toString()}\n\n`; - errMsg += `\`\`\`\n${this.state.errors.stack}\n`; - errMsg += `${JSON.stringify(this.state.errors.response.error, null, ' ')}\n\`\`\``; - console.log(errMsg); - } catch (e){} - - // if(this.state.errors.status == '401'){ - // return - // Oops! - //
- // You must be signed in to a Google account - // to save this to
Google Drive!
- // - //
- // Sign In - //
- //
- //
- // Not Now - //
- //
- //
; - // } - - if(this.state.errors.response.req.url.match(/^\/api.*Google.*$/m)){ - return - Oops! -
- Looks like your Google credentials have - expired! Visit our log in page to sign out - and sign back in with Google, - then try saving again! - -
- Sign In -
-
-
- Not Now -
-
-
; - } - - return - Oops! -
- Looks like there was a problem saving.
- Report the issue - here - . -
-
; - } - if(this.state.isSaving){ return save... @@ -254,7 +186,10 @@ const NewPage = createClass({
- {this.renderSaveButton()} + {this.state.error ? + : + this.renderSaveButton() + } {this.renderLocalPrintButton()} diff --git a/client/homebrew/pages/newPage/newPage.less b/client/homebrew/pages/newPage/newPage.less index 4f39e626d..f83827ffb 100644 --- a/client/homebrew/pages/newPage/newPage.less +++ b/client/homebrew/pages/newPage/newPage.less @@ -4,79 +4,5 @@ &:hover{ background-color: @green; } - &.error{ - position : relative; - background-color : @red; - } - } - .errorContainer{ - animation-name: glideDown; - animation-duration: 0.4s; - position : absolute; - top : 100%; - left : 50%; - z-index : 100000; - width : 140px; - padding : 3px; - color : white; - background-color : #333; - border : 3px solid #444; - border-radius : 5px; - transform : translate(-50% + 3px, 10px); - text-align : center; - font-size : 10px; - font-weight : 800; - text-transform : uppercase; - a{ - color : @teal; - } - &:before { - content: ""; - width: 0px; - height: 0px; - position: absolute; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-top: 10px solid transparent; - border-bottom: 10px solid #444; - left: 53px; - top: -23px; - } - &:after { - content: ""; - width: 0px; - height: 0px; - position: absolute; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-top: 10px solid transparent; - border-bottom: 10px solid #333; - left: 53px; - top: -19px; - } - .deny { - width : 48%; - margin : 1px; - padding : 5px; - background-color : #333; - display : inline-block; - border-left : 1px solid #666; - .animate(background-color); - &:hover{ - background-color : red; - } - } - .confirm { - width : 48%; - margin : 1px; - padding : 5px; - background-color : #333; - display : inline-block; - color : white; - .animate(background-color); - &:hover{ - background-color : teal; - } - } } } diff --git a/client/homebrew/pages/printPage/printPage.jsx b/client/homebrew/pages/printPage/printPage.jsx index cff8ebe32..c2e8c9b7b 100644 --- a/client/homebrew/pages/printPage/printPage.jsx +++ b/client/homebrew/pages/printPage/printPage.jsx @@ -60,7 +60,7 @@ const PrintPage = createClass({ renderStyle : function() { if(!this.state.brew.style) return; - return
${this.state.brew.style} ` }} />; + return
@layer styleTab {\n${this.state.brew.style}\n} ` }} />; }, renderPages : function(){ diff --git a/client/homebrew/pages/userPage/userPage.jsx b/client/homebrew/pages/userPage/userPage.jsx index 7341c61ad..1e051987b 100644 --- a/client/homebrew/pages/userPage/userPage.jsx +++ b/client/homebrew/pages/userPage/userPage.jsx @@ -12,6 +12,7 @@ const RecentNavItem = require('../../navbar/recent.navitem.jsx').both; const Account = require('../../navbar/account.navitem.jsx'); const NewBrew = require('../../navbar/newbrew.navitem.jsx'); const HelpNavItem = require('../../navbar/help.navitem.jsx'); +const ErrorNavItem = require('../../navbar/error-navitem.jsx'); const UserPage = createClass({ displayName : 'UserPage', @@ -19,7 +20,8 @@ const UserPage = createClass({ return { username : '', brews : [], - query : '' + query : '', + error : null }; }, getInitialState : function() { @@ -50,10 +52,19 @@ const UserPage = createClass({ brewCollection : brewCollection }; }, + errorReported : function(error) { + this.setState({ + error + }); + }, navItems : function() { return + {this.state.error ? + : + null + } @@ -63,7 +74,7 @@ const UserPage = createClass({ }, render : function(){ - return ; + return ; } }); diff --git a/client/homebrew/utils/request-middleware.js b/client/homebrew/utils/request-middleware.js new file mode 100644 index 000000000..f6bc2571b --- /dev/null +++ b/client/homebrew/utils/request-middleware.js @@ -0,0 +1,12 @@ +const request = require('superagent'); + +const addHeader = (request)=>request.set('Homebrewery-Version', global.version); + +const requestMiddleware = { + get : (path)=>addHeader(request.get(path)), + put : (path)=>addHeader(request.put(path)), + post : (path)=>addHeader(request.post(path)), + delete : (path)=>addHeader(request.delete(path)), +}; + +module.exports = requestMiddleware; \ No newline at end of file diff --git a/client/icons/customIcons.less b/client/icons/customIcons.less new file mode 100644 index 000000000..f41a2fc83 --- /dev/null +++ b/client/icons/customIcons.less @@ -0,0 +1,15 @@ +.fac { + display : inline-block; +} +.position-top-left { + content: url('../icons/position-top-left.svg'); +} +.position-top-right { + content: url('../icons/position-top-right.svg'); +} +.position-bottom-left { + content: url('../icons/position-bottom-left.svg'); +} +.position-bottom-right { + content: url('../icons/position-bottom-right.svg'); +} diff --git a/client/icons/position-bottom-left.svg b/client/icons/position-bottom-left.svg new file mode 100644 index 000000000..eb0709d8e --- /dev/null +++ b/client/icons/position-bottom-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/icons/position-bottom-right.svg b/client/icons/position-bottom-right.svg new file mode 100644 index 000000000..f9cb7250a --- /dev/null +++ b/client/icons/position-bottom-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/icons/position-top-left.svg b/client/icons/position-top-left.svg new file mode 100644 index 000000000..d8240d2a8 --- /dev/null +++ b/client/icons/position-top-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/icons/position-top-right.svg b/client/icons/position-top-right.svg new file mode 100644 index 000000000..4e998b4be --- /dev/null +++ b/client/icons/position-top-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b44a6fd57..a5bd399d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "homebrewery", - "version": "3.5.0", + "version": "3.6.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "homebrewery", - "version": "3.5.0", + "version": "3.6.0", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -29,26 +29,26 @@ "jwt-simple": "^0.5.6", "less": "^3.13.1", "lodash": "^4.17.21", - "marked": "4.2.5", + "marked": "4.2.12", "marked-extended-tables": "^1.0.5", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.29.4", - "mongoose": "^6.8.3", + "mongoose": "^6.9.0", "nanoid": "3.3.4", "nconf": "^0.12.0", "npm": "^8.10.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-frame-component": "4.1.3", - "react-router-dom": "6.6.1", + "react-router-dom": "6.8.0", "sanitize-filename": "1.6.3", "superagent": "^6.1.0", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" }, "devDependencies": { - "eslint": "^8.31.0", - "eslint-plugin-react": "^7.31.11", - "jest": "^29.2.2", + "eslint": "^8.33.0", + "eslint-plugin-react": "^7.32.2", + "jest": "^29.4.1", "supertest": "^6.3.3" }, "engines": { @@ -68,68 +68,68 @@ } }, "node_modules/@aws-crypto/ie11-detection": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", - "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", "optional": true, "dependencies": { "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", "optional": true, "dependencies": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-locate-window": "^3.0.0", "@aws-sdk/util-utf8-browser": "^3.0.0", "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", "optional": true, "dependencies": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/supports-web-crypto": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", - "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", "optional": true, "dependencies": { "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", - "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", "optional": true, "dependencies": { - "@aws-sdk/types": "^3.110.0", + "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-utf8-browser": "^3.0.0", "tslib": "^1.11.1" } }, "node_modules/@aws-sdk/abort-controller": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.224.0.tgz", - "integrity": "sha512-6DxaHnSDc2V5WiwtDaRwJJb2fkmDTyGr1svIM9H671aXIwe+q17mtpm5IooKL8bW5mLJoB1pT/5ntLkfxDQgSQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.257.0.tgz", + "integrity": "sha512-ekWy391lOerS0ZECdhp/c+X7AToJIpfNrCPjuj3bKr+GMQYckGsYsdbm6AUD4sxBmfvuaQmVniSXWovaxwcFcQ==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -143,45 +143,45 @@ "optional": true }, "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.224.0.tgz", - "integrity": "sha512-n+0qilnV5Wgu3W4p/PbfPslINZmz56+EMY0EtbF0sIZcKSfCUXmWPo35LpzS6lVAuaMqCQoNH3Rnl6J1RpF7LA==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.258.0.tgz", + "integrity": "sha512-xLKwJ2Q+KEyR4mRc1tNs6j2/O0SPzsD73Lbj4WRDP2Y+4JvZpn6JDihyc2OBs4JszObWOBmr2kotwHtG218WiA==", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.224.0", - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/credential-provider-node": "3.224.0", - "@aws-sdk/fetch-http-handler": "3.224.0", - "@aws-sdk/hash-node": "3.224.0", - "@aws-sdk/invalid-dependency": "3.224.0", - "@aws-sdk/middleware-content-length": "3.224.0", - "@aws-sdk/middleware-endpoint": "3.224.0", - "@aws-sdk/middleware-host-header": "3.224.0", - "@aws-sdk/middleware-logger": "3.224.0", - "@aws-sdk/middleware-recursion-detection": "3.224.0", - "@aws-sdk/middleware-retry": "3.224.0", - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/middleware-signing": "3.224.0", - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/middleware-user-agent": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/node-http-handler": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/smithy-client": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.258.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/credential-provider-node": "3.258.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.224.0", - "@aws-sdk/util-defaults-mode-node": "3.224.0", - "@aws-sdk/util-endpoints": "3.224.0", - "@aws-sdk/util-user-agent-browser": "3.224.0", - "@aws-sdk/util-user-agent-node": "3.224.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.257.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.257.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "engines": { @@ -195,42 +195,42 @@ "optional": true }, "node_modules/@aws-sdk/client-sso": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.224.0.tgz", - "integrity": "sha512-ZfqjGGBhv+sKxYN9FHbepaL+ucFbAFndvNdalGj4mZsv5AqxgemkFoRofNJk4nu79JVf5cdrj7zL+BDW3KwEGg==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.258.0.tgz", + "integrity": "sha512-7q5GxPUD3ME/bVUfIxDZjCpNhgM/H0Cdq3sTAbrKWsxbGZDSepeysN+oxabCj9hi2TP1SENJ4gVuArejtqqfHA==", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/fetch-http-handler": "3.224.0", - "@aws-sdk/hash-node": "3.224.0", - "@aws-sdk/invalid-dependency": "3.224.0", - "@aws-sdk/middleware-content-length": "3.224.0", - "@aws-sdk/middleware-endpoint": "3.224.0", - "@aws-sdk/middleware-host-header": "3.224.0", - "@aws-sdk/middleware-logger": "3.224.0", - "@aws-sdk/middleware-recursion-detection": "3.224.0", - "@aws-sdk/middleware-retry": "3.224.0", - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/middleware-user-agent": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/node-http-handler": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/smithy-client": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.224.0", - "@aws-sdk/util-defaults-mode-node": "3.224.0", - "@aws-sdk/util-endpoints": "3.224.0", - "@aws-sdk/util-user-agent-browser": "3.224.0", - "@aws-sdk/util-user-agent-node": "3.224.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.257.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.257.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "engines": { @@ -238,42 +238,42 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.224.0.tgz", - "integrity": "sha512-r7QAqinMvuZvGlfC4ltEBIq3gJ1AI4tTqEi8lG06+gDoiwnqTWii0+OrZJQiaeLc3PqDHwxmRpEmjFlr/f5TKg==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.258.0.tgz", + "integrity": "sha512-YHQcoDsf5nnFfDJiG4uHxIg+DI90y7NpLrpx7233SeGuMNfzK2BOxHMNCZhMAxJHKB3TVpD0aN4NshVvBpcSdQ==", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/fetch-http-handler": "3.224.0", - "@aws-sdk/hash-node": "3.224.0", - "@aws-sdk/invalid-dependency": "3.224.0", - "@aws-sdk/middleware-content-length": "3.224.0", - "@aws-sdk/middleware-endpoint": "3.224.0", - "@aws-sdk/middleware-host-header": "3.224.0", - "@aws-sdk/middleware-logger": "3.224.0", - "@aws-sdk/middleware-recursion-detection": "3.224.0", - "@aws-sdk/middleware-retry": "3.224.0", - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/middleware-user-agent": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/node-http-handler": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/smithy-client": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.224.0", - "@aws-sdk/util-defaults-mode-node": "3.224.0", - "@aws-sdk/util-endpoints": "3.224.0", - "@aws-sdk/util-user-agent-browser": "3.224.0", - "@aws-sdk/util-user-agent-node": "3.224.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.257.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.257.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "engines": { @@ -293,45 +293,45 @@ "optional": true }, "node_modules/@aws-sdk/client-sts": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.224.0.tgz", - "integrity": "sha512-ao3jyjwk2fozk1d4PtrNf0BNsucPWAbALv8CCsPTC3r9g2Lg/TOi3pxmsfd69ddw89XSyP6zZATEHaWO+tk0CQ==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.258.0.tgz", + "integrity": "sha512-L6dMn5hrHgUjoY6LebmeJ3JB/xPerkVfzjel6G0ilMYSmtdAsYDe4Ik8hvTxdg06WPT9SfnrZltilESU+T8SBw==", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/credential-provider-node": "3.224.0", - "@aws-sdk/fetch-http-handler": "3.224.0", - "@aws-sdk/hash-node": "3.224.0", - "@aws-sdk/invalid-dependency": "3.224.0", - "@aws-sdk/middleware-content-length": "3.224.0", - "@aws-sdk/middleware-endpoint": "3.224.0", - "@aws-sdk/middleware-host-header": "3.224.0", - "@aws-sdk/middleware-logger": "3.224.0", - "@aws-sdk/middleware-recursion-detection": "3.224.0", - "@aws-sdk/middleware-retry": "3.224.0", - "@aws-sdk/middleware-sdk-sts": "3.224.0", - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/middleware-signing": "3.224.0", - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/middleware-user-agent": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/node-http-handler": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/smithy-client": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/credential-provider-node": "3.258.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.257.0", + "@aws-sdk/middleware-sdk-sts": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.224.0", - "@aws-sdk/util-defaults-mode-node": "3.224.0", - "@aws-sdk/util-endpoints": "3.224.0", - "@aws-sdk/util-user-agent-browser": "3.224.0", - "@aws-sdk/util-user-agent-node": "3.224.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.257.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.257.0", + "@aws-sdk/util-utf8": "3.254.0", "fast-xml-parser": "4.0.11", "tslib": "^2.3.1" }, @@ -346,15 +346,15 @@ "optional": true }, "node_modules/@aws-sdk/config-resolver": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.224.0.tgz", - "integrity": "sha512-jS53QvF2jdv7d6cpPUH6N85i1WNHik1eGvxqSndsNbLf0keEGXYyN4pBLNB0xK1nk0ZG+8slRsXgWvWTCcFYKA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.257.0.tgz", + "integrity": "sha512-jChjr8ayaXoAcUgrRr+JRIJ6bPtEoS+/xW9khpHOmrEX+uBJ7xLPfdS4e6nmxAQpbem9AsUVvf57DXhSh5/nLg==", "optional": true, "dependencies": { - "@aws-sdk/signature-v4": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/util-middleware": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -368,14 +368,14 @@ "optional": true }, "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.224.0.tgz", - "integrity": "sha512-zXxsEhiBTvrsdb91JmMdNJN+kU1IbqIEMRZD0n7n+oqlkG7J+ZAns3DJNYscFBsUwM0rKSDidvTE/+AoPGe76w==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.258.0.tgz", + "integrity": "sha512-V5Z+vJ4eT4Sg0u0k1OPEPmhyixwFpS094KimC/nfcGXNQnxAkIQEKT+pD1DNenxWKBta4434l+BJUozpj64oCQ==", "optional": true, "dependencies": { - "@aws-sdk/client-cognito-identity": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/client-cognito-identity": "3.258.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -389,13 +389,13 @@ "optional": true }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.224.0.tgz", - "integrity": "sha512-WUicVivCne9Ela2Nuufohy8+UV/W6GwanlpK9trJqrqHt2/zqdNYHqZbWL0zDNO8dvFN3+MC2a8boYPyR+cFRg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.257.0.tgz", + "integrity": "sha512-GsmBi5Di6hk1JAi1iB6/LCY8o+GmlCvJoB7wuoVmXI3VxRVwptUVjuj8EtJbIrVGrF9dSuIRPCzUoSuzEzYGlg==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -409,15 +409,15 @@ "optional": true }, "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.224.0.tgz", - "integrity": "sha512-n7uVR5Z9EUfVbg0gSNrJvu1g0cM/HqhRt+kaRJBGNf4q1tEbnCukKj+qUZbT1qdbDTyu9NTRphMvuIyN3RBDtQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.257.0.tgz", + "integrity": "sha512-UrxYkHWndy6s/bZZWH2poIyqdISTbILGTcK9tT8cFaUUrNIEFXiVESZMNNaagy0Dyy9wr80ndumxRkutYga9VA==", "optional": true, "dependencies": { - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -431,18 +431,19 @@ "optional": true }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.224.0.tgz", - "integrity": "sha512-YaAHoHJVspqy5f8C6EXBifMfodKXl88IHuL6eBComigTPR3s1Ed1+3AJdjA1X7SjAHfrYna/WvZEH3e8NCSzFA==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.258.0.tgz", + "integrity": "sha512-vwy3wcIzdiBUd+kX6wKqY59JHRyOKgkPgwvd2nZt4QSQUXAldGROx48fgp/SZUEVveBpHg6Zm3IrdUWaQtAemg==", "optional": true, "dependencies": { - "@aws-sdk/credential-provider-env": "3.224.0", - "@aws-sdk/credential-provider-imds": "3.224.0", - "@aws-sdk/credential-provider-sso": "3.224.0", - "@aws-sdk/credential-provider-web-identity": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.257.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.258.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -456,20 +457,20 @@ "optional": true }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.224.0.tgz", - "integrity": "sha512-n/gijJAA3uVFl1b3+hp2E3lPaiajsPLHqH+mMxNxPkGo39HV1v9RAyOVW4Y3AH1QcT7sURevjGoF2Eemcro88g==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.258.0.tgz", + "integrity": "sha512-2OTFqKkfpkLZ7nkxztOIsEembl3wYhl4aAutRN5bCu8tunREWzr7v7t6X96+8CuYqcCjNYHs/9ChgFh19uokEg==", "optional": true, "dependencies": { - "@aws-sdk/credential-provider-env": "3.224.0", - "@aws-sdk/credential-provider-imds": "3.224.0", - "@aws-sdk/credential-provider-ini": "3.224.0", - "@aws-sdk/credential-provider-process": "3.224.0", - "@aws-sdk/credential-provider-sso": "3.224.0", - "@aws-sdk/credential-provider-web-identity": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.257.0", + "@aws-sdk/credential-provider-ini": "3.258.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.258.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -483,14 +484,14 @@ "optional": true }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.224.0.tgz", - "integrity": "sha512-0nc8vGmv6vDfFlVyKREwAa4namfuGqKg3TTM0nW2vE10fpDXZM/DGVAs5HInX+27QQNLVVh3/OHHgti9wMkYkw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.257.0.tgz", + "integrity": "sha512-xK8uYeNXaclaBCGrLi4z2pxPRngqLf5BM5jg2fn57zqvlL9V5gJF972FehrVBL0bfp1/laG0ZJtD2K2sapyWAw==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -504,16 +505,16 @@ "optional": true }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.224.0.tgz", - "integrity": "sha512-Qx5w8MCGAwT5cqimA3ZgtY1jSrC7QGPzZfNflY75PWQIaYgjUNNqdAW0jipr4M/dgVjvo1j/Ek+atNf/niTOsQ==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.258.0.tgz", + "integrity": "sha512-2QbrpBgqabcmZkvbDLZKf8Lq99K64UsJwNkSJ+6v6+ZQQgeGIlqYaAVfrsbreCazzGcxOy0xr8DiwGrI9ZE1zQ==", "optional": true, "dependencies": { - "@aws-sdk/client-sso": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/token-providers": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/client-sso": "3.258.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/token-providers": "3.258.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -527,13 +528,13 @@ "optional": true }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.224.0.tgz", - "integrity": "sha512-Z/xRFTm9pBVyuIAkYohisb3KPJowPVng7ZuZiblU0PaESoJBTkhAFOblpPv/ZWwb6fT85ANUKrvl4858zLpk/Q==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.257.0.tgz", + "integrity": "sha512-Cm0uvRv4JuIbD0Kp3W0J/vwjADIyCx8HoZi5yg+QIi5nilocuTQ3ajvLeuPVSvFvdy+yaxSc5FxNXquWt7Mngw==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -547,25 +548,25 @@ "optional": true }, "node_modules/@aws-sdk/credential-providers": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.224.0.tgz", - "integrity": "sha512-DhkHGLG7x5PwkgR4T95x8IaYL4tJ33/houLjIbKwrJBeZPsUjQ02yT/GSJ8LPSeJ28LUBFppGMuYuhQdt4u7WA==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.258.0.tgz", + "integrity": "sha512-/wjbuaJCClp3Ywl50oR4AV7nbSeLTzOYLvPjFJoAXvBf7OsE1544HkJJi7Y31N/gbZKAY+ReDp0vfz3QhGdJIw==", "optional": true, "dependencies": { - "@aws-sdk/client-cognito-identity": "3.224.0", - "@aws-sdk/client-sso": "3.224.0", - "@aws-sdk/client-sts": "3.224.0", - "@aws-sdk/credential-provider-cognito-identity": "3.224.0", - "@aws-sdk/credential-provider-env": "3.224.0", - "@aws-sdk/credential-provider-imds": "3.224.0", - "@aws-sdk/credential-provider-ini": "3.224.0", - "@aws-sdk/credential-provider-node": "3.224.0", - "@aws-sdk/credential-provider-process": "3.224.0", - "@aws-sdk/credential-provider-sso": "3.224.0", - "@aws-sdk/credential-provider-web-identity": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/client-cognito-identity": "3.258.0", + "@aws-sdk/client-sso": "3.258.0", + "@aws-sdk/client-sts": "3.258.0", + "@aws-sdk/credential-provider-cognito-identity": "3.258.0", + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.257.0", + "@aws-sdk/credential-provider-ini": "3.258.0", + "@aws-sdk/credential-provider-node": "3.258.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.258.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -579,14 +580,14 @@ "optional": true }, "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.224.0.tgz", - "integrity": "sha512-IO1Je6ZM0fwT5YYPwQwwXcD4LlsYmP52pwit8AAI4ppz6AkSfs0747uDK0DYnqls7sevBQzUSqBSt6XjcMKjYQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.257.0.tgz", + "integrity": "sha512-zOF+RzQ+wfF7tq7tGUdPcqUTh3+k2f8KCVJE07A8kCopVq4nBu4NH6Eq29Tjpwdya3YlKvE+kFssuQRRRRex+Q==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/querystring-builder": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/querystring-builder": "3.257.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "tslib": "^2.3.1" } @@ -598,13 +599,14 @@ "optional": true }, "node_modules/@aws-sdk/hash-node": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.224.0.tgz", - "integrity": "sha512-y7TXMDOSy5E2VZPvmsvRfyXkcQWcjTLFTd85yc70AAeFZiffff1nvZifQSzD78bW6ELJsWHXA2O8yxdBURyoBg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.257.0.tgz", + "integrity": "sha512-W/USUuea5Ep3OJ2U7Ve8/5KN1YsDun2WzOFUxc1PyxXP5pW6OgC15/op0e+bmWPG851clvp5S8ZuroUr3aKi3Q==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-buffer-from": "3.208.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "engines": { @@ -618,12 +620,12 @@ "optional": true }, "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.224.0.tgz", - "integrity": "sha512-6huV8LBYQYx84uMhQ2SS7nqEkhTkAufwhKceXnysrcrLDuUmyth09Y7fcFblFIDTr4wTgSI0mf6DKVF4nqYCwQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.257.0.tgz", + "integrity": "sha512-T68SAPRNMEhpke0wlxURgogL7q0B8dfqZsSeS20BVR/lksJxLse9+pbmCDxiu1RrXoEIsEwl5rbLN+Hw8BFFYw==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" } }, @@ -652,13 +654,13 @@ "optional": true }, "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.224.0.tgz", - "integrity": "sha512-L9b84b7X/BH+sFZaXg5hQQv0TRqZIGuOIiWJ8CkYeju7OQV03DzbCoNCAgZdI28SSevfrrVK/hwjEQrv+A6x1Q==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.257.0.tgz", + "integrity": "sha512-yiawbV2azm6QnMY1L2ypG8PDRdjOcEIvFmT0T7y0F49rfbKJOu21j1ONAoCkLrINK6kMqcD5JSQLVCoURxiTxQ==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -672,18 +674,18 @@ "optional": true }, "node_modules/@aws-sdk/middleware-endpoint": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.224.0.tgz", - "integrity": "sha512-Y+FkQmRyhQUX1E1tviodFwTrfAVjgteoALkFgIb7bxT7fmyQ/AQvdAytkDqIApTgkR61niNDSsAu7lHekDxQgg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.257.0.tgz", + "integrity": "sha512-RQNQe/jeVuWZtXXfcOm+e3qMFICY6ERsXUrbt0rjHgvajZCklcrRJgxJSCwrcS7Le3nl9azFPMAMj9L7uSK28g==", "optional": true, "dependencies": { - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/signature-v4": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/util-middleware": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -697,13 +699,13 @@ "optional": true }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.224.0.tgz", - "integrity": "sha512-4eL8EVhgxTjvdVs+P3SSEkoMXBte7hSQ/+kOZVNR5ze8QPnUiDpJMS2BQrMoA2INxX9tSqp6zTrDNMc3LNvKbQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.257.0.tgz", + "integrity": "sha512-gEi9AJdJfRfU8Qr6HK1hfhxTzyV3Giq4B/h7um99hIFAT/GCg9xiPvAOKPo6UeuiKEv3b7RpSL4s6cBvnJMJBA==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -717,12 +719,12 @@ "optional": true }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.224.0.tgz", - "integrity": "sha512-AmvuezI1vGgKZDsA2slHZJ6nQMqogUyzK27wM03458a2JgFqZvWCUPSY/P+OZ0FpnFEC34/kvvF4bI54T0C5jA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.257.0.tgz", + "integrity": "sha512-8RDXW/VbMKBsXDfcCLmROZcWKyrekyiPa3J1aIaBy0tq9o4xpGoXw/lwwIrNVvISAFslb57rteup34bfn6ta6w==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -736,13 +738,13 @@ "optional": true }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.224.0.tgz", - "integrity": "sha512-ySTGlMvNaH5J77jYVVgwOF1ozz3Kp6f/wjTvivOcBR1zlRv0FXa1y033QMnrAAtKSNkzClXtNOycBM463QImJw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.257.0.tgz", + "integrity": "sha512-rUCih6zHh8k9Edf5N5Er4s508FYbwLM0MWTD2axzlj9TjLqEQ9OKED3wHaLffXSDzodd3oTAfJCLPbWQyoZ3ZQ==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -756,15 +758,16 @@ "optional": true }, "node_modules/@aws-sdk/middleware-retry": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.224.0.tgz", - "integrity": "sha512-zwl8rZZb5OWLzOnEW58RRklbehDfcdtD98qtgm0NLM9ErBALEEb2Y4MM5zhRiMtVjzrDw71+Mhk5+4TAlwJyXA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.257.0.tgz", + "integrity": "sha512-vDOy4PbSRW2gtgoJZ+yvgyxdlTwbZGpuv/rA2+XYxURmhPMzpmqs4o1DR37LG8O41WouI1rPzA7E+Ffo+iNWjw==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/service-error-classification": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/service-error-classification": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-middleware": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", "tslib": "^2.3.1", "uuid": "^8.3.2" }, @@ -788,16 +791,16 @@ } }, "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.224.0.tgz", - "integrity": "sha512-rUoPPejj4N8S+P39ap9Iqbprl9L7LBlkuMHwMCqgeRJBhdI+1YeDfUekegJxceJv/BDXaoI2aSE0tCUS8rK0Ug==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.257.0.tgz", + "integrity": "sha512-d6IJCLRi3O2tm4AFK60WNhIwmMmspj1WzKR1q1TaoPzoREPG2xg+Am18wZBRkCyYuRPPrbizmkvAmAJiUolMAw==", "optional": true, "dependencies": { - "@aws-sdk/middleware-signing": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/signature-v4": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -811,12 +814,12 @@ "optional": true }, "node_modules/@aws-sdk/middleware-serde": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.224.0.tgz", - "integrity": "sha512-4wHJ4DyhvyqQ853zfIw6sRw909VB+hFEqatmXYvO5OYap03Eed92wslsR2Gtfw1B2/zjDscPpwPyHoCIk30sHA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.257.0.tgz", + "integrity": "sha512-/JasfXPWFq24mnCrx9fxW/ISBSp07RJwhsF14qzm8Qy3Z0z470C+QRM6otTwAkYuuVt1wuLjja5agq3Jtzq7dQ==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -830,16 +833,16 @@ "optional": true }, "node_modules/@aws-sdk/middleware-signing": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.224.0.tgz", - "integrity": "sha512-6T+dybVn5EYsxkNc4eVKAeoj6x6FfRXkZWMRxkepDoOJufMUNTfpoDEl6PcgJU6Wq4odbqV737x/3j53VZc6dA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.257.0.tgz", + "integrity": "sha512-hCH3D83LHmm6nqmtNrGTWZCVjsQXrGHIXbd17/qrw7aPFvcAhsiiCncGFP+XsUXEKa2ZqcSNMUyPrx69ofNRZQ==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/signature-v4": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-middleware": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -853,9 +856,9 @@ "optional": true }, "node_modules/@aws-sdk/middleware-stack": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.224.0.tgz", - "integrity": "sha512-8mBrc3nj4h6FnDWnxbjfFXUPr/7UIAaGAG15D27Z/KNFnMjOqNTtpkbcoh3QQHRLX3PjTuvzT5WCqXmgD2/oiw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.257.0.tgz", + "integrity": "sha512-awg2F0SvwACBaw4HIObK8pQGfSqAc4Vy+YFzWSfZNVC35oRO6RsRdKHVU99lRC0LrT2Ptmfghl2DMPSrRDbvlQ==", "optional": true, "dependencies": { "tslib": "^2.3.1" @@ -871,13 +874,13 @@ "optional": true }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.224.0.tgz", - "integrity": "sha512-YXHC/n8k4qeIkqFVACPmF/QfJyKSOMD1HjM7iUZmJ9yGqDRFeGgn4o2Jktd0dor7sTv6pfUDkLqspxURAsokzA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.257.0.tgz", + "integrity": "sha512-37rt75LZyD0UWpbcFuxEGqwF3DZKSixQPl7AsDe6q3KtrO5gGQB+diH5vbY0txNNYyv5IK9WMwvY73mVmoWRmw==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -891,14 +894,14 @@ "optional": true }, "node_modules/@aws-sdk/node-config-provider": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.224.0.tgz", - "integrity": "sha512-ULv0Ao95vNEiwCreN9ZbZ5vntaGjdMLolCiyt3B2FDWbuOorZJR5QXFydPBpo4AQOh1y/S2MIUWLhz00DY364g==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.257.0.tgz", + "integrity": "sha512-IfGF7+cU0PyB7RpHlgc445ZAUZDWn4ij2HTB6N+xULwFw2TxnyQ2tvo3Gp5caW9VlJ3eXE9wFrynv+JXUIH7Bg==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -912,15 +915,15 @@ "optional": true }, "node_modules/@aws-sdk/node-http-handler": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.224.0.tgz", - "integrity": "sha512-8h4jWsfVRUcJKkqZ9msSN4LhldBpXdNlMcA8ku8IVEBHf5waxqpIhupwR0uCMmV3FDINLqkf/8EwEYAODeRjrw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.257.0.tgz", + "integrity": "sha512-8KnWHVVwaGKyTlkTU9BSOAiSovNDoagxemU2l10QqBbzUCVpljCUMUkABEGRJ1yoQCl6DJ7RtNkAyZ8Ne/E15A==", "optional": true, "dependencies": { - "@aws-sdk/abort-controller": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/querystring-builder": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/abort-controller": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/querystring-builder": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -934,12 +937,12 @@ "optional": true }, "node_modules/@aws-sdk/property-provider": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.224.0.tgz", - "integrity": "sha512-1F1Hepndlmj6wykNv0ynlS9YTaT3LRF/mqXhCRGLbCWSmCiaW9BUH/ddMdBZJiSw7kcPePKid5ueW84fAO/nKg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.257.0.tgz", + "integrity": "sha512-3rUbRAcF0GZ5PhDiXhS4yREfZ5hOEtvYEa9S/19OdM5eoypOaLU5XnFcCKfnccSP8SkdgpJujzxOMRWNWadlAQ==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -953,12 +956,12 @@ "optional": true }, "node_modules/@aws-sdk/protocol-http": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.224.0.tgz", - "integrity": "sha512-myp31UkADbktZtIZLc4cNfr5zSNVJjPReoH37NPpvgREKOGg7ZB6Lb3UyKbjzrmIv985brMOunlMgIBIJhuPIg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.257.0.tgz", + "integrity": "sha512-xt7LGOgZIvbLS3418AYQLacOqx+mo5j4mPiIMz7f6AaUg+/fBUgESVsncKDqxbEJVwwCXSka8Ca0cntJmoeMSw==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -972,12 +975,12 @@ "optional": true }, "node_modules/@aws-sdk/querystring-builder": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.224.0.tgz", - "integrity": "sha512-Fwzt42wWRhf04TetQPqDL03jX5W2cAkRFQewOkIRYVFV17b72z4BFhKID6bpLEtNb4YagyllCWosNg1xooDURQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.257.0.tgz", + "integrity": "sha512-mZHWLP7XIkzx1GIXO5WfX/iJ+aY9TWs02RE9FkdL2+by0HEMR65L3brQTbU1mIBJ7BjaPwYH24dljUOSABX7yg==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" }, @@ -992,12 +995,12 @@ "optional": true }, "node_modules/@aws-sdk/querystring-parser": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.224.0.tgz", - "integrity": "sha512-UIJZ76ClFtALXRIQS3Za4R76JTsjCYReSBEQ7ag7RF1jwVZLAggdfED9w3XDrN7jbaK6i+aI3Y+eFeq0sB2fcA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.257.0.tgz", + "integrity": "sha512-UDrE1dEwWrWT8dG2VCrGYrPxCWOkZ1fPTPkjpkR4KZEdQDZBqU5gYZF2xPj8Nz7pjQVHFuW2wFm3XYEk56GEjg==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -1011,21 +1014,21 @@ "optional": true }, "node_modules/@aws-sdk/service-error-classification": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.224.0.tgz", - "integrity": "sha512-0bnbYtCe+vqtaGItL+1UzQPt+yZLbU8G/aIXPQUL7555jdnjnbAtczCbIcLAJUqlE/OLwRhQVGLKbau8QAdxgQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.257.0.tgz", + "integrity": "sha512-FAyR0XsueGkkqDtkP03cTJQk52NdQ9sZelLynmmlGPUP75LApRPvFe1riKrou6+LsDbwVNVffj6mbDfIcOhaOw==", "optional": true, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.224.0.tgz", - "integrity": "sha512-6a/XP3lRRcX5ic+bXzF2f644KERVqMx+s0JRrGsPAwTMaMiV0A7Ifl4HKggx6dnxh8j/MXUMsWMtuxt/kCu86A==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.257.0.tgz", + "integrity": "sha512-HNjC1+Wx3xHiJc+CP14GhIdVhfQGSjroAsWseRxAhONocA9Fl1ZX4hx7+sA5c9nOoMVOovi6ivJ/6lCRPTDRrQ==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -1039,16 +1042,17 @@ "optional": true }, "node_modules/@aws-sdk/signature-v4": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.224.0.tgz", - "integrity": "sha512-+oq1iylYQOvdXXO7r18SEhXIZpLd3GvJhmoReX+yjvVq8mGevDAmQiw6lwFZ6748sOmH4CREWD5H9Snrj+zLMg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.257.0.tgz", + "integrity": "sha512-aLQQN59X/D0+ShzPD3Anj5ntdMA/RFeNLOUCDyDvremViGi6yxUS98usQ/8bG5Rq0sW2GGMdbFUFmrDvqdiqEQ==", "optional": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-hex-encoding": "3.201.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/util-middleware": "3.257.0", "@aws-sdk/util-uri-escape": "3.201.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "engines": { @@ -1062,13 +1066,13 @@ "optional": true }, "node_modules/@aws-sdk/smithy-client": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.224.0.tgz", - "integrity": "sha512-KXXzzrCBv8ewWdtm/aolZHr2f9NRZOcDutFaWXbfSptEsK50Zi9PNzB9ZVKUHyAXYjwJHb2Sl18WRrwIxH6H4g==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.257.0.tgz", + "integrity": "sha512-Vy/en+llpslHG6WZ2yuN+On6u7p2hROEURwAST/lpReAwBETjbsxylkWvP8maeGKQ54u9uC6lIZAOJut2I3INw==", "optional": true, "dependencies": { - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -1082,15 +1086,15 @@ "optional": true }, "node_modules/@aws-sdk/token-providers": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.224.0.tgz", - "integrity": "sha512-cswWqA4n1v3JIALYRA8Tq/4uHcFpBg5cgi2khNHBCF/H09Hu3dynGup6Ji8cCzf3fTak4eBQipcWaWUGE0hTGw==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.258.0.tgz", + "integrity": "sha512-5Lme7XHlBC/iPHQOr5V+LdxHnwg2a7mhRYVy42a8OOKHN2ronDo/Wnujw2s4BOaEnlqS8OSV84bZ0bWxVYuvKw==", "optional": true, "dependencies": { - "@aws-sdk/client-sso-oidc": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/client-sso-oidc": "3.258.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -1104,22 +1108,31 @@ "optional": true }, "node_modules/@aws-sdk/types": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.224.0.tgz", - "integrity": "sha512-7te9gRondKPjEebyiPYn59Kr5LZOL48HXC05TzFIN/JXwWPJbQpROBPeKd53V1aRdr3vSQhDY01a+vDOBBrEUQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.257.0.tgz", + "integrity": "sha512-LmqXuBQBGeaGi/3Rp7XiEX1B5IPO2UUfBVvu0wwGqVsmstT0SbOVDZGPmxygACbm64n+PRx3uTSDefRfoiWYZg==", "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/types/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "optional": true + }, "node_modules/@aws-sdk/url-parser": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.224.0.tgz", - "integrity": "sha512-DGQoiOxRVq9eEbmcGF7oz/htcHxFtLlUTzKbaX1gFuh1kmhRQwJIzz6vkrMdxOgPjvUYMJuMEcYnsHolDNWbMg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.257.0.tgz", + "integrity": "sha512-Qe/AcFe/NFZHa6cN2afXEQn9ehXxh57dWGdRjfjd2lQqNV4WW1R2pl2Tm1ZJ1dwuCNLJi4NHLMk8lrD3QQ8rdg==", "optional": true, "dependencies": { - "@aws-sdk/querystring-parser": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/querystring-parser": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" } }, @@ -1219,13 +1232,13 @@ "optional": true }, "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.224.0.tgz", - "integrity": "sha512-umk+A/pmlbuyvDCgdndgJUa0xitcTUF7XoUt/3qDTpNbzR5Dzgdbz74BgXUAEBJ8kPP5pCo2VE1ZD7fxqYU/dQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.257.0.tgz", + "integrity": "sha512-nkfK+MNacVd3Px/fcAvU0hDeh+r7d+RLLt3sJ5Zc0gGd+i3OQEP58V8QzR9PYMvUvSvGQP16fQVQHSbRZtuWyQ==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "bowser": "^2.11.0", "tslib": "^2.3.1" }, @@ -1240,16 +1253,16 @@ "optional": true }, "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.224.0.tgz", - "integrity": "sha512-ZJQJ1McbQ5Rnf5foCFAKHT8Cbwg4IbM+bb6fCkHRJFH9AXEvwc+hPtSYf0KuI7TmoZFj9WG5JOE9Ns6g7lRHSA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.257.0.tgz", + "integrity": "sha512-qsIb7aPbGFcKbBGoAQmlzv1gMcscgbpfrRh4rgNqkJXVbJ52Ql6+vXXfBmlWaBho0fcsNh5XnYu1fzdCuu+N7g==", "optional": true, "dependencies": { - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/credential-provider-imds": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -1263,12 +1276,12 @@ "optional": true }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.224.0.tgz", - "integrity": "sha512-k5hHbk7AP/cajw5rF7wmKP39B0WQMFdxrn8dcVOHVK0FZeKbaGCEmOf3AYXrQhswR9Xo815Rqffoml9B1z3bCA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.257.0.tgz", + "integrity": "sha512-3bvmRn5XGYzPPWjLuvHBKdJOb+fijnb8Ungu9bfXnTYFsng/ndHUWeHC22O/p8w3OWoRYUIMaZHxdxe27BFozg==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -1318,9 +1331,9 @@ "optional": true }, "node_modules/@aws-sdk/util-middleware": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.224.0.tgz", - "integrity": "sha512-yA20k9sJdFgs7buVilWExUSJ/Ecr5UJRNQlmgzIpBo9kh5x/N8WyB4kN5MQw5UAA1UZ+j3jmA9+YLFT/mbX3IQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.257.0.tgz", + "integrity": "sha512-F9ieon8B8eGVs5tyZtAIG3DZEObDvujkspho0qRbUTHUosM0ylJLsMU800fmC/uRHLRrZvb/RSp59+kNDwSAMw==", "optional": true, "dependencies": { "tslib": "^2.3.1" @@ -1335,6 +1348,25 @@ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "optional": true }, + "node_modules/@aws-sdk/util-retry": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.257.0.tgz", + "integrity": "sha512-l9TOsOAYtZxwW3q5fQKW4rsD9t2HVaBfQ4zBamHkNTfB4vBVvCnz4oxkvSvA2MlxCA6am+K1K/oj917Tpqk53g==", + "optional": true, + "dependencies": { + "@aws-sdk/service-error-classification": "3.257.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/util-retry/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "optional": true + }, "node_modules/@aws-sdk/util-uri-escape": { "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", @@ -1354,12 +1386,12 @@ "optional": true }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.224.0.tgz", - "integrity": "sha512-Dm/30cLUIM1Oam4V//m9sPrXyGOKFslUXP7Mz2AlR1HelUYoreWAIe7Rx44HR6PaXyZmjW5K0ItmcJ7tCgyMpw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.257.0.tgz", + "integrity": "sha512-YdavWK6/8Cw6mypEgysGGX/dT9p9qnzFbnN5PQsUY+JJk2Nx8fKFydjGiQ+6rWPeW17RAv9mmbboh9uPVWxVlw==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } @@ -1371,13 +1403,13 @@ "optional": true }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.224.0.tgz", - "integrity": "sha512-BTj0vPorfT7AJzv6RxJHrnAKdIHwZmGjp5TFFaCYgFkHAPsyCPceSdZUjBRW+HbiwEwKfoHOXLGjnOBSqddZKg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.257.0.tgz", + "integrity": "sha512-fOHh80kiVomUkABmOv3ZxB/SNLnOPAja7uhQmGWfKHXBkcxTVfWO2KBs5vzU5qhVZA0c1zVEvZPcBdRsonnhlw==", "optional": true, "dependencies": { - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "engines": { @@ -1398,6 +1430,19 @@ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "optional": true }, + "node_modules/@aws-sdk/util-utf8": { + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz", + "integrity": "sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==", + "optional": true, + "dependencies": { + "@aws-sdk/util-buffer-from": "3.208.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@aws-sdk/util-utf8-browser": { "version": "3.188.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz", @@ -1413,20 +1458,7 @@ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "optional": true }, - "node_modules/@aws-sdk/util-utf8-node": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", - "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", - "optional": true, - "dependencies": { - "@aws-sdk/util-buffer-from": "3.208.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-utf8-node/node_modules/tslib": { + "node_modules/@aws-sdk/util-utf8/node_modules/tslib": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", @@ -3277,16 +3309,16 @@ } }, "node_modules/@jest/console": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", - "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.4.1.tgz", + "integrity": "sha512-m+XpwKSi3PPM9znm5NGS8bBReeAJJpSkL1OuFCqaMaJL2YX9YXLkkI+MBchMPwu+ZuM2rynL51sgfkQteQ1CKQ==", "dev": true, "dependencies": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", + "jest-message-util": "^29.4.1", + "jest-util": "^29.4.1", "slash": "^3.0.0" }, "engines": { @@ -3364,37 +3396,37 @@ } }, "node_modules/@jest/core": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", - "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.4.1.tgz", + "integrity": "sha512-RXFTohpBqpaTebNdg5l3I5yadnKo9zLBajMT0I38D0tDhreVBYv3fA8kywthI00sWxPztWLD3yjiUkewwu/wKA==", "dev": true, "dependencies": { - "@jest/console": "^29.3.1", - "@jest/reporters": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/console": "^29.4.1", + "@jest/reporters": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.2.0", - "jest-config": "^29.3.1", - "jest-haste-map": "^29.3.1", - "jest-message-util": "^29.3.1", + "jest-changed-files": "^29.4.0", + "jest-config": "^29.4.1", + "jest-haste-map": "^29.4.1", + "jest-message-util": "^29.4.1", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-resolve-dependencies": "^29.3.1", - "jest-runner": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "jest-watcher": "^29.3.1", + "jest-resolve": "^29.4.1", + "jest-resolve-dependencies": "^29.4.1", + "jest-runner": "^29.4.1", + "jest-runtime": "^29.4.1", + "jest-snapshot": "^29.4.1", + "jest-util": "^29.4.1", + "jest-validate": "^29.4.1", + "jest-watcher": "^29.4.1", "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -3481,37 +3513,37 @@ } }, "node_modules/@jest/environment": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", - "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.4.1.tgz", + "integrity": "sha512-pJ14dHGSQke7Q3mkL/UZR9ZtTOxqskZaC91NzamEH4dlKRt42W+maRBXiw/LWkdJe+P0f/zDR37+SPMplMRlPg==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/fake-timers": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", - "jest-mock": "^29.3.1" + "jest-mock": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.4.1.tgz", + "integrity": "sha512-ZxKJP5DTUNF2XkpJeZIzvnzF1KkfrhEF6Rz0HGG69fHl6Bgx5/GoU3XyaeFYEjuuKSOOsbqD/k72wFvFxc3iTw==", "dev": true, "dependencies": { - "expect": "^29.3.1", - "jest-snapshot": "^29.3.1" + "expect": "^29.4.1", + "jest-snapshot": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", - "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.4.1.tgz", + "integrity": "sha512-w6YJMn5DlzmxjO00i9wu2YSozUYRBhIoJ6nQwpMYcBMtiqMGJm1QBzOf6DDgRao8dbtpDoaqLg6iiQTvv0UHhQ==", "dev": true, "dependencies": { "jest-get-type": "^29.2.0" @@ -3521,48 +3553,48 @@ } }, "node_modules/@jest/fake-timers": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", - "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.4.1.tgz", + "integrity": "sha512-/1joI6rfHFmmm39JxNfmNAO3Nwm6Y0VoL5fJDy7H1AtWrD1CgRtqJbN9Ld6rhAkGO76qqp4cwhhxJ9o9kYjQMw==", "dev": true, "dependencies": { - "@jest/types": "^29.3.1", - "@sinonjs/fake-timers": "^9.1.2", + "@jest/types": "^29.4.1", + "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" + "jest-message-util": "^29.4.1", + "jest-mock": "^29.4.1", + "jest-util": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", - "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.4.1.tgz", + "integrity": "sha512-znoK2EuFytbHH0ZSf2mQK2K1xtIgmaw4Da21R2C/NE/+NnItm5mPEFQmn8gmF3f0rfOlmZ3Y3bIf7bFj7DHxAA==", "dev": true, "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/types": "^29.3.1", - "jest-mock": "^29.3.1" + "@jest/environment": "^29.4.1", + "@jest/expect": "^29.4.1", + "@jest/types": "^29.4.1", + "jest-mock": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", - "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.4.1.tgz", + "integrity": "sha512-AISY5xpt2Xpxj9R6y0RF1+O6GRy9JsGa8+vK23Lmzdy1AYcpQn5ItX79wJSsTmfzPKSAcsY1LNt/8Y5Xe5LOSg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/console": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@jridgewell/trace-mapping": "^0.3.15", "@types/node": "*", "chalk": "^4.0.0", @@ -3575,9 +3607,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", + "jest-message-util": "^29.4.1", + "jest-util": "^29.4.1", + "jest-worker": "^29.4.1", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -3666,12 +3698,12 @@ } }, "node_modules/@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.0.tgz", + "integrity": "sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ==", "dev": true, "dependencies": { - "@sinclair/typebox": "^0.24.1" + "@sinclair/typebox": "^0.25.16" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3692,13 +3724,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", - "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.4.1.tgz", + "integrity": "sha512-WRt29Lwt+hEgfN8QDrXqXGgCTidq1rLyFqmZ4lmJOpVArC8daXrZWkWjiaijQvgd3aOUj2fM8INclKHsQW9YyQ==", "dev": true, "dependencies": { - "@jest/console": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/console": "^29.4.1", + "@jest/types": "^29.4.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -3707,14 +3739,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", - "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.4.1.tgz", + "integrity": "sha512-v5qLBNSsM0eHzWLXsQ5fiB65xi49A3ILPSFQKPXzGL4Vyux0DPZAIN7NAFJa9b4BiTDP9MBF/Zqc/QA1vuiJ0w==", "dev": true, "dependencies": { - "@jest/test-result": "^29.3.1", + "@jest/test-result": "^29.4.1", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", + "jest-haste-map": "^29.4.1", "slash": "^3.0.0" }, "engines": { @@ -3722,26 +3754,26 @@ } }, "node_modules/@jest/transform": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", - "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.4.1.tgz", + "integrity": "sha512-5w6YJrVAtiAgr0phzKjYd83UPbCXsBRTeYI4BXokv9Er9CcrH9hfXL/crCvP2d2nGOcovPUnlYiLPFLZrkG5Hg==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", + "jest-haste-map": "^29.4.1", "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", + "jest-util": "^29.4.1", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" + "write-file-atomic": "^5.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3824,12 +3856,12 @@ } }, "node_modules/@jest/types": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", - "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.1.tgz", + "integrity": "sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA==", "dev": true, "dependencies": { - "@jest/schemas": "^29.0.0", + "@jest/schemas": "^29.4.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -3988,45 +4020,45 @@ } }, "node_modules/@remix-run/router": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.2.1.tgz", - "integrity": "sha512-XiY0IsyHR+DXYS5vBxpoBe/8veTeoRpMHP+vDosLZxL5bnpetzI0igkxkLZS235ldLzyfkxF+2divEwWHP3vMQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.3.1.tgz", + "integrity": "sha512-+eun1Wtf72RNRSqgU7qM2AMX/oHp+dnx7BHk1qhK5ZHzdHTUU4LA1mGG1vT+jMc8sbhG3orvsfOmryjzx2PzQw==", "engines": { "node": ">=14" } }, "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "version": "0.25.21", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", + "integrity": "sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==", "dev": true }, "node_modules/@sinonjs/commons": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", - "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^2.0.0" } }, "node_modules/@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" @@ -4052,18 +4084,18 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", - "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, "dependencies": { "@babel/types": "^7.3.0" } }, "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dev": true, "dependencies": { "@types/node": "*" @@ -4099,9 +4131,9 @@ "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" }, "node_modules/@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "dev": true }, "node_modules/@types/stack-utils": { @@ -4125,9 +4157,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", - "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "version": "17.0.20", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.20.tgz", + "integrity": "sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -4466,15 +4498,15 @@ } }, "node_modules/babel-jest": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", - "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.4.1.tgz", + "integrity": "sha512-xBZa/pLSsF/1sNpkgsiT3CmY7zV1kAsZ9OxxtrFqYucnOuRftXAfcJqcDVyOPeN4lttWTwhLdu0T9f8uvoPEUg==", "dev": true, "dependencies": { - "@jest/transform": "^29.3.1", + "@jest/transform": "^29.4.1", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.2.0", + "babel-preset-jest": "^29.4.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -4573,9 +4605,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", - "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz", + "integrity": "sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", @@ -4647,12 +4679,12 @@ } }, "node_modules/babel-preset-jest": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", - "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz", + "integrity": "sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^29.2.0", + "babel-plugin-jest-hoist": "^29.4.0", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -5129,9 +5161,9 @@ } }, "node_modules/bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", "dependencies": { "buffer": "^5.6.0" }, @@ -5319,10 +5351,19 @@ } }, "node_modules/ci-info": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", - "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", - "dev": true + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } }, "node_modules/cipher-base": { "version": "1.0.4", @@ -5564,9 +5605,9 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" }, "node_modules/copy-anything": { "version": "2.0.6", @@ -6145,9 +6186,9 @@ } }, "node_modules/eslint": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", - "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.4.1", @@ -6201,9 +6242,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.31.11", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", - "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", "dev": true, "dependencies": { "array-includes": "^3.1.6", @@ -6218,7 +6259,7 @@ "object.hasown": "^1.1.2", "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", + "resolve": "^2.0.0-next.4", "semver": "^6.3.0", "string.prototype.matchall": "^4.0.8" }, @@ -6575,16 +6616,16 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.4.1.tgz", + "integrity": "sha512-OKrGESHOaMxK3b6zxIq9SOW8kEXztKff/Dvg88j4xIJxur1hspEbedVkR3GpHe5LO+WB2Qw7OWN0RMTdp6as5A==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.3.1", + "@jest/expect-utils": "^29.4.1", "jest-get-type": "^29.2.0", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1" + "jest-matcher-utils": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-util": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -8141,15 +8182,15 @@ } }, "node_modules/jest": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", - "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.4.1.tgz", + "integrity": "sha512-cknimw7gAXPDOmj0QqztlxVtBVCw2lYY9CeIE5N6kD+kET1H4H79HSNISJmijb1HF+qk+G+ploJgiDi5k/fRlg==", "dev": true, "dependencies": { - "@jest/core": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/core": "^29.4.1", + "@jest/types": "^29.4.1", "import-local": "^3.0.2", - "jest-cli": "^29.3.1" + "jest-cli": "^29.4.1" }, "bin": { "jest": "bin/jest.js" @@ -8167,9 +8208,9 @@ } }, "node_modules/jest-changed-files": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", - "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.4.0.tgz", + "integrity": "sha512-rnI1oPxgFghoz32Y8eZsGJMjW54UlqT17ycQeCEktcxxwqqKdlj9afl8LNeO0Pbu+h2JQHThQP0BzS67eTRx4w==", "dev": true, "dependencies": { "execa": "^5.0.0", @@ -8180,28 +8221,28 @@ } }, "node_modules/jest-circus": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", - "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.4.1.tgz", + "integrity": "sha512-v02NuL5crMNY4CGPHBEflLzl4v91NFb85a+dH9a1pUNx6Xjggrd8l9pPy4LZ1VYNRXlb+f65+7O/MSIbLir6pA==", "dev": true, "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/environment": "^29.4.1", + "@jest/expect": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", + "jest-each": "^29.4.1", + "jest-matcher-utils": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-runtime": "^29.4.1", + "jest-snapshot": "^29.4.1", + "jest-util": "^29.4.1", "p-limit": "^3.1.0", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -8280,21 +8321,21 @@ } }, "node_modules/jest-cli": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", - "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.4.1.tgz", + "integrity": "sha512-jz7GDIhtxQ37M+9dlbv5K+/FVcIo1O/b1sX3cJgzlQUf/3VG25nvuWzlDC4F1FLLzUThJeWLu8I7JF9eWpuURQ==", "dev": true, "dependencies": { - "@jest/core": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/core": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/types": "^29.4.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", + "jest-config": "^29.4.1", + "jest-util": "^29.4.1", + "jest-validate": "^29.4.1", "prompts": "^2.0.1", "yargs": "^17.3.1" }, @@ -8384,31 +8425,31 @@ } }, "node_modules/jest-config": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", - "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.4.1.tgz", + "integrity": "sha512-g7p3q4NuXiM4hrS4XFATTkd+2z0Ml2RhFmFPM8c3WyKwVDNszbl4E7cV7WIx1YZeqqCtqbtTtZhGZWJlJqngzg==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.3.1", - "@jest/types": "^29.3.1", - "babel-jest": "^29.3.1", + "@jest/test-sequencer": "^29.4.1", + "@jest/types": "^29.4.1", + "babel-jest": "^29.4.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.3.1", - "jest-environment-node": "^29.3.1", + "jest-circus": "^29.4.1", + "jest-environment-node": "^29.4.1", "jest-get-type": "^29.2.0", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-runner": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", + "jest-resolve": "^29.4.1", + "jest-runner": "^29.4.1", + "jest-util": "^29.4.1", + "jest-validate": "^29.4.1", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -8499,15 +8540,15 @@ } }, "node_modules/jest-diff": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", - "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.4.1.tgz", + "integrity": "sha512-uazdl2g331iY56CEyfbNA0Ut7Mn2ulAG5vUaEHXycf1L6IPyuImIxSz4F0VYBKi7LYIuxOwTZzK3wh5jHzASMw==", "dev": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.3.1", "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" + "pretty-format": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -8596,16 +8637,16 @@ } }, "node_modules/jest-each": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", - "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.4.1.tgz", + "integrity": "sha512-QlYFiX3llJMWUV0BtWht/esGEz9w+0i7BHwODKCze7YzZzizgExB9MOfiivF/vVT0GSQ8wXLhvHXh3x2fVD4QQ==", "dev": true, "dependencies": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "chalk": "^4.0.0", "jest-get-type": "^29.2.0", - "jest-util": "^29.3.1", - "pretty-format": "^29.3.1" + "jest-util": "^29.4.1", + "pretty-format": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -8682,17 +8723,17 @@ } }, "node_modules/jest-environment-node": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", - "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.4.1.tgz", + "integrity": "sha512-x/H2kdVgxSkxWAIlIh9MfMuBa0hZySmfsC5lCsWmWr6tZySP44ediRKDUiNggX/eHLH7Cd5ZN10Rw+XF5tXsqg==", "dev": true, "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/environment": "^29.4.1", + "@jest/fake-timers": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" + "jest-mock": "^29.4.1", + "jest-util": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -8708,20 +8749,20 @@ } }, "node_modules/jest-haste-map": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", - "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.4.1.tgz", + "integrity": "sha512-imTjcgfVVTvg02khXL11NNLTx9ZaofbAWhilrMg/G8dIkp+HYCswhxf0xxJwBkfhWb3e8dwbjuWburvxmcr58w==", "dev": true, "dependencies": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", + "jest-util": "^29.4.1", + "jest-worker": "^29.4.1", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -8733,28 +8774,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", - "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.4.1.tgz", + "integrity": "sha512-akpZv7TPyGMnH2RimOCgy+hPmWZf55EyFUvymQ4LMsQP8xSPlZumCPtXGoDhFNhUE2039RApZkTQDKU79p/FiQ==", "dev": true, "dependencies": { "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" + "pretty-format": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", - "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.4.1.tgz", + "integrity": "sha512-k5h0u8V4nAEy6lSACepxL/rw78FLDkBnXhZVgFneVpnJONhb2DhZj/Gv4eNe+1XqQ5IhgUcqj745UwH0HJmMnA==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.3.1", + "jest-diff": "^29.4.1", "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" + "pretty-format": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -8831,18 +8872,18 @@ } }, "node_modules/jest-message-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", - "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.1.tgz", + "integrity": "sha512-H4/I0cXUaLeCw6FM+i4AwCnOwHRgitdaUFOdm49022YD5nfyr8C/DrbXOBEyJaj+w/y0gGJ57klssOaUiLLQGQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -8921,23 +8962,23 @@ } }, "node_modules/jest-mock": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", - "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.4.1.tgz", + "integrity": "sha512-MwA4hQ7zBOcgVCVnsM8TzaFLVUD/pFWTfbkY953Y81L5ret3GFRZtmPmRFAjKQSdCKoJvvqOu6Bvfpqlwwb0dQ==", "dev": true, "dependencies": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/node": "*", - "jest-util": "^29.3.1" + "jest-util": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { "node": ">=6" @@ -8961,19 +9002,19 @@ } }, "node_modules/jest-resolve": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", - "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.4.1.tgz", + "integrity": "sha512-j/ZFNV2lm9IJ2wmlq1uYK0Y/1PiyDq9g4HEGsNTNr3viRbJdV+8Lf1SXIiLZXFvyiisu0qUyIXGBnw+OKWkJwQ==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", + "jest-haste-map": "^29.4.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", + "jest-util": "^29.4.1", + "jest-validate": "^29.4.1", "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", + "resolve.exports": "^2.0.0", "slash": "^3.0.0" }, "engines": { @@ -8981,13 +9022,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", - "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.1.tgz", + "integrity": "sha512-Y3QG3M1ncAMxfjbYgtqNXC5B595zmB6e//p/qpA/58JkQXu/IpLDoLeOa8YoYfsSglBKQQzNUqtfGJJT/qLmJg==", "dev": true, "dependencies": { "jest-regex-util": "^29.2.0", - "jest-snapshot": "^29.3.1" + "jest-snapshot": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9064,30 +9105,30 @@ } }, "node_modules/jest-runner": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", - "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.4.1.tgz", + "integrity": "sha512-8d6XXXi7GtHmsHrnaqBKWxjKb166Eyj/ksSaUYdcBK09VbjPwIgWov1VwSmtupCIz8q1Xv4Qkzt/BTo3ZqiCeg==", "dev": true, "dependencies": { - "@jest/console": "^29.3.1", - "@jest/environment": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/console": "^29.4.1", + "@jest/environment": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.2.0", - "jest-environment-node": "^29.3.1", - "jest-haste-map": "^29.3.1", - "jest-leak-detector": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-resolve": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-util": "^29.3.1", - "jest-watcher": "^29.3.1", - "jest-worker": "^29.3.1", + "jest-environment-node": "^29.4.1", + "jest-haste-map": "^29.4.1", + "jest-leak-detector": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-resolve": "^29.4.1", + "jest-runtime": "^29.4.1", + "jest-util": "^29.4.1", + "jest-watcher": "^29.4.1", + "jest-worker": "^29.4.1", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -9166,31 +9207,32 @@ } }, "node_modules/jest-runtime": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", - "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.4.1.tgz", + "integrity": "sha512-UXTMU9uKu2GjYwTtoAw5rn4STxWw/nadOfW7v1sx6LaJYa3V/iymdCLQM6xy3+7C6mY8GfX22vKpgxY171UIoA==", "dev": true, "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/globals": "^29.3.1", + "@jest/environment": "^29.4.1", + "@jest/fake-timers": "^29.4.1", + "@jest/globals": "^29.4.1", "@jest/source-map": "^29.2.0", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/test-result": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", + "jest-haste-map": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-mock": "^29.4.1", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", + "jest-resolve": "^29.4.1", + "jest-snapshot": "^29.4.1", + "jest-util": "^29.4.1", + "semver": "^7.3.5", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -9256,6 +9298,21 @@ "node": ">=8" } }, + "node_modules/jest-runtime/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-runtime/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9269,9 +9326,9 @@ } }, "node_modules/jest-snapshot": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", - "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.4.1.tgz", + "integrity": "sha512-l4iV8EjGgQWVz3ee/LR9sULDk2pCkqb71bjvlqn+qp90lFwpnulHj4ZBT8nm1hA1C5wowXLc7MGnw321u0tsYA==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -9280,23 +9337,23 @@ "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/expect-utils": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@types/babel__traverse": "^7.0.6", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.3.1", + "expect": "^29.4.1", "graceful-fs": "^4.2.9", - "jest-diff": "^29.3.1", + "jest-diff": "^29.4.1", "jest-get-type": "^29.2.0", - "jest-haste-map": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", + "jest-haste-map": "^29.4.1", + "jest-matcher-utils": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-util": "^29.4.1", "natural-compare": "^1.4.0", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "semver": "^7.3.5" }, "engines": { @@ -9389,12 +9446,12 @@ } }, "node_modules/jest-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", - "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.1.tgz", + "integrity": "sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ==", "dev": true, "dependencies": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -9476,17 +9533,17 @@ } }, "node_modules/jest-validate": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", - "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.4.1.tgz", + "integrity": "sha512-qNZXcZQdIQx4SfUB/atWnI4/I2HUvhz8ajOSYUu40CSmf9U5emil8EDHgE7M+3j9/pavtk3knlZBDsgFvv/SWw==", "dev": true, "dependencies": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.2.0", "leven": "^3.1.0", - "pretty-format": "^29.3.1" + "pretty-format": "^29.4.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -9575,18 +9632,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", - "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.4.1.tgz", + "integrity": "sha512-vFOzflGFs27nU6h8dpnVRER3O2rFtL+VMEwnG0H3KLHcllLsU8y9DchSh0AL/Rg5nN1/wSiQ+P4ByMGpuybaVw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/test-result": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.3.1", + "jest-util": "^29.4.1", "string-length": "^4.0.1" }, "engines": { @@ -9664,13 +9721,13 @@ } }, "node_modules/jest-worker": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", - "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.4.1.tgz", + "integrity": "sha512-O9doU/S1EBe+yp/mstQ0VpPwpv0Clgn68TkNwGxL6/usX/KUW9Arnn4ag8C3jc6qHcXznhsT5Na1liYzAsuAbQ==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.3.1", + "jest-util": "^29.4.1", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -10097,9 +10154,9 @@ } }, "node_modules/marked": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.5.tgz", - "integrity": "sha512-jPueVhumq7idETHkb203WDD4fMA3yV9emQ5vLwop58lu8bTclMghBWcYAavlDqIEMaisADinV1TooIFCfqOsYQ==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", + "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", "bin": { "marked": "bin/marked.js" }, @@ -10369,9 +10426,9 @@ } }, "node_modules/mongodb": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.12.1.tgz", - "integrity": "sha512-koT87tecZmxPKtxRQD8hCKfn+ockEL2xBiUvx3isQGI6mFmagWt4f4AyCE9J4sKepnLhMacoCTQQA6SLAI2L6w==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.13.0.tgz", + "integrity": "sha512-+taZ/bV8d1pYuHL4U+gSwkhmDrwkWbH1l4aah4YpmpscMwgFBkufIKxgP/G7m87/NUuQzc2Z75ZTI7ZOyqZLbw==", "dependencies": { "bson": "^4.7.0", "mongodb-connection-string-url": "^2.5.4", @@ -10395,13 +10452,13 @@ } }, "node_modules/mongoose": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.8.3.tgz", - "integrity": "sha512-qrVWefJK+wFNBH0ALV+oiyJ+FN42O/BqvHFmlFJJ2LKuNmQEOE0JV8FCxnZqtanwbHs4i+k/SkjhtC+C01haaw==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.9.0.tgz", + "integrity": "sha512-5tu6+trwjk5TIH6b6iYgAwmzZ0RNOxFoqXQb9h21Oi45DeM1rWM/niHxJ4ROqBISDfQMwRvLSABHTsyn3AzoFQ==", "dependencies": { "bson": "^4.7.0", "kareem": "2.5.1", - "mongodb": "4.12.1", + "mongodb": "4.13.0", "mpath": "0.9.0", "mquery": "4.0.3", "ms": "2.1.3", @@ -13632,12 +13689,12 @@ } }, "node_modules/pretty-format": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", - "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.1.tgz", + "integrity": "sha512-dt/Z761JUVsrIKaY215o1xQJBGlSmTx/h4cSqXqjHLnU1+Kt+mavVE7UgqJJO5ukx5HjSswHfmXz4LjS2oIJfg==", "dev": true, "dependencies": { - "@jest/schemas": "^29.0.0", + "@jest/schemas": "^29.4.0", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -13879,11 +13936,11 @@ "dev": true }, "node_modules/react-router": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.6.1.tgz", - "integrity": "sha512-YkvlYRusnI/IN0kDtosUCgxqHeulN5je+ew8W+iA1VvFhf86kA+JEI/X/8NqYcr11hCDDp906S+SGMpBheNeYQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.8.0.tgz", + "integrity": "sha512-760bk7y3QwabduExtudhWbd88IBbuD1YfwzpuDUAlJUJ7laIIcqhMvdhSVh1Fur1PE8cGl84L0dxhR3/gvHF7A==", "dependencies": { - "@remix-run/router": "1.2.1" + "@remix-run/router": "1.3.1" }, "engines": { "node": ">=14" @@ -13893,12 +13950,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.6.1.tgz", - "integrity": "sha512-u+8BKUtelStKbZD5UcY0NY90WOzktrkJJhyhNg7L0APn9t1qJNLowzrM9CHdpB6+rcPt6qQrlkIXsTvhuXP68g==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.8.0.tgz", + "integrity": "sha512-hQouduSTywGJndE86CXJ2h7YEy4HYC6C/uh19etM+79FfQ6cFFFHnHyDlzO4Pq0eBUI96E4qVE5yUjA00yJZGQ==", "dependencies": { - "@remix-run/router": "1.2.1", - "react-router": "6.6.1" + "@remix-run/router": "1.3.1", + "react-router": "6.8.0" }, "engines": { "node": ">=14" @@ -14182,9 +14239,9 @@ "deprecated": "https://github.com/lydell/resolve-url#deprecated" }, "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.0.tgz", + "integrity": "sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==", "dev": true, "engines": { "node": ">=10" @@ -16351,16 +16408,16 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", + "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/ws": { @@ -16455,68 +16512,68 @@ } }, "@aws-crypto/ie11-detection": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", - "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", "optional": true, "requires": { "tslib": "^1.11.1" } }, "@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", "optional": true, "requires": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-locate-window": "^3.0.0", "@aws-sdk/util-utf8-browser": "^3.0.0", "tslib": "^1.11.1" } }, "@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", "optional": true, "requires": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", "tslib": "^1.11.1" } }, "@aws-crypto/supports-web-crypto": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", - "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", "optional": true, "requires": { "tslib": "^1.11.1" } }, "@aws-crypto/util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", - "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", "optional": true, "requires": { - "@aws-sdk/types": "^3.110.0", + "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-utf8-browser": "^3.0.0", "tslib": "^1.11.1" } }, "@aws-sdk/abort-controller": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.224.0.tgz", - "integrity": "sha512-6DxaHnSDc2V5WiwtDaRwJJb2fkmDTyGr1svIM9H671aXIwe+q17mtpm5IooKL8bW5mLJoB1pT/5ntLkfxDQgSQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.257.0.tgz", + "integrity": "sha512-ekWy391lOerS0ZECdhp/c+X7AToJIpfNrCPjuj3bKr+GMQYckGsYsdbm6AUD4sxBmfvuaQmVniSXWovaxwcFcQ==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16529,45 +16586,45 @@ } }, "@aws-sdk/client-cognito-identity": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.224.0.tgz", - "integrity": "sha512-n+0qilnV5Wgu3W4p/PbfPslINZmz56+EMY0EtbF0sIZcKSfCUXmWPo35LpzS6lVAuaMqCQoNH3Rnl6J1RpF7LA==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.258.0.tgz", + "integrity": "sha512-xLKwJ2Q+KEyR4mRc1tNs6j2/O0SPzsD73Lbj4WRDP2Y+4JvZpn6JDihyc2OBs4JszObWOBmr2kotwHtG218WiA==", "optional": true, "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.224.0", - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/credential-provider-node": "3.224.0", - "@aws-sdk/fetch-http-handler": "3.224.0", - "@aws-sdk/hash-node": "3.224.0", - "@aws-sdk/invalid-dependency": "3.224.0", - "@aws-sdk/middleware-content-length": "3.224.0", - "@aws-sdk/middleware-endpoint": "3.224.0", - "@aws-sdk/middleware-host-header": "3.224.0", - "@aws-sdk/middleware-logger": "3.224.0", - "@aws-sdk/middleware-recursion-detection": "3.224.0", - "@aws-sdk/middleware-retry": "3.224.0", - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/middleware-signing": "3.224.0", - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/middleware-user-agent": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/node-http-handler": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/smithy-client": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.258.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/credential-provider-node": "3.258.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.224.0", - "@aws-sdk/util-defaults-mode-node": "3.224.0", - "@aws-sdk/util-endpoints": "3.224.0", - "@aws-sdk/util-user-agent-browser": "3.224.0", - "@aws-sdk/util-user-agent-node": "3.224.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.257.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.257.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16580,42 +16637,42 @@ } }, "@aws-sdk/client-sso": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.224.0.tgz", - "integrity": "sha512-ZfqjGGBhv+sKxYN9FHbepaL+ucFbAFndvNdalGj4mZsv5AqxgemkFoRofNJk4nu79JVf5cdrj7zL+BDW3KwEGg==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.258.0.tgz", + "integrity": "sha512-7q5GxPUD3ME/bVUfIxDZjCpNhgM/H0Cdq3sTAbrKWsxbGZDSepeysN+oxabCj9hi2TP1SENJ4gVuArejtqqfHA==", "optional": true, "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/fetch-http-handler": "3.224.0", - "@aws-sdk/hash-node": "3.224.0", - "@aws-sdk/invalid-dependency": "3.224.0", - "@aws-sdk/middleware-content-length": "3.224.0", - "@aws-sdk/middleware-endpoint": "3.224.0", - "@aws-sdk/middleware-host-header": "3.224.0", - "@aws-sdk/middleware-logger": "3.224.0", - "@aws-sdk/middleware-recursion-detection": "3.224.0", - "@aws-sdk/middleware-retry": "3.224.0", - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/middleware-user-agent": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/node-http-handler": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/smithy-client": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.224.0", - "@aws-sdk/util-defaults-mode-node": "3.224.0", - "@aws-sdk/util-endpoints": "3.224.0", - "@aws-sdk/util-user-agent-browser": "3.224.0", - "@aws-sdk/util-user-agent-node": "3.224.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.257.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.257.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16628,42 +16685,42 @@ } }, "@aws-sdk/client-sso-oidc": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.224.0.tgz", - "integrity": "sha512-r7QAqinMvuZvGlfC4ltEBIq3gJ1AI4tTqEi8lG06+gDoiwnqTWii0+OrZJQiaeLc3PqDHwxmRpEmjFlr/f5TKg==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.258.0.tgz", + "integrity": "sha512-YHQcoDsf5nnFfDJiG4uHxIg+DI90y7NpLrpx7233SeGuMNfzK2BOxHMNCZhMAxJHKB3TVpD0aN4NshVvBpcSdQ==", "optional": true, "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/fetch-http-handler": "3.224.0", - "@aws-sdk/hash-node": "3.224.0", - "@aws-sdk/invalid-dependency": "3.224.0", - "@aws-sdk/middleware-content-length": "3.224.0", - "@aws-sdk/middleware-endpoint": "3.224.0", - "@aws-sdk/middleware-host-header": "3.224.0", - "@aws-sdk/middleware-logger": "3.224.0", - "@aws-sdk/middleware-recursion-detection": "3.224.0", - "@aws-sdk/middleware-retry": "3.224.0", - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/middleware-user-agent": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/node-http-handler": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/smithy-client": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.224.0", - "@aws-sdk/util-defaults-mode-node": "3.224.0", - "@aws-sdk/util-endpoints": "3.224.0", - "@aws-sdk/util-user-agent-browser": "3.224.0", - "@aws-sdk/util-user-agent-node": "3.224.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.257.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.257.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16676,45 +16733,45 @@ } }, "@aws-sdk/client-sts": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.224.0.tgz", - "integrity": "sha512-ao3jyjwk2fozk1d4PtrNf0BNsucPWAbALv8CCsPTC3r9g2Lg/TOi3pxmsfd69ddw89XSyP6zZATEHaWO+tk0CQ==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.258.0.tgz", + "integrity": "sha512-L6dMn5hrHgUjoY6LebmeJ3JB/xPerkVfzjel6G0ilMYSmtdAsYDe4Ik8hvTxdg06WPT9SfnrZltilESU+T8SBw==", "optional": true, "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/credential-provider-node": "3.224.0", - "@aws-sdk/fetch-http-handler": "3.224.0", - "@aws-sdk/hash-node": "3.224.0", - "@aws-sdk/invalid-dependency": "3.224.0", - "@aws-sdk/middleware-content-length": "3.224.0", - "@aws-sdk/middleware-endpoint": "3.224.0", - "@aws-sdk/middleware-host-header": "3.224.0", - "@aws-sdk/middleware-logger": "3.224.0", - "@aws-sdk/middleware-recursion-detection": "3.224.0", - "@aws-sdk/middleware-retry": "3.224.0", - "@aws-sdk/middleware-sdk-sts": "3.224.0", - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/middleware-signing": "3.224.0", - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/middleware-user-agent": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/node-http-handler": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/smithy-client": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/credential-provider-node": "3.258.0", + "@aws-sdk/fetch-http-handler": "3.257.0", + "@aws-sdk/hash-node": "3.257.0", + "@aws-sdk/invalid-dependency": "3.257.0", + "@aws-sdk/middleware-content-length": "3.257.0", + "@aws-sdk/middleware-endpoint": "3.257.0", + "@aws-sdk/middleware-host-header": "3.257.0", + "@aws-sdk/middleware-logger": "3.257.0", + "@aws-sdk/middleware-recursion-detection": "3.257.0", + "@aws-sdk/middleware-retry": "3.257.0", + "@aws-sdk/middleware-sdk-sts": "3.257.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/middleware-user-agent": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/node-http-handler": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/smithy-client": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.224.0", - "@aws-sdk/util-defaults-mode-node": "3.224.0", - "@aws-sdk/util-endpoints": "3.224.0", - "@aws-sdk/util-user-agent-browser": "3.224.0", - "@aws-sdk/util-user-agent-node": "3.224.0", - "@aws-sdk/util-utf8-browser": "3.188.0", - "@aws-sdk/util-utf8-node": "3.208.0", + "@aws-sdk/util-defaults-mode-browser": "3.257.0", + "@aws-sdk/util-defaults-mode-node": "3.257.0", + "@aws-sdk/util-endpoints": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", + "@aws-sdk/util-user-agent-browser": "3.257.0", + "@aws-sdk/util-user-agent-node": "3.257.0", + "@aws-sdk/util-utf8": "3.254.0", "fast-xml-parser": "4.0.11", "tslib": "^2.3.1" }, @@ -16728,15 +16785,15 @@ } }, "@aws-sdk/config-resolver": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.224.0.tgz", - "integrity": "sha512-jS53QvF2jdv7d6cpPUH6N85i1WNHik1eGvxqSndsNbLf0keEGXYyN4pBLNB0xK1nk0ZG+8slRsXgWvWTCcFYKA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.257.0.tgz", + "integrity": "sha512-jChjr8ayaXoAcUgrRr+JRIJ6bPtEoS+/xW9khpHOmrEX+uBJ7xLPfdS4e6nmxAQpbem9AsUVvf57DXhSh5/nLg==", "optional": true, "requires": { - "@aws-sdk/signature-v4": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/util-middleware": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16749,14 +16806,14 @@ } }, "@aws-sdk/credential-provider-cognito-identity": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.224.0.tgz", - "integrity": "sha512-zXxsEhiBTvrsdb91JmMdNJN+kU1IbqIEMRZD0n7n+oqlkG7J+ZAns3DJNYscFBsUwM0rKSDidvTE/+AoPGe76w==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.258.0.tgz", + "integrity": "sha512-V5Z+vJ4eT4Sg0u0k1OPEPmhyixwFpS094KimC/nfcGXNQnxAkIQEKT+pD1DNenxWKBta4434l+BJUozpj64oCQ==", "optional": true, "requires": { - "@aws-sdk/client-cognito-identity": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/client-cognito-identity": "3.258.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16769,13 +16826,13 @@ } }, "@aws-sdk/credential-provider-env": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.224.0.tgz", - "integrity": "sha512-WUicVivCne9Ela2Nuufohy8+UV/W6GwanlpK9trJqrqHt2/zqdNYHqZbWL0zDNO8dvFN3+MC2a8boYPyR+cFRg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.257.0.tgz", + "integrity": "sha512-GsmBi5Di6hk1JAi1iB6/LCY8o+GmlCvJoB7wuoVmXI3VxRVwptUVjuj8EtJbIrVGrF9dSuIRPCzUoSuzEzYGlg==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16788,15 +16845,15 @@ } }, "@aws-sdk/credential-provider-imds": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.224.0.tgz", - "integrity": "sha512-n7uVR5Z9EUfVbg0gSNrJvu1g0cM/HqhRt+kaRJBGNf4q1tEbnCukKj+qUZbT1qdbDTyu9NTRphMvuIyN3RBDtQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.257.0.tgz", + "integrity": "sha512-UrxYkHWndy6s/bZZWH2poIyqdISTbILGTcK9tT8cFaUUrNIEFXiVESZMNNaagy0Dyy9wr80ndumxRkutYga9VA==", "optional": true, "requires": { - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16809,18 +16866,19 @@ } }, "@aws-sdk/credential-provider-ini": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.224.0.tgz", - "integrity": "sha512-YaAHoHJVspqy5f8C6EXBifMfodKXl88IHuL6eBComigTPR3s1Ed1+3AJdjA1X7SjAHfrYna/WvZEH3e8NCSzFA==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.258.0.tgz", + "integrity": "sha512-vwy3wcIzdiBUd+kX6wKqY59JHRyOKgkPgwvd2nZt4QSQUXAldGROx48fgp/SZUEVveBpHg6Zm3IrdUWaQtAemg==", "optional": true, "requires": { - "@aws-sdk/credential-provider-env": "3.224.0", - "@aws-sdk/credential-provider-imds": "3.224.0", - "@aws-sdk/credential-provider-sso": "3.224.0", - "@aws-sdk/credential-provider-web-identity": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.257.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.258.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16833,20 +16891,20 @@ } }, "@aws-sdk/credential-provider-node": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.224.0.tgz", - "integrity": "sha512-n/gijJAA3uVFl1b3+hp2E3lPaiajsPLHqH+mMxNxPkGo39HV1v9RAyOVW4Y3AH1QcT7sURevjGoF2Eemcro88g==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.258.0.tgz", + "integrity": "sha512-2OTFqKkfpkLZ7nkxztOIsEembl3wYhl4aAutRN5bCu8tunREWzr7v7t6X96+8CuYqcCjNYHs/9ChgFh19uokEg==", "optional": true, "requires": { - "@aws-sdk/credential-provider-env": "3.224.0", - "@aws-sdk/credential-provider-imds": "3.224.0", - "@aws-sdk/credential-provider-ini": "3.224.0", - "@aws-sdk/credential-provider-process": "3.224.0", - "@aws-sdk/credential-provider-sso": "3.224.0", - "@aws-sdk/credential-provider-web-identity": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.257.0", + "@aws-sdk/credential-provider-ini": "3.258.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.258.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16859,14 +16917,14 @@ } }, "@aws-sdk/credential-provider-process": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.224.0.tgz", - "integrity": "sha512-0nc8vGmv6vDfFlVyKREwAa4namfuGqKg3TTM0nW2vE10fpDXZM/DGVAs5HInX+27QQNLVVh3/OHHgti9wMkYkw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.257.0.tgz", + "integrity": "sha512-xK8uYeNXaclaBCGrLi4z2pxPRngqLf5BM5jg2fn57zqvlL9V5gJF972FehrVBL0bfp1/laG0ZJtD2K2sapyWAw==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16879,16 +16937,16 @@ } }, "@aws-sdk/credential-provider-sso": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.224.0.tgz", - "integrity": "sha512-Qx5w8MCGAwT5cqimA3ZgtY1jSrC7QGPzZfNflY75PWQIaYgjUNNqdAW0jipr4M/dgVjvo1j/Ek+atNf/niTOsQ==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.258.0.tgz", + "integrity": "sha512-2QbrpBgqabcmZkvbDLZKf8Lq99K64UsJwNkSJ+6v6+ZQQgeGIlqYaAVfrsbreCazzGcxOy0xr8DiwGrI9ZE1zQ==", "optional": true, "requires": { - "@aws-sdk/client-sso": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/token-providers": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/client-sso": "3.258.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/token-providers": "3.258.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16901,13 +16959,13 @@ } }, "@aws-sdk/credential-provider-web-identity": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.224.0.tgz", - "integrity": "sha512-Z/xRFTm9pBVyuIAkYohisb3KPJowPVng7ZuZiblU0PaESoJBTkhAFOblpPv/ZWwb6fT85ANUKrvl4858zLpk/Q==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.257.0.tgz", + "integrity": "sha512-Cm0uvRv4JuIbD0Kp3W0J/vwjADIyCx8HoZi5yg+QIi5nilocuTQ3ajvLeuPVSvFvdy+yaxSc5FxNXquWt7Mngw==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16920,25 +16978,25 @@ } }, "@aws-sdk/credential-providers": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.224.0.tgz", - "integrity": "sha512-DhkHGLG7x5PwkgR4T95x8IaYL4tJ33/houLjIbKwrJBeZPsUjQ02yT/GSJ8LPSeJ28LUBFppGMuYuhQdt4u7WA==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.258.0.tgz", + "integrity": "sha512-/wjbuaJCClp3Ywl50oR4AV7nbSeLTzOYLvPjFJoAXvBf7OsE1544HkJJi7Y31N/gbZKAY+ReDp0vfz3QhGdJIw==", "optional": true, "requires": { - "@aws-sdk/client-cognito-identity": "3.224.0", - "@aws-sdk/client-sso": "3.224.0", - "@aws-sdk/client-sts": "3.224.0", - "@aws-sdk/credential-provider-cognito-identity": "3.224.0", - "@aws-sdk/credential-provider-env": "3.224.0", - "@aws-sdk/credential-provider-imds": "3.224.0", - "@aws-sdk/credential-provider-ini": "3.224.0", - "@aws-sdk/credential-provider-node": "3.224.0", - "@aws-sdk/credential-provider-process": "3.224.0", - "@aws-sdk/credential-provider-sso": "3.224.0", - "@aws-sdk/credential-provider-web-identity": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/client-cognito-identity": "3.258.0", + "@aws-sdk/client-sso": "3.258.0", + "@aws-sdk/client-sts": "3.258.0", + "@aws-sdk/credential-provider-cognito-identity": "3.258.0", + "@aws-sdk/credential-provider-env": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.257.0", + "@aws-sdk/credential-provider-ini": "3.258.0", + "@aws-sdk/credential-provider-node": "3.258.0", + "@aws-sdk/credential-provider-process": "3.257.0", + "@aws-sdk/credential-provider-sso": "3.258.0", + "@aws-sdk/credential-provider-web-identity": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16951,14 +17009,14 @@ } }, "@aws-sdk/fetch-http-handler": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.224.0.tgz", - "integrity": "sha512-IO1Je6ZM0fwT5YYPwQwwXcD4LlsYmP52pwit8AAI4ppz6AkSfs0747uDK0DYnqls7sevBQzUSqBSt6XjcMKjYQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.257.0.tgz", + "integrity": "sha512-zOF+RzQ+wfF7tq7tGUdPcqUTh3+k2f8KCVJE07A8kCopVq4nBu4NH6Eq29Tjpwdya3YlKvE+kFssuQRRRRex+Q==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/querystring-builder": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/querystring-builder": "3.257.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-base64": "3.208.0", "tslib": "^2.3.1" }, @@ -16972,13 +17030,14 @@ } }, "@aws-sdk/hash-node": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.224.0.tgz", - "integrity": "sha512-y7TXMDOSy5E2VZPvmsvRfyXkcQWcjTLFTd85yc70AAeFZiffff1nvZifQSzD78bW6ELJsWHXA2O8yxdBURyoBg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.257.0.tgz", + "integrity": "sha512-W/USUuea5Ep3OJ2U7Ve8/5KN1YsDun2WzOFUxc1PyxXP5pW6OgC15/op0e+bmWPG851clvp5S8ZuroUr3aKi3Q==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-buffer-from": "3.208.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "dependencies": { @@ -16991,12 +17050,12 @@ } }, "@aws-sdk/invalid-dependency": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.224.0.tgz", - "integrity": "sha512-6huV8LBYQYx84uMhQ2SS7nqEkhTkAufwhKceXnysrcrLDuUmyth09Y7fcFblFIDTr4wTgSI0mf6DKVF4nqYCwQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.257.0.tgz", + "integrity": "sha512-T68SAPRNMEhpke0wlxURgogL7q0B8dfqZsSeS20BVR/lksJxLse9+pbmCDxiu1RrXoEIsEwl5rbLN+Hw8BFFYw==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17026,13 +17085,13 @@ } }, "@aws-sdk/middleware-content-length": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.224.0.tgz", - "integrity": "sha512-L9b84b7X/BH+sFZaXg5hQQv0TRqZIGuOIiWJ8CkYeju7OQV03DzbCoNCAgZdI28SSevfrrVK/hwjEQrv+A6x1Q==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.257.0.tgz", + "integrity": "sha512-yiawbV2azm6QnMY1L2ypG8PDRdjOcEIvFmT0T7y0F49rfbKJOu21j1ONAoCkLrINK6kMqcD5JSQLVCoURxiTxQ==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17045,18 +17104,18 @@ } }, "@aws-sdk/middleware-endpoint": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.224.0.tgz", - "integrity": "sha512-Y+FkQmRyhQUX1E1tviodFwTrfAVjgteoALkFgIb7bxT7fmyQ/AQvdAytkDqIApTgkR61niNDSsAu7lHekDxQgg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.257.0.tgz", + "integrity": "sha512-RQNQe/jeVuWZtXXfcOm+e3qMFICY6ERsXUrbt0rjHgvajZCklcrRJgxJSCwrcS7Le3nl9azFPMAMj9L7uSK28g==", "optional": true, "requires": { - "@aws-sdk/middleware-serde": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/signature-v4": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/url-parser": "3.224.0", + "@aws-sdk/middleware-serde": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/url-parser": "3.257.0", "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/util-middleware": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17069,13 +17128,13 @@ } }, "@aws-sdk/middleware-host-header": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.224.0.tgz", - "integrity": "sha512-4eL8EVhgxTjvdVs+P3SSEkoMXBte7hSQ/+kOZVNR5ze8QPnUiDpJMS2BQrMoA2INxX9tSqp6zTrDNMc3LNvKbQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.257.0.tgz", + "integrity": "sha512-gEi9AJdJfRfU8Qr6HK1hfhxTzyV3Giq4B/h7um99hIFAT/GCg9xiPvAOKPo6UeuiKEv3b7RpSL4s6cBvnJMJBA==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17088,12 +17147,12 @@ } }, "@aws-sdk/middleware-logger": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.224.0.tgz", - "integrity": "sha512-AmvuezI1vGgKZDsA2slHZJ6nQMqogUyzK27wM03458a2JgFqZvWCUPSY/P+OZ0FpnFEC34/kvvF4bI54T0C5jA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.257.0.tgz", + "integrity": "sha512-8RDXW/VbMKBsXDfcCLmROZcWKyrekyiPa3J1aIaBy0tq9o4xpGoXw/lwwIrNVvISAFslb57rteup34bfn6ta6w==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17106,13 +17165,13 @@ } }, "@aws-sdk/middleware-recursion-detection": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.224.0.tgz", - "integrity": "sha512-ySTGlMvNaH5J77jYVVgwOF1ozz3Kp6f/wjTvivOcBR1zlRv0FXa1y033QMnrAAtKSNkzClXtNOycBM463QImJw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.257.0.tgz", + "integrity": "sha512-rUCih6zHh8k9Edf5N5Er4s508FYbwLM0MWTD2axzlj9TjLqEQ9OKED3wHaLffXSDzodd3oTAfJCLPbWQyoZ3ZQ==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17125,15 +17184,16 @@ } }, "@aws-sdk/middleware-retry": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.224.0.tgz", - "integrity": "sha512-zwl8rZZb5OWLzOnEW58RRklbehDfcdtD98qtgm0NLM9ErBALEEb2Y4MM5zhRiMtVjzrDw71+Mhk5+4TAlwJyXA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.257.0.tgz", + "integrity": "sha512-vDOy4PbSRW2gtgoJZ+yvgyxdlTwbZGpuv/rA2+XYxURmhPMzpmqs4o1DR37LG8O41WouI1rPzA7E+Ffo+iNWjw==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/service-error-classification": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/service-error-classification": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-middleware": "3.257.0", + "@aws-sdk/util-retry": "3.257.0", "tslib": "^2.3.1", "uuid": "^8.3.2" }, @@ -17153,16 +17213,16 @@ } }, "@aws-sdk/middleware-sdk-sts": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.224.0.tgz", - "integrity": "sha512-rUoPPejj4N8S+P39ap9Iqbprl9L7LBlkuMHwMCqgeRJBhdI+1YeDfUekegJxceJv/BDXaoI2aSE0tCUS8rK0Ug==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.257.0.tgz", + "integrity": "sha512-d6IJCLRi3O2tm4AFK60WNhIwmMmspj1WzKR1q1TaoPzoREPG2xg+Am18wZBRkCyYuRPPrbizmkvAmAJiUolMAw==", "optional": true, "requires": { - "@aws-sdk/middleware-signing": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/signature-v4": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/middleware-signing": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17175,12 +17235,12 @@ } }, "@aws-sdk/middleware-serde": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.224.0.tgz", - "integrity": "sha512-4wHJ4DyhvyqQ853zfIw6sRw909VB+hFEqatmXYvO5OYap03Eed92wslsR2Gtfw1B2/zjDscPpwPyHoCIk30sHA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.257.0.tgz", + "integrity": "sha512-/JasfXPWFq24mnCrx9fxW/ISBSp07RJwhsF14qzm8Qy3Z0z470C+QRM6otTwAkYuuVt1wuLjja5agq3Jtzq7dQ==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17193,16 +17253,16 @@ } }, "@aws-sdk/middleware-signing": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.224.0.tgz", - "integrity": "sha512-6T+dybVn5EYsxkNc4eVKAeoj6x6FfRXkZWMRxkepDoOJufMUNTfpoDEl6PcgJU6Wq4odbqV737x/3j53VZc6dA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.257.0.tgz", + "integrity": "sha512-hCH3D83LHmm6nqmtNrGTWZCVjsQXrGHIXbd17/qrw7aPFvcAhsiiCncGFP+XsUXEKa2ZqcSNMUyPrx69ofNRZQ==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/signature-v4": "3.224.0", - "@aws-sdk/types": "3.224.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/signature-v4": "3.257.0", + "@aws-sdk/types": "3.257.0", + "@aws-sdk/util-middleware": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17215,9 +17275,9 @@ } }, "@aws-sdk/middleware-stack": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.224.0.tgz", - "integrity": "sha512-8mBrc3nj4h6FnDWnxbjfFXUPr/7UIAaGAG15D27Z/KNFnMjOqNTtpkbcoh3QQHRLX3PjTuvzT5WCqXmgD2/oiw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.257.0.tgz", + "integrity": "sha512-awg2F0SvwACBaw4HIObK8pQGfSqAc4Vy+YFzWSfZNVC35oRO6RsRdKHVU99lRC0LrT2Ptmfghl2DMPSrRDbvlQ==", "optional": true, "requires": { "tslib": "^2.3.1" @@ -17232,13 +17292,13 @@ } }, "@aws-sdk/middleware-user-agent": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.224.0.tgz", - "integrity": "sha512-YXHC/n8k4qeIkqFVACPmF/QfJyKSOMD1HjM7iUZmJ9yGqDRFeGgn4o2Jktd0dor7sTv6pfUDkLqspxURAsokzA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.257.0.tgz", + "integrity": "sha512-37rt75LZyD0UWpbcFuxEGqwF3DZKSixQPl7AsDe6q3KtrO5gGQB+diH5vbY0txNNYyv5IK9WMwvY73mVmoWRmw==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17251,14 +17311,14 @@ } }, "@aws-sdk/node-config-provider": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.224.0.tgz", - "integrity": "sha512-ULv0Ao95vNEiwCreN9ZbZ5vntaGjdMLolCiyt3B2FDWbuOorZJR5QXFydPBpo4AQOh1y/S2MIUWLhz00DY364g==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.257.0.tgz", + "integrity": "sha512-IfGF7+cU0PyB7RpHlgc445ZAUZDWn4ij2HTB6N+xULwFw2TxnyQ2tvo3Gp5caW9VlJ3eXE9wFrynv+JXUIH7Bg==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17271,15 +17331,15 @@ } }, "@aws-sdk/node-http-handler": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.224.0.tgz", - "integrity": "sha512-8h4jWsfVRUcJKkqZ9msSN4LhldBpXdNlMcA8ku8IVEBHf5waxqpIhupwR0uCMmV3FDINLqkf/8EwEYAODeRjrw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.257.0.tgz", + "integrity": "sha512-8KnWHVVwaGKyTlkTU9BSOAiSovNDoagxemU2l10QqBbzUCVpljCUMUkABEGRJ1yoQCl6DJ7RtNkAyZ8Ne/E15A==", "optional": true, "requires": { - "@aws-sdk/abort-controller": "3.224.0", - "@aws-sdk/protocol-http": "3.224.0", - "@aws-sdk/querystring-builder": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/abort-controller": "3.257.0", + "@aws-sdk/protocol-http": "3.257.0", + "@aws-sdk/querystring-builder": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17292,12 +17352,12 @@ } }, "@aws-sdk/property-provider": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.224.0.tgz", - "integrity": "sha512-1F1Hepndlmj6wykNv0ynlS9YTaT3LRF/mqXhCRGLbCWSmCiaW9BUH/ddMdBZJiSw7kcPePKid5ueW84fAO/nKg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.257.0.tgz", + "integrity": "sha512-3rUbRAcF0GZ5PhDiXhS4yREfZ5hOEtvYEa9S/19OdM5eoypOaLU5XnFcCKfnccSP8SkdgpJujzxOMRWNWadlAQ==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17310,12 +17370,12 @@ } }, "@aws-sdk/protocol-http": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.224.0.tgz", - "integrity": "sha512-myp31UkADbktZtIZLc4cNfr5zSNVJjPReoH37NPpvgREKOGg7ZB6Lb3UyKbjzrmIv985brMOunlMgIBIJhuPIg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.257.0.tgz", + "integrity": "sha512-xt7LGOgZIvbLS3418AYQLacOqx+mo5j4mPiIMz7f6AaUg+/fBUgESVsncKDqxbEJVwwCXSka8Ca0cntJmoeMSw==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17328,12 +17388,12 @@ } }, "@aws-sdk/querystring-builder": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.224.0.tgz", - "integrity": "sha512-Fwzt42wWRhf04TetQPqDL03jX5W2cAkRFQewOkIRYVFV17b72z4BFhKID6bpLEtNb4YagyllCWosNg1xooDURQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.257.0.tgz", + "integrity": "sha512-mZHWLP7XIkzx1GIXO5WfX/iJ+aY9TWs02RE9FkdL2+by0HEMR65L3brQTbU1mIBJ7BjaPwYH24dljUOSABX7yg==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" }, @@ -17347,12 +17407,12 @@ } }, "@aws-sdk/querystring-parser": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.224.0.tgz", - "integrity": "sha512-UIJZ76ClFtALXRIQS3Za4R76JTsjCYReSBEQ7ag7RF1jwVZLAggdfED9w3XDrN7jbaK6i+aI3Y+eFeq0sB2fcA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.257.0.tgz", + "integrity": "sha512-UDrE1dEwWrWT8dG2VCrGYrPxCWOkZ1fPTPkjpkR4KZEdQDZBqU5gYZF2xPj8Nz7pjQVHFuW2wFm3XYEk56GEjg==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17365,18 +17425,18 @@ } }, "@aws-sdk/service-error-classification": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.224.0.tgz", - "integrity": "sha512-0bnbYtCe+vqtaGItL+1UzQPt+yZLbU8G/aIXPQUL7555jdnjnbAtczCbIcLAJUqlE/OLwRhQVGLKbau8QAdxgQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.257.0.tgz", + "integrity": "sha512-FAyR0XsueGkkqDtkP03cTJQk52NdQ9sZelLynmmlGPUP75LApRPvFe1riKrou6+LsDbwVNVffj6mbDfIcOhaOw==", "optional": true }, "@aws-sdk/shared-ini-file-loader": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.224.0.tgz", - "integrity": "sha512-6a/XP3lRRcX5ic+bXzF2f644KERVqMx+s0JRrGsPAwTMaMiV0A7Ifl4HKggx6dnxh8j/MXUMsWMtuxt/kCu86A==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.257.0.tgz", + "integrity": "sha512-HNjC1+Wx3xHiJc+CP14GhIdVhfQGSjroAsWseRxAhONocA9Fl1ZX4hx7+sA5c9nOoMVOovi6ivJ/6lCRPTDRrQ==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17389,16 +17449,17 @@ } }, "@aws-sdk/signature-v4": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.224.0.tgz", - "integrity": "sha512-+oq1iylYQOvdXXO7r18SEhXIZpLd3GvJhmoReX+yjvVq8mGevDAmQiw6lwFZ6748sOmH4CREWD5H9Snrj+zLMg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.257.0.tgz", + "integrity": "sha512-aLQQN59X/D0+ShzPD3Anj5ntdMA/RFeNLOUCDyDvremViGi6yxUS98usQ/8bG5Rq0sW2GGMdbFUFmrDvqdiqEQ==", "optional": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "@aws-sdk/util-hex-encoding": "3.201.0", - "@aws-sdk/util-middleware": "3.224.0", + "@aws-sdk/util-middleware": "3.257.0", "@aws-sdk/util-uri-escape": "3.201.0", + "@aws-sdk/util-utf8": "3.254.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17411,13 +17472,13 @@ } }, "@aws-sdk/smithy-client": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.224.0.tgz", - "integrity": "sha512-KXXzzrCBv8ewWdtm/aolZHr2f9NRZOcDutFaWXbfSptEsK50Zi9PNzB9ZVKUHyAXYjwJHb2Sl18WRrwIxH6H4g==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.257.0.tgz", + "integrity": "sha512-Vy/en+llpslHG6WZ2yuN+On6u7p2hROEURwAST/lpReAwBETjbsxylkWvP8maeGKQ54u9uC6lIZAOJut2I3INw==", "optional": true, "requires": { - "@aws-sdk/middleware-stack": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/middleware-stack": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17430,15 +17491,15 @@ } }, "@aws-sdk/token-providers": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.224.0.tgz", - "integrity": "sha512-cswWqA4n1v3JIALYRA8Tq/4uHcFpBg5cgi2khNHBCF/H09Hu3dynGup6Ji8cCzf3fTak4eBQipcWaWUGE0hTGw==", + "version": "3.258.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.258.0.tgz", + "integrity": "sha512-5Lme7XHlBC/iPHQOr5V+LdxHnwg2a7mhRYVy42a8OOKHN2ronDo/Wnujw2s4BOaEnlqS8OSV84bZ0bWxVYuvKw==", "optional": true, "requires": { - "@aws-sdk/client-sso-oidc": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/shared-ini-file-loader": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/client-sso-oidc": "3.258.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/shared-ini-file-loader": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17451,19 +17512,30 @@ } }, "@aws-sdk/types": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.224.0.tgz", - "integrity": "sha512-7te9gRondKPjEebyiPYn59Kr5LZOL48HXC05TzFIN/JXwWPJbQpROBPeKd53V1aRdr3vSQhDY01a+vDOBBrEUQ==", - "optional": true - }, - "@aws-sdk/url-parser": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.224.0.tgz", - "integrity": "sha512-DGQoiOxRVq9eEbmcGF7oz/htcHxFtLlUTzKbaX1gFuh1kmhRQwJIzz6vkrMdxOgPjvUYMJuMEcYnsHolDNWbMg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.257.0.tgz", + "integrity": "sha512-LmqXuBQBGeaGi/3Rp7XiEX1B5IPO2UUfBVvu0wwGqVsmstT0SbOVDZGPmxygACbm64n+PRx3uTSDefRfoiWYZg==", "optional": true, "requires": { - "@aws-sdk/querystring-parser": "3.224.0", - "@aws-sdk/types": "3.224.0", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "optional": true + } + } + }, + "@aws-sdk/url-parser": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.257.0.tgz", + "integrity": "sha512-Qe/AcFe/NFZHa6cN2afXEQn9ehXxh57dWGdRjfjd2lQqNV4WW1R2pl2Tm1ZJ1dwuCNLJi4NHLMk8lrD3QQ8rdg==", + "optional": true, + "requires": { + "@aws-sdk/querystring-parser": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17563,13 +17635,13 @@ } }, "@aws-sdk/util-defaults-mode-browser": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.224.0.tgz", - "integrity": "sha512-umk+A/pmlbuyvDCgdndgJUa0xitcTUF7XoUt/3qDTpNbzR5Dzgdbz74BgXUAEBJ8kPP5pCo2VE1ZD7fxqYU/dQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.257.0.tgz", + "integrity": "sha512-nkfK+MNacVd3Px/fcAvU0hDeh+r7d+RLLt3sJ5Zc0gGd+i3OQEP58V8QzR9PYMvUvSvGQP16fQVQHSbRZtuWyQ==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "bowser": "^2.11.0", "tslib": "^2.3.1" }, @@ -17583,16 +17655,16 @@ } }, "@aws-sdk/util-defaults-mode-node": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.224.0.tgz", - "integrity": "sha512-ZJQJ1McbQ5Rnf5foCFAKHT8Cbwg4IbM+bb6fCkHRJFH9AXEvwc+hPtSYf0KuI7TmoZFj9WG5JOE9Ns6g7lRHSA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.257.0.tgz", + "integrity": "sha512-qsIb7aPbGFcKbBGoAQmlzv1gMcscgbpfrRh4rgNqkJXVbJ52Ql6+vXXfBmlWaBho0fcsNh5XnYu1fzdCuu+N7g==", "optional": true, "requires": { - "@aws-sdk/config-resolver": "3.224.0", - "@aws-sdk/credential-provider-imds": "3.224.0", - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/property-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/config-resolver": "3.257.0", + "@aws-sdk/credential-provider-imds": "3.257.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/property-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17605,12 +17677,12 @@ } }, "@aws-sdk/util-endpoints": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.224.0.tgz", - "integrity": "sha512-k5hHbk7AP/cajw5rF7wmKP39B0WQMFdxrn8dcVOHVK0FZeKbaGCEmOf3AYXrQhswR9Xo815Rqffoml9B1z3bCA==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.257.0.tgz", + "integrity": "sha512-3bvmRn5XGYzPPWjLuvHBKdJOb+fijnb8Ungu9bfXnTYFsng/ndHUWeHC22O/p8w3OWoRYUIMaZHxdxe27BFozg==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17657,9 +17729,9 @@ } }, "@aws-sdk/util-middleware": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.224.0.tgz", - "integrity": "sha512-yA20k9sJdFgs7buVilWExUSJ/Ecr5UJRNQlmgzIpBo9kh5x/N8WyB4kN5MQw5UAA1UZ+j3jmA9+YLFT/mbX3IQ==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.257.0.tgz", + "integrity": "sha512-F9ieon8B8eGVs5tyZtAIG3DZEObDvujkspho0qRbUTHUosM0ylJLsMU800fmC/uRHLRrZvb/RSp59+kNDwSAMw==", "optional": true, "requires": { "tslib": "^2.3.1" @@ -17673,6 +17745,24 @@ } } }, + "@aws-sdk/util-retry": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.257.0.tgz", + "integrity": "sha512-l9TOsOAYtZxwW3q5fQKW4rsD9t2HVaBfQ4zBamHkNTfB4vBVvCnz4oxkvSvA2MlxCA6am+K1K/oj917Tpqk53g==", + "optional": true, + "requires": { + "@aws-sdk/service-error-classification": "3.257.0", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "optional": true + } + } + }, "@aws-sdk/util-uri-escape": { "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", @@ -17691,12 +17781,12 @@ } }, "@aws-sdk/util-user-agent-browser": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.224.0.tgz", - "integrity": "sha512-Dm/30cLUIM1Oam4V//m9sPrXyGOKFslUXP7Mz2AlR1HelUYoreWAIe7Rx44HR6PaXyZmjW5K0ItmcJ7tCgyMpw==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.257.0.tgz", + "integrity": "sha512-YdavWK6/8Cw6mypEgysGGX/dT9p9qnzFbnN5PQsUY+JJk2Nx8fKFydjGiQ+6rWPeW17RAv9mmbboh9uPVWxVlw==", "optional": true, "requires": { - "@aws-sdk/types": "3.224.0", + "@aws-sdk/types": "3.257.0", "bowser": "^2.11.0", "tslib": "^2.3.1" }, @@ -17710,13 +17800,31 @@ } }, "@aws-sdk/util-user-agent-node": { - "version": "3.224.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.224.0.tgz", - "integrity": "sha512-BTj0vPorfT7AJzv6RxJHrnAKdIHwZmGjp5TFFaCYgFkHAPsyCPceSdZUjBRW+HbiwEwKfoHOXLGjnOBSqddZKg==", + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.257.0.tgz", + "integrity": "sha512-fOHh80kiVomUkABmOv3ZxB/SNLnOPAja7uhQmGWfKHXBkcxTVfWO2KBs5vzU5qhVZA0c1zVEvZPcBdRsonnhlw==", "optional": true, "requires": { - "@aws-sdk/node-config-provider": "3.224.0", - "@aws-sdk/types": "3.224.0", + "@aws-sdk/node-config-provider": "3.257.0", + "@aws-sdk/types": "3.257.0", + "tslib": "^2.3.1" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "optional": true + } + } + }, + "@aws-sdk/util-utf8": { + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz", + "integrity": "sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==", + "optional": true, + "requires": { + "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" }, "dependencies": { @@ -17745,24 +17853,6 @@ } } }, - "@aws-sdk/util-utf8-node": { - "version": "3.208.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz", - "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==", - "optional": true, - "requires": { - "@aws-sdk/util-buffer-from": "3.208.0", - "tslib": "^2.3.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "optional": true - } - } - }, "@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -19020,16 +19110,16 @@ "dev": true }, "@jest/console": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", - "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.4.1.tgz", + "integrity": "sha512-m+XpwKSi3PPM9znm5NGS8bBReeAJJpSkL1OuFCqaMaJL2YX9YXLkkI+MBchMPwu+ZuM2rynL51sgfkQteQ1CKQ==", "dev": true, "requires": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", + "jest-message-util": "^29.4.1", + "jest-util": "^29.4.1", "slash": "^3.0.0" }, "dependencies": { @@ -19085,37 +19175,37 @@ } }, "@jest/core": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", - "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.4.1.tgz", + "integrity": "sha512-RXFTohpBqpaTebNdg5l3I5yadnKo9zLBajMT0I38D0tDhreVBYv3fA8kywthI00sWxPztWLD3yjiUkewwu/wKA==", "dev": true, "requires": { - "@jest/console": "^29.3.1", - "@jest/reporters": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/console": "^29.4.1", + "@jest/reporters": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.2.0", - "jest-config": "^29.3.1", - "jest-haste-map": "^29.3.1", - "jest-message-util": "^29.3.1", + "jest-changed-files": "^29.4.0", + "jest-config": "^29.4.1", + "jest-haste-map": "^29.4.1", + "jest-message-util": "^29.4.1", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-resolve-dependencies": "^29.3.1", - "jest-runner": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "jest-watcher": "^29.3.1", + "jest-resolve": "^29.4.1", + "jest-resolve-dependencies": "^29.4.1", + "jest-runner": "^29.4.1", + "jest-runtime": "^29.4.1", + "jest-snapshot": "^29.4.1", + "jest-util": "^29.4.1", + "jest-validate": "^29.4.1", + "jest-watcher": "^29.4.1", "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -19172,73 +19262,73 @@ } }, "@jest/environment": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", - "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.4.1.tgz", + "integrity": "sha512-pJ14dHGSQke7Q3mkL/UZR9ZtTOxqskZaC91NzamEH4dlKRt42W+maRBXiw/LWkdJe+P0f/zDR37+SPMplMRlPg==", "dev": true, "requires": { - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/fake-timers": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", - "jest-mock": "^29.3.1" + "jest-mock": "^29.4.1" } }, "@jest/expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.4.1.tgz", + "integrity": "sha512-ZxKJP5DTUNF2XkpJeZIzvnzF1KkfrhEF6Rz0HGG69fHl6Bgx5/GoU3XyaeFYEjuuKSOOsbqD/k72wFvFxc3iTw==", "dev": true, "requires": { - "expect": "^29.3.1", - "jest-snapshot": "^29.3.1" + "expect": "^29.4.1", + "jest-snapshot": "^29.4.1" } }, "@jest/expect-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", - "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.4.1.tgz", + "integrity": "sha512-w6YJMn5DlzmxjO00i9wu2YSozUYRBhIoJ6nQwpMYcBMtiqMGJm1QBzOf6DDgRao8dbtpDoaqLg6iiQTvv0UHhQ==", "dev": true, "requires": { "jest-get-type": "^29.2.0" } }, "@jest/fake-timers": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", - "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.4.1.tgz", + "integrity": "sha512-/1joI6rfHFmmm39JxNfmNAO3Nwm6Y0VoL5fJDy7H1AtWrD1CgRtqJbN9Ld6rhAkGO76qqp4cwhhxJ9o9kYjQMw==", "dev": true, "requires": { - "@jest/types": "^29.3.1", - "@sinonjs/fake-timers": "^9.1.2", + "@jest/types": "^29.4.1", + "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" + "jest-message-util": "^29.4.1", + "jest-mock": "^29.4.1", + "jest-util": "^29.4.1" } }, "@jest/globals": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", - "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.4.1.tgz", + "integrity": "sha512-znoK2EuFytbHH0ZSf2mQK2K1xtIgmaw4Da21R2C/NE/+NnItm5mPEFQmn8gmF3f0rfOlmZ3Y3bIf7bFj7DHxAA==", "dev": true, "requires": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/types": "^29.3.1", - "jest-mock": "^29.3.1" + "@jest/environment": "^29.4.1", + "@jest/expect": "^29.4.1", + "@jest/types": "^29.4.1", + "jest-mock": "^29.4.1" } }, "@jest/reporters": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", - "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.4.1.tgz", + "integrity": "sha512-AISY5xpt2Xpxj9R6y0RF1+O6GRy9JsGa8+vK23Lmzdy1AYcpQn5ItX79wJSsTmfzPKSAcsY1LNt/8Y5Xe5LOSg==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/console": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@jridgewell/trace-mapping": "^0.3.15", "@types/node": "*", "chalk": "^4.0.0", @@ -19251,9 +19341,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", + "jest-message-util": "^29.4.1", + "jest-util": "^29.4.1", + "jest-worker": "^29.4.1", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -19312,12 +19402,12 @@ } }, "@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.0.tgz", + "integrity": "sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ==", "dev": true, "requires": { - "@sinclair/typebox": "^0.24.1" + "@sinclair/typebox": "^0.25.16" } }, "@jest/source-map": { @@ -19332,50 +19422,50 @@ } }, "@jest/test-result": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", - "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.4.1.tgz", + "integrity": "sha512-WRt29Lwt+hEgfN8QDrXqXGgCTidq1rLyFqmZ4lmJOpVArC8daXrZWkWjiaijQvgd3aOUj2fM8INclKHsQW9YyQ==", "dev": true, "requires": { - "@jest/console": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/console": "^29.4.1", + "@jest/types": "^29.4.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", - "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.4.1.tgz", + "integrity": "sha512-v5qLBNSsM0eHzWLXsQ5fiB65xi49A3ILPSFQKPXzGL4Vyux0DPZAIN7NAFJa9b4BiTDP9MBF/Zqc/QA1vuiJ0w==", "dev": true, "requires": { - "@jest/test-result": "^29.3.1", + "@jest/test-result": "^29.4.1", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", + "jest-haste-map": "^29.4.1", "slash": "^3.0.0" } }, "@jest/transform": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", - "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.4.1.tgz", + "integrity": "sha512-5w6YJrVAtiAgr0phzKjYd83UPbCXsBRTeYI4BXokv9Er9CcrH9hfXL/crCvP2d2nGOcovPUnlYiLPFLZrkG5Hg==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", + "jest-haste-map": "^29.4.1", "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", + "jest-util": "^29.4.1", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" + "write-file-atomic": "^5.0.0" }, "dependencies": { "ansi-styles": { @@ -19436,12 +19526,12 @@ } }, "@jest/types": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", - "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.1.tgz", + "integrity": "sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA==", "dev": true, "requires": { - "@jest/schemas": "^29.0.0", + "@jest/schemas": "^29.4.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -19560,42 +19650,42 @@ } }, "@remix-run/router": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.2.1.tgz", - "integrity": "sha512-XiY0IsyHR+DXYS5vBxpoBe/8veTeoRpMHP+vDosLZxL5bnpetzI0igkxkLZS235ldLzyfkxF+2divEwWHP3vMQ==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.3.1.tgz", + "integrity": "sha512-+eun1Wtf72RNRSqgU7qM2AMX/oHp+dnx7BHk1qhK5ZHzdHTUU4LA1mGG1vT+jMc8sbhG3orvsfOmryjzx2PzQw==" }, "@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "version": "0.25.21", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", + "integrity": "sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==", "dev": true }, "@sinonjs/commons": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", - "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^2.0.0" } }, "@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", "dev": true, "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" @@ -19621,18 +19711,18 @@ } }, "@types/babel__traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", - "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, "requires": { "@babel/types": "^7.3.0" } }, "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dev": true, "requires": { "@types/node": "*" @@ -19668,9 +19758,9 @@ "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" }, "@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "dev": true }, "@types/stack-utils": { @@ -19694,9 +19784,9 @@ } }, "@types/yargs": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", - "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "version": "17.0.20", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.20.tgz", + "integrity": "sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -19960,15 +20050,15 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "babel-jest": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", - "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.4.1.tgz", + "integrity": "sha512-xBZa/pLSsF/1sNpkgsiT3CmY7zV1kAsZ9OxxtrFqYucnOuRftXAfcJqcDVyOPeN4lttWTwhLdu0T9f8uvoPEUg==", "dev": true, "requires": { - "@jest/transform": "^29.3.1", + "@jest/transform": "^29.4.1", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.2.0", + "babel-preset-jest": "^29.4.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -20039,9 +20129,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", - "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz", + "integrity": "sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -20098,12 +20188,12 @@ } }, "babel-preset-jest": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", - "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz", + "integrity": "sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^29.2.0", + "babel-plugin-jest-hoist": "^29.4.0", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -20512,9 +20602,9 @@ } }, "bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", "requires": { "buffer": "^5.6.0" } @@ -20642,9 +20732,9 @@ } }, "ci-info": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", - "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "dev": true }, "cipher-base": { @@ -20857,9 +20947,9 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" }, "copy-anything": { "version": "2.0.6", @@ -21344,9 +21434,9 @@ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "eslint": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", - "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.4.1", @@ -21463,9 +21553,9 @@ } }, "eslint-plugin-react": { - "version": "7.31.11", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", - "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", "dev": true, "requires": { "array-includes": "^3.1.6", @@ -21480,7 +21570,7 @@ "object.hasown": "^1.1.2", "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", + "resolve": "^2.0.0-next.4", "semver": "^6.3.0", "string.prototype.matchall": "^4.0.8" }, @@ -21658,16 +21748,16 @@ } }, "expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.4.1.tgz", + "integrity": "sha512-OKrGESHOaMxK3b6zxIq9SOW8kEXztKff/Dvg88j4xIJxur1hspEbedVkR3GpHe5LO+WB2Qw7OWN0RMTdp6as5A==", "dev": true, "requires": { - "@jest/expect-utils": "^29.3.1", + "@jest/expect-utils": "^29.4.1", "jest-get-type": "^29.2.0", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1" + "jest-matcher-utils": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-util": "^29.4.1" } }, "express": { @@ -22839,21 +22929,21 @@ } }, "jest": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", - "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.4.1.tgz", + "integrity": "sha512-cknimw7gAXPDOmj0QqztlxVtBVCw2lYY9CeIE5N6kD+kET1H4H79HSNISJmijb1HF+qk+G+ploJgiDi5k/fRlg==", "dev": true, "requires": { - "@jest/core": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/core": "^29.4.1", + "@jest/types": "^29.4.1", "import-local": "^3.0.2", - "jest-cli": "^29.3.1" + "jest-cli": "^29.4.1" } }, "jest-changed-files": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", - "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", + "version": "29.4.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.4.0.tgz", + "integrity": "sha512-rnI1oPxgFghoz32Y8eZsGJMjW54UlqT17ycQeCEktcxxwqqKdlj9afl8LNeO0Pbu+h2JQHThQP0BzS67eTRx4w==", "dev": true, "requires": { "execa": "^5.0.0", @@ -22861,28 +22951,28 @@ } }, "jest-circus": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", - "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.4.1.tgz", + "integrity": "sha512-v02NuL5crMNY4CGPHBEflLzl4v91NFb85a+dH9a1pUNx6Xjggrd8l9pPy4LZ1VYNRXlb+f65+7O/MSIbLir6pA==", "dev": true, "requires": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/environment": "^29.4.1", + "@jest/expect": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", + "jest-each": "^29.4.1", + "jest-matcher-utils": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-runtime": "^29.4.1", + "jest-snapshot": "^29.4.1", + "jest-util": "^29.4.1", "p-limit": "^3.1.0", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -22939,21 +23029,21 @@ } }, "jest-cli": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", - "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.4.1.tgz", + "integrity": "sha512-jz7GDIhtxQ37M+9dlbv5K+/FVcIo1O/b1sX3cJgzlQUf/3VG25nvuWzlDC4F1FLLzUThJeWLu8I7JF9eWpuURQ==", "dev": true, "requires": { - "@jest/core": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/core": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/types": "^29.4.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", + "jest-config": "^29.4.1", + "jest-util": "^29.4.1", + "jest-validate": "^29.4.1", "prompts": "^2.0.1", "yargs": "^17.3.1" }, @@ -23010,31 +23100,31 @@ } }, "jest-config": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", - "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.4.1.tgz", + "integrity": "sha512-g7p3q4NuXiM4hrS4XFATTkd+2z0Ml2RhFmFPM8c3WyKwVDNszbl4E7cV7WIx1YZeqqCtqbtTtZhGZWJlJqngzg==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.3.1", - "@jest/types": "^29.3.1", - "babel-jest": "^29.3.1", + "@jest/test-sequencer": "^29.4.1", + "@jest/types": "^29.4.1", + "babel-jest": "^29.4.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.3.1", - "jest-environment-node": "^29.3.1", + "jest-circus": "^29.4.1", + "jest-environment-node": "^29.4.1", "jest-get-type": "^29.2.0", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-runner": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", + "jest-resolve": "^29.4.1", + "jest-runner": "^29.4.1", + "jest-util": "^29.4.1", + "jest-validate": "^29.4.1", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -23091,15 +23181,15 @@ } }, "jest-diff": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", - "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.4.1.tgz", + "integrity": "sha512-uazdl2g331iY56CEyfbNA0Ut7Mn2ulAG5vUaEHXycf1L6IPyuImIxSz4F0VYBKi7LYIuxOwTZzK3wh5jHzASMw==", "dev": true, "requires": { "chalk": "^4.0.0", "diff-sequences": "^29.3.1", "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" + "pretty-format": "^29.4.1" }, "dependencies": { "ansi-styles": { @@ -23163,16 +23253,16 @@ } }, "jest-each": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", - "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.4.1.tgz", + "integrity": "sha512-QlYFiX3llJMWUV0BtWht/esGEz9w+0i7BHwODKCze7YzZzizgExB9MOfiivF/vVT0GSQ8wXLhvHXh3x2fVD4QQ==", "dev": true, "requires": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "chalk": "^4.0.0", "jest-get-type": "^29.2.0", - "jest-util": "^29.3.1", - "pretty-format": "^29.3.1" + "jest-util": "^29.4.1", + "pretty-format": "^29.4.1" }, "dependencies": { "ansi-styles": { @@ -23227,17 +23317,17 @@ } }, "jest-environment-node": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", - "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.4.1.tgz", + "integrity": "sha512-x/H2kdVgxSkxWAIlIh9MfMuBa0hZySmfsC5lCsWmWr6tZySP44ediRKDUiNggX/eHLH7Cd5ZN10Rw+XF5tXsqg==", "dev": true, "requires": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/environment": "^29.4.1", + "@jest/fake-timers": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" + "jest-mock": "^29.4.1", + "jest-util": "^29.4.1" } }, "jest-get-type": { @@ -23247,12 +23337,12 @@ "dev": true }, "jest-haste-map": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", - "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.4.1.tgz", + "integrity": "sha512-imTjcgfVVTvg02khXL11NNLTx9ZaofbAWhilrMg/G8dIkp+HYCswhxf0xxJwBkfhWb3e8dwbjuWburvxmcr58w==", "dev": true, "requires": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", @@ -23260,32 +23350,32 @@ "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", + "jest-util": "^29.4.1", + "jest-worker": "^29.4.1", "micromatch": "^4.0.4", "walker": "^1.0.8" } }, "jest-leak-detector": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", - "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.4.1.tgz", + "integrity": "sha512-akpZv7TPyGMnH2RimOCgy+hPmWZf55EyFUvymQ4LMsQP8xSPlZumCPtXGoDhFNhUE2039RApZkTQDKU79p/FiQ==", "dev": true, "requires": { "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" + "pretty-format": "^29.4.1" } }, "jest-matcher-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", - "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.4.1.tgz", + "integrity": "sha512-k5h0u8V4nAEy6lSACepxL/rw78FLDkBnXhZVgFneVpnJONhb2DhZj/Gv4eNe+1XqQ5IhgUcqj745UwH0HJmMnA==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^29.3.1", + "jest-diff": "^29.4.1", "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" + "pretty-format": "^29.4.1" }, "dependencies": { "ansi-styles": { @@ -23340,18 +23430,18 @@ } }, "jest-message-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", - "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.1.tgz", + "integrity": "sha512-H4/I0cXUaLeCw6FM+i4AwCnOwHRgitdaUFOdm49022YD5nfyr8C/DrbXOBEyJaj+w/y0gGJ57klssOaUiLLQGQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -23408,20 +23498,20 @@ } }, "jest-mock": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", - "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.4.1.tgz", + "integrity": "sha512-MwA4hQ7zBOcgVCVnsM8TzaFLVUD/pFWTfbkY953Y81L5ret3GFRZtmPmRFAjKQSdCKoJvvqOu6Bvfpqlwwb0dQ==", "dev": true, "requires": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/node": "*", - "jest-util": "^29.3.1" + "jest-util": "^29.4.1" } }, "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "requires": {} }, @@ -23432,19 +23522,19 @@ "dev": true }, "jest-resolve": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", - "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.4.1.tgz", + "integrity": "sha512-j/ZFNV2lm9IJ2wmlq1uYK0Y/1PiyDq9g4HEGsNTNr3viRbJdV+8Lf1SXIiLZXFvyiisu0qUyIXGBnw+OKWkJwQ==", "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", + "jest-haste-map": "^29.4.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", + "jest-util": "^29.4.1", + "jest-validate": "^29.4.1", "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", + "resolve.exports": "^2.0.0", "slash": "^3.0.0" }, "dependencies": { @@ -23500,40 +23590,40 @@ } }, "jest-resolve-dependencies": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", - "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.1.tgz", + "integrity": "sha512-Y3QG3M1ncAMxfjbYgtqNXC5B595zmB6e//p/qpA/58JkQXu/IpLDoLeOa8YoYfsSglBKQQzNUqtfGJJT/qLmJg==", "dev": true, "requires": { "jest-regex-util": "^29.2.0", - "jest-snapshot": "^29.3.1" + "jest-snapshot": "^29.4.1" } }, "jest-runner": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", - "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.4.1.tgz", + "integrity": "sha512-8d6XXXi7GtHmsHrnaqBKWxjKb166Eyj/ksSaUYdcBK09VbjPwIgWov1VwSmtupCIz8q1Xv4Qkzt/BTo3ZqiCeg==", "dev": true, "requires": { - "@jest/console": "^29.3.1", - "@jest/environment": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/console": "^29.4.1", + "@jest/environment": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.2.0", - "jest-environment-node": "^29.3.1", - "jest-haste-map": "^29.3.1", - "jest-leak-detector": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-resolve": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-util": "^29.3.1", - "jest-watcher": "^29.3.1", - "jest-worker": "^29.3.1", + "jest-environment-node": "^29.4.1", + "jest-haste-map": "^29.4.1", + "jest-leak-detector": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-resolve": "^29.4.1", + "jest-runtime": "^29.4.1", + "jest-util": "^29.4.1", + "jest-watcher": "^29.4.1", + "jest-worker": "^29.4.1", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -23590,31 +23680,32 @@ } }, "jest-runtime": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", - "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.4.1.tgz", + "integrity": "sha512-UXTMU9uKu2GjYwTtoAw5rn4STxWw/nadOfW7v1sx6LaJYa3V/iymdCLQM6xy3+7C6mY8GfX22vKpgxY171UIoA==", "dev": true, "requires": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/globals": "^29.3.1", + "@jest/environment": "^29.4.1", + "@jest/fake-timers": "^29.4.1", + "@jest/globals": "^29.4.1", "@jest/source-map": "^29.2.0", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/test-result": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", + "jest-haste-map": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-mock": "^29.4.1", "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", + "jest-resolve": "^29.4.1", + "jest-snapshot": "^29.4.1", + "jest-util": "^29.4.1", + "semver": "^7.3.5", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -23659,6 +23750,15 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23671,9 +23771,9 @@ } }, "jest-snapshot": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", - "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.4.1.tgz", + "integrity": "sha512-l4iV8EjGgQWVz3ee/LR9sULDk2pCkqb71bjvlqn+qp90lFwpnulHj4ZBT8nm1hA1C5wowXLc7MGnw321u0tsYA==", "dev": true, "requires": { "@babel/core": "^7.11.6", @@ -23682,23 +23782,23 @@ "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/expect-utils": "^29.4.1", + "@jest/transform": "^29.4.1", + "@jest/types": "^29.4.1", "@types/babel__traverse": "^7.0.6", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.3.1", + "expect": "^29.4.1", "graceful-fs": "^4.2.9", - "jest-diff": "^29.3.1", + "jest-diff": "^29.4.1", "jest-get-type": "^29.2.0", - "jest-haste-map": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", + "jest-haste-map": "^29.4.1", + "jest-matcher-utils": "^29.4.1", + "jest-message-util": "^29.4.1", + "jest-util": "^29.4.1", "natural-compare": "^1.4.0", - "pretty-format": "^29.3.1", + "pretty-format": "^29.4.1", "semver": "^7.3.5" }, "dependencies": { @@ -23763,12 +23863,12 @@ } }, "jest-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", - "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.1.tgz", + "integrity": "sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ==", "dev": true, "requires": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -23828,17 +23928,17 @@ } }, "jest-validate": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", - "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.4.1.tgz", + "integrity": "sha512-qNZXcZQdIQx4SfUB/atWnI4/I2HUvhz8ajOSYUu40CSmf9U5emil8EDHgE7M+3j9/pavtk3knlZBDsgFvv/SWw==", "dev": true, "requires": { - "@jest/types": "^29.3.1", + "@jest/types": "^29.4.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.2.0", "leven": "^3.1.0", - "pretty-format": "^29.3.1" + "pretty-format": "^29.4.1" }, "dependencies": { "ansi-styles": { @@ -23899,18 +23999,18 @@ } }, "jest-watcher": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", - "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.4.1.tgz", + "integrity": "sha512-vFOzflGFs27nU6h8dpnVRER3O2rFtL+VMEwnG0H3KLHcllLsU8y9DchSh0AL/Rg5nN1/wSiQ+P4ByMGpuybaVw==", "dev": true, "requires": { - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", + "@jest/test-result": "^29.4.1", + "@jest/types": "^29.4.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.3.1", + "jest-util": "^29.4.1", "string-length": "^4.0.1" }, "dependencies": { @@ -23966,13 +24066,13 @@ } }, "jest-worker": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", - "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.4.1.tgz", + "integrity": "sha512-O9doU/S1EBe+yp/mstQ0VpPwpv0Clgn68TkNwGxL6/usX/KUW9Arnn4ag8C3jc6qHcXznhsT5Na1liYzAsuAbQ==", "dev": true, "requires": { "@types/node": "*", - "jest-util": "^29.3.1", + "jest-util": "^29.4.1", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -24297,9 +24397,9 @@ } }, "marked": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.5.tgz", - "integrity": "sha512-jPueVhumq7idETHkb203WDD4fMA3yV9emQ5vLwop58lu8bTclMghBWcYAavlDqIEMaisADinV1TooIFCfqOsYQ==" + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", + "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==" }, "marked-extended-tables": { "version": "1.0.5", @@ -24512,9 +24612,9 @@ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, "mongodb": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.12.1.tgz", - "integrity": "sha512-koT87tecZmxPKtxRQD8hCKfn+ockEL2xBiUvx3isQGI6mFmagWt4f4AyCE9J4sKepnLhMacoCTQQA6SLAI2L6w==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.13.0.tgz", + "integrity": "sha512-+taZ/bV8d1pYuHL4U+gSwkhmDrwkWbH1l4aah4YpmpscMwgFBkufIKxgP/G7m87/NUuQzc2Z75ZTI7ZOyqZLbw==", "requires": { "@aws-sdk/credential-providers": "^3.186.0", "bson": "^4.7.0", @@ -24533,13 +24633,13 @@ } }, "mongoose": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.8.3.tgz", - "integrity": "sha512-qrVWefJK+wFNBH0ALV+oiyJ+FN42O/BqvHFmlFJJ2LKuNmQEOE0JV8FCxnZqtanwbHs4i+k/SkjhtC+C01haaw==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.9.0.tgz", + "integrity": "sha512-5tu6+trwjk5TIH6b6iYgAwmzZ0RNOxFoqXQb9h21Oi45DeM1rWM/niHxJ4ROqBISDfQMwRvLSABHTsyn3AzoFQ==", "requires": { "bson": "^4.7.0", "kareem": "2.5.1", - "mongodb": "4.12.1", + "mongodb": "4.13.0", "mpath": "0.9.0", "mquery": "4.0.3", "ms": "2.1.3", @@ -26775,12 +26875,12 @@ "dev": true }, "pretty-format": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", - "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.1.tgz", + "integrity": "sha512-dt/Z761JUVsrIKaY215o1xQJBGlSmTx/h4cSqXqjHLnU1+Kt+mavVE7UgqJJO5ukx5HjSswHfmXz4LjS2oIJfg==", "dev": true, "requires": { - "@jest/schemas": "^29.0.0", + "@jest/schemas": "^29.4.0", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -26964,20 +27064,20 @@ "dev": true }, "react-router": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.6.1.tgz", - "integrity": "sha512-YkvlYRusnI/IN0kDtosUCgxqHeulN5je+ew8W+iA1VvFhf86kA+JEI/X/8NqYcr11hCDDp906S+SGMpBheNeYQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.8.0.tgz", + "integrity": "sha512-760bk7y3QwabduExtudhWbd88IBbuD1YfwzpuDUAlJUJ7laIIcqhMvdhSVh1Fur1PE8cGl84L0dxhR3/gvHF7A==", "requires": { - "@remix-run/router": "1.2.1" + "@remix-run/router": "1.3.1" } }, "react-router-dom": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.6.1.tgz", - "integrity": "sha512-u+8BKUtelStKbZD5UcY0NY90WOzktrkJJhyhNg7L0APn9t1qJNLowzrM9CHdpB6+rcPt6qQrlkIXsTvhuXP68g==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.8.0.tgz", + "integrity": "sha512-hQouduSTywGJndE86CXJ2h7YEy4HYC6C/uh19etM+79FfQ6cFFFHnHyDlzO4Pq0eBUI96E4qVE5yUjA00yJZGQ==", "requires": { - "@remix-run/router": "1.2.1", - "react-router": "6.6.1" + "@remix-run/router": "1.3.1", + "react-router": "6.8.0" } }, "read-only-stream": { @@ -27198,9 +27298,9 @@ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" }, "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.0.tgz", + "integrity": "sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==", "dev": true }, "ret": { @@ -28915,9 +29015,9 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", + "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", "dev": true, "requires": { "imurmurhash": "^0.1.4", diff --git a/package.json b/package.json index 5d630bf2a..558d10dfa 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.5.0", + "version": "3.6.0", "engines": { "node": "16.11.x" }, @@ -51,10 +51,10 @@ "lines" : 25 }, "server/homebrew.api.js" : { - "statements" : 71, - "branches" : 54, - "functions" : 66, - "lines" : 73 + "statements" : 65, + "branches" : 50, + "functions" : 60, + "lines" : 70 } } }, @@ -87,26 +87,26 @@ "jwt-simple": "^0.5.6", "less": "^3.13.1", "lodash": "^4.17.21", - "marked": "4.2.5", + "marked": "4.2.12", "marked-extended-tables": "^1.0.5", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.29.4", - "mongoose": "^6.8.3", + "mongoose": "^6.9.0", "nanoid": "3.3.4", "nconf": "^0.12.0", "npm": "^8.10.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-frame-component": "4.1.3", - "react-router-dom": "6.6.1", + "react-router-dom": "6.8.0", "sanitize-filename": "1.6.3", "superagent": "^6.1.0", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" }, "devDependencies": { - "eslint": "^8.31.0", - "eslint-plugin-react": "^7.31.11", - "jest": "^29.2.2", + "eslint": "^8.33.0", + "eslint-plugin-react": "^7.32.2", + "jest": "^29.4.1", "supertest": "^6.3.3" } } diff --git a/scripts/buildHomebrew.js b/scripts/buildHomebrew.js index ed9afb58b..a6120b144 100644 --- a/scripts/buildHomebrew.js +++ b/scripts/buildHomebrew.js @@ -20,7 +20,8 @@ const transforms = { }; const build = async ({ bundle, render, ssr })=>{ - const css = await lessTransform.generate({ paths: './shared' }); + let css = await lessTransform.generate({ paths: './shared' }); + css = `@layer bundle {\n${css}\n}`; await fs.outputFile('./build/homebrew/bundle.css', css); await fs.outputFile('./build/homebrew/bundle.js', bundle); await fs.outputFile('./build/homebrew/ssr.js', ssr); @@ -72,6 +73,7 @@ fs.emptyDirSync('./build'); themeData.path = dir; themes.V3[dir] = (themeData); fs.copy(`./themes/V3/${dir}/dropdownTexture.png`, `./build/themes/V3/${dir}/dropdownTexture.png`); + fs.copy(`./themes/V3/${dir}/dropdownPreview.png`, `./build/themes/V3/${dir}/dropdownPreview.png`); const src = `./themes/V3/${dir}/style.less`; ((outputDirectory)=>{ less.render(fs.readFileSync(src).toString(), { @@ -95,6 +97,7 @@ fs.emptyDirSync('./build'); // Move assets await fs.copy('./themes/fonts', './build/fonts'); await fs.copy('./themes/assets', './build/assets'); + await fs.copy('./client/icons', './build/icons'); //v==----------------------------- BUNDLE PACKAGES --------------------------------==v// diff --git a/server/app.js b/server/app.js index de7586209..59aac2d9b 100644 --- a/server/app.js +++ b/server/app.js @@ -294,7 +294,15 @@ app.get('/edit/:id', asyncHandler(getBrew('edit')), (req, res, next)=>{ app.get('/new/:id', asyncHandler(getBrew('share')), (req, res, next)=>{ sanitizeBrew(req.brew, 'share'); splitTextStyleAndMetadata(req.brew); - req.brew.title = `CLONE - ${req.brew.title}`; + const brew = { + shareId : req.brew.shareId, + title : `CLONE - ${req.brew.title}`, + text : req.brew.text, + style : req.brew.style, + renderer : req.brew.renderer, + theme : req.brew.theme + }; + req.brew = _.defaults(brew, DEFAULT_BREW); req.ogMeta = { ...defaultMetaTags, title : 'New', diff --git a/server/brewDefaults.js b/server/brewDefaults.js index 092f7070a..30798cea7 100644 --- a/server/brewDefaults.js +++ b/server/brewDefaults.js @@ -16,6 +16,7 @@ const DEFAULT_BREW = { tags : [], systems : [], thumbnail : '', + views : 0, published : false, pageCount : 1, gDrive : false, diff --git a/server/homebrew.api.js b/server/homebrew.api.js index 0d3f87a20..f531bdcf9 100644 --- a/server/homebrew.api.js +++ b/server/homebrew.api.js @@ -338,6 +338,7 @@ If you believe you should have access to this brew, ask the file owner to invite } }; +router.use('/api', require('./middleware/check-client-version.js')); router.post('/api', asyncHandler(api.newBrew)); router.put('/api/:id', asyncHandler(api.getBrew('edit', true)), asyncHandler(api.updateBrew)); router.put('/api/update/:id', asyncHandler(api.getBrew('edit', true)), asyncHandler(api.updateBrew)); diff --git a/server/homebrew.api.spec.js b/server/homebrew.api.spec.js index 71d9bdcc7..22f80155c 100644 --- a/server/homebrew.api.spec.js +++ b/server/homebrew.api.spec.js @@ -71,7 +71,8 @@ describe('Tests for api', ()=>{ lastViewed : new Date(), version : 1, pageCount : 1, - textBin : '' + textBin : '', + views : 0 }; googleBrew = { ...hbBrew, @@ -261,7 +262,8 @@ If you believe you should have access to this brew, ask the file owner to invite gDrive : false, style : undefined, trashed : false, - updatedAt : undefined + updatedAt : undefined, + views : 0 }); expect(next).toHaveBeenCalled(); expect(api.getId).toHaveBeenCalledWith(req); @@ -452,7 +454,8 @@ brew`); thumbnail : '', title : 'asdf', trashed : false, - updatedAt : undefined + updatedAt : undefined, + views : 0 }); }); @@ -510,7 +513,8 @@ brew`); thumbnail : '', title : 'asdf', trashed : false, - updatedAt : undefined + updatedAt : undefined, + views : 0 }); }); diff --git a/server/middleware/check-client-version.js b/server/middleware/check-client-version.js new file mode 100644 index 000000000..e9caf6eff --- /dev/null +++ b/server/middleware/check-client-version.js @@ -0,0 +1,12 @@ +module.exports = (req, res, next)=>{ + const userVersion = req.get('Homebrewery-Version'); + const version = require('../../package.json').version; + + if(userVersion != version) { + return res.status(412).send({ + message : `Client version ${userVersion} is out of date. Please save your changes elsewhere and refresh to pick up client version ${version}.` + }); + } + + next(); +}; diff --git a/themes/Legacy/5ePHB/style.less b/themes/Legacy/5ePHB/style.less index 2793958fe..2544ff77d 100644 --- a/themes/Legacy/5ePHB/style.less +++ b/themes/Legacy/5ePHB/style.less @@ -1,497 +1,499 @@ -@import (less) './themes/fonts/5e legacy/fonts.less'; -@import (less) './themes/assets/assets.less'; -@import (less) './themes/phb.depricated.less'; -//Colors -@background : #EEE5CE; // Light parchment -@noteGreen : #e0e5c1; // Pastel green -@headerUnderline : #c9ad6a; // Gold -@horizontalRule : #9c2b1b; // Maroon -@headerText : #58180D; // Dark maroon -@monsterStatBackground : #FDF1DC; // Lighter parchment -@captionText : #766649; // Brown -@page { margin: 0; } -body { - counter-reset : phb-page-numbers; -} -*{ - -webkit-print-color-adjust : exact; -} -.useSansSerif(){ - font-family : ScalySans; - em{ +@layer Legacy_5ePHB { + @import (less) './themes/fonts/5e legacy/fonts.less'; + @import (less) './themes/assets/assets.less'; + @import (less) './themes/phb.depricated.less'; + //Colors + @background : #EEE5CE; // Light parchment + @noteGreen : #e0e5c1; // Pastel green + @headerUnderline : #c9ad6a; // Gold + @horizontalRule : #9c2b1b; // Maroon + @headerText : #58180D; // Dark maroon + @monsterStatBackground : #FDF1DC; // Lighter parchment + @captionText : #766649; // Brown + @page { margin: 0; } + body { + counter-reset : phb-page-numbers; + } + *{ + -webkit-print-color-adjust : exact; + } + .useSansSerif(){ font-family : ScalySans; - font-style : italic; - } - strong{ - font-family : ScalySans; - font-weight : 800; - letter-spacing : -0.02em; - } -} -.useColumns(@multiplier : 1){ - column-count : 2; - column-fill : auto; - column-gap : 1cm; - column-width : 8cm * @multiplier; - -webkit-column-count : 2; - -moz-column-count : 2; - -webkit-column-width : 8cm * @multiplier; - -moz-column-width : 8cm * @multiplier; - -webkit-column-gap : 1cm; - -moz-column-gap : 1cm; -} -.phb{ - .useColumns(); - counter-increment : phb-page-numbers; - position : relative; - z-index : 15; - box-sizing : border-box; - overflow : hidden; - height : 279.4mm; - width : 215.9mm; - padding : 1.0cm 1.7cm; - padding-bottom : 1.5cm; - background-color : @background; - background-image : @backgroundImage; - font-family : BookSanity; - font-size : 0.317cm; - text-rendering : optimizeLegibility; - page-break-before : always; - page-break-after : always; - contain : size; - //***************************** - // * BASE - // *****************************/ - p{ - padding-bottom : 0.8em; - line-height : 1.269em; - &+p{ - margin-top : -0.8em; + em{ + font-family : ScalySans; + font-style : italic; + } + strong{ + font-family : ScalySans; + font-weight : 800; + letter-spacing : -0.02em; } } - ul{ - margin-bottom : 0.8em; - padding-left : 1.4em; - line-height : 1.269em; - list-style-position : outside; - list-style-type : disc; + .useColumns(@multiplier : 1){ + column-count : 2; + column-fill : auto; + column-gap : 1cm; + column-width : 8cm * @multiplier; + -webkit-column-count : 2; + -moz-column-count : 2; + -webkit-column-width : 8cm * @multiplier; + -moz-column-width : 8cm * @multiplier; + -webkit-column-gap : 1cm; + -moz-column-gap : 1cm; } - ol{ - margin-bottom : 0.8em; - padding-left : 1.4em; - line-height : 1.269em; - list-style-position : outside; - list-style-type : decimal; - } - //Indents after p or lists - p+p, ul+p, ol+p{ - text-indent : 1em; - } - img{ - z-index : -1; - } - strong{ - font-weight : bold; - letter-spacing : 0.03em; - } - em{ - font-style : italic; - } - sup{ - vertical-align : super; - font-size : smaller; - line-height : 0; - } - sub{ - vertical-align : sub; - font-size : smaller; - line-height : 0; - } - //***************************** - // * HEADERS - // *****************************/ - h1,h2,h3,h4{ - margin-top : 0.2em; - margin-bottom : 0.2em; - font-family : MrJeeves; - font-weight : 800; - color : @headerText; - } - h1{ - column-span : all; - font-size : 0.987cm; - -webkit-column-span : all; - -moz-column-span : all; - &+p::first-letter{ - float : left; - font-family : Solberry; - font-size : 10em; - color : #222; - line-height : 0.795em; - } - } - h2{ - font-size : 0.705cm; - } - h3{ - font-size : 0.529cm; - border-bottom : 2px solid @headerUnderline; - } - h4{ - margin-bottom : 0.00em; - font-size : 0.458cm; - } - h5{ - margin-bottom : 0.2em; - font-family : ScalySansSmallCaps; - font-size : 0.423cm; - font-weight : 900; - } - //***************************** - // * TABLE - // *****************************/ - table{ - .useSansSerif(); - width : 100%; - margin-bottom : 1em; - font-size : 10pt; - thead{ - display: table-row-group; - font-weight : 800; - th{ - vertical-align : bottom; - padding-bottom : 0.3em; - padding-right : 0.1em; - padding-left : 0.1em; - } - } - tbody{ - tr{ - td{ - padding : 0.3em 0.1em; - } - &:nth-child(odd){ - background-color : @noteGreen; - } - } - } - } - //***************************** - // * NOTE - // *****************************/ - blockquote{ - .useSansSerif(); - box-sizing : border-box; - margin-bottom : 1em; - padding : 5px 10px; - background-color : @noteGreen; - border-style : solid; - border-width : 11px; - border-image : @noteBorderImage 11; - border-image-outset : 9px 0px; - box-shadow : 1px 4px 14px #888; - p, ul{ - font-size : 0.352cm; - line-height : 1.083em; - } - } - //If a note starts a column, give it space at the top to render border - pre+blockquote, h2+blockquote, h3+blockquote, h4+blockquote, h5+blockquote { - margin-top : 13px; - } - //***************************** - // * MONSTER STAT BLOCK - // *****************************/ - hr+blockquote{ - position : relative; - padding-top : 15px; - background-color : @monsterStatBackground; - border-style : solid; - border-width : 10px; - border-image : @monsterBorderImageLegacy 10; - h2{ - margin-top : -8px; - margin-bottom : 0px; + .phb{ + .useColumns(); + counter-increment : phb-page-numbers; + position : relative; + z-index : 15; + box-sizing : border-box; + overflow : hidden; + height : 279.4mm; + width : 215.9mm; + padding : 1.0cm 1.7cm; + padding-bottom : 1.5cm; + background-color : @background; + background-image : @backgroundImage; + font-family : BookSanity; + font-size : 0.317cm; + text-rendering : optimizeLegibility; + page-break-before : always; + page-break-after : always; + contain : size; + //***************************** + // * BASE + // *****************************/ + p{ + padding-bottom : 0.8em; + line-height : 1.269em; &+p{ - padding-bottom : 0px; + margin-top : -0.8em; } } - h3{ - font-family : ScalySans; - font-weight : 400; - border-bottom : 1px solid @headerText; - } - hr+ul{ - color : @headerText; - } ul{ - .useSansSerif(); - padding-left : 1em; - font-size : 0.352cm; + margin-bottom : 0.8em; + padding-left : 1.4em; + line-height : 1.269em; + list-style-position : outside; + list-style-type : disc; } - // Monster Ability table - hr+table{ - margin : 0; - background-color : transparent; - border-style : none; - border-image : none; + ol{ + margin-bottom : 0.8em; + padding-left : 1.4em; + line-height : 1.269em; + list-style-position : outside; + list-style-type : decimal; + } + //Indents after p or lists + p+p, ul+p, ol+p{ + text-indent : 1em; + } + img{ + z-index : -1; + } + strong{ + font-weight : bold; + letter-spacing : 0.03em; + } + em{ + font-style : italic; + } + sup{ + vertical-align : super; + font-size : smaller; + line-height : 0; + } + sub{ + vertical-align : sub; + font-size : smaller; + line-height : 0; + } + //***************************** + // * HEADERS + // *****************************/ + h1,h2,h3,h4{ + margin-top : 0.2em; + margin-bottom : 0.2em; + font-family : MrJeeves; + font-weight : 800; + color : @headerText; + } + h1{ + column-span : all; + font-size : 0.987cm; + -webkit-column-span : all; + -moz-column-span : all; + &+p::first-letter{ + float : left; + font-family : Solberry; + font-size : 10em; + color : #222; + line-height : 0.795em; + } + } + h2{ + font-size : 0.705cm; + } + h3{ + font-size : 0.529cm; + border-bottom : 2px solid @headerUnderline; + } + h4{ + margin-bottom : 0.00em; + font-size : 0.458cm; + } + h5{ + margin-bottom : 0.2em; + font-family : ScalySansSmallCaps; + font-size : 0.423cm; + font-weight : 900; + } + //***************************** + // * TABLE + // *****************************/ + table{ + .useSansSerif(); + width : 100%; + margin-bottom : 1em; + font-size : 10pt; + thead{ + display: table-row-group; + font-weight : 800; + th{ + vertical-align : bottom; + padding-bottom : 0.3em; + padding-right : 0.1em; + padding-left : 0.1em; + } + } tbody{ - tr:nth-child(odd), tr:nth-child(even){ - background-color : transparent; + tr{ + td{ + padding : 0.3em 0.1em; + } + &:nth-child(odd){ + background-color : @noteGreen; + } } } } - table{ - color : @headerText; + //***************************** + // * NOTE + // *****************************/ + blockquote{ + .useSansSerif(); + box-sizing : border-box; + margin-bottom : 1em; + padding : 5px 10px; + background-color : @noteGreen; + border-style : solid; + border-width : 11px; + border-image : @noteBorderImage 11; + border-image-outset : 9px 0px; + box-shadow : 1px 4px 14px #888; + p, ul{ + font-size : 0.352cm; + line-height : 1.083em; + } } - p+p{ - margin-top : 0em; - padding-bottom : 0.5em; - text-indent : 0em; + //If a note starts a column, give it space at the top to render border + pre+blockquote, h2+blockquote, h3+blockquote, h4+blockquote, h5+blockquote { + margin-top : 13px; } - //Triangle dividers - hr{ - visibility : visible; - height : 6px; - margin : 4px 0px; - background-image : @redTriangleImage; - background-size : 100% 100%; - border : none; + //***************************** + // * MONSTER STAT BLOCK + // *****************************/ + hr+blockquote{ + position : relative; + padding-top : 15px; + background-color : @monsterStatBackground; + border-style : solid; + border-width : 10px; + border-image : @monsterBorderImageLegacy 10; + h2{ + margin-top : -8px; + margin-bottom : 0px; + &+p{ + padding-bottom : 0px; + } + } + h3{ + font-family : ScalySans; + font-weight : 400; + border-bottom : 1px solid @headerText; + } + hr+ul{ + color : @headerText; + } + ul{ + .useSansSerif(); + padding-left : 1em; + font-size : 0.352cm; + } + // Monster Ability table + hr+table{ + margin : 0; + background-color : transparent; + border-style : none; + border-image : none; + tbody{ + tr:nth-child(odd), tr:nth-child(even){ + background-color : transparent; + } + } + } + table{ + color : @headerText; + } + p+p{ + margin-top : 0em; + padding-bottom : 0.5em; + text-indent : 0em; + } + //Triangle dividers + hr{ + visibility : visible; + height : 6px; + margin : 4px 0px; + background-image : @redTriangleImage; + background-size : 100% 100%; + border : none; + } } - } - //Full Width - hr+hr+blockquote{ - .useColumns(0.96); - } - //***************************** - // * FOOTER - // *****************************/ - &:after{ - content : ""; - position : absolute; - bottom : 0px; - left : 0px; - z-index : 100; - height : 50px; - width : 100%; - background-image : @footerAccentImage; - background-size : cover; - } - &:nth-child(even){ + //Full Width + hr+hr+blockquote{ + .useColumns(0.96); + } + //***************************** + // * FOOTER + // *****************************/ &:after{ - transform : scaleX(-1); + content : ""; + position : absolute; + bottom : 0px; + left : 0px; + z-index : 100; + height : 50px; + width : 100%; + background-image : @footerAccentImage; + background-size : cover; + } + &:nth-child(even){ + &:after{ + transform : scaleX(-1); + } + .pageNumber{ + left : 2px; + } + .footnote{ + left : 80px; + text-align : left; + } } .pageNumber{ - left : 2px; + position : absolute; + right : 2px; + bottom : 22px; + width : 50px; + font-size : 0.9em; + color : #c9ad6a; + text-align : center; + &.auto::after { + content : counter(phb-page-numbers); + } } .footnote{ - left : 80px; - text-align : left; + position : absolute; + right : 80px; + bottom : 32px; + z-index : 150; + width : 200px; + font-size : 0.8em; + color : #c9ad6a; + text-align : right; } - } - .pageNumber{ - position : absolute; - right : 2px; - bottom : 22px; - width : 50px; - font-size : 0.9em; - color : #c9ad6a; - text-align : center; - &.auto::after { - content : counter(phb-page-numbers); + //***************************** + // * EXTRAS + // *****************************/ + hr{ + visibility : hidden; + margin : 0px; + } + //Modified unorder list, used in spells + hr+ul{ + margin-bottom : 0.5em; + padding-left : 1em; + text-indent : -1em; + list-style-type : none; + } + //Column Break + pre, code{ + visibility : hidden; + -webkit-column-break-after : always; + break-after : always; + -moz-column-break-after : always; + } + //Avoid breaking up + p,blockquote,table{ + z-index : 15; + -webkit-column-break-inside : avoid; + page-break-inside : avoid; + break-inside : avoid; + } + //Better spacing for spell blocks + h4+p+hr+ul{ + margin-top : -0.5em + } + //Text indent right after table + table+p{ + text-indent : 1em; + } + // Nested lists + ul ul,ol ol,ul ol,ol ul{ + margin-bottom : 0px; + margin-left : 1.5em; + } + li{ + -webkit-column-break-inside : avoid; + page-break-inside : avoid; + break-inside : avoid; } - } - .footnote{ - position : absolute; - right : 80px; - bottom : 32px; - z-index : 150; - width : 200px; - font-size : 0.8em; - color : #c9ad6a; - text-align : right; } //***************************** - // * EXTRAS + // * SPELL LIST // *****************************/ - hr{ - visibility : hidden; - margin : 0px; + .phb .spellList{ + .useSansSerif(); + column-count : 4; + column-span : all; + -webkit-column-span : all; + -moz-column-span : all; + ul+h5{ + margin-top : 15px; + } + p, ul{ + font-size : 0.352cm; + line-height : 1.263em; + } + ul{ + margin-bottom : 0.5em; + padding-left : 1em; + text-indent : -1em; + list-style-type : none; + -webkit-column-break-inside : auto; + page-break-inside : auto; + break-inside : auto; + } } - //Modified unorder list, used in spells - hr+ul{ - margin-bottom : 0.5em; - padding-left : 1em; - text-indent : -1em; - list-style-type : none; + //***************************** + // * WIDE + // *****************************/ + .phb .wide{ + column-span : all; + -webkit-column-span : all; + -moz-column-span : all; } - //Column Break - pre, code{ - visibility : hidden; - -webkit-column-break-after : always; - break-after : always; - -moz-column-break-after : always; + //***************************** + // * CLASS TABLE + // *****************************/ + .phb .classTable{ + margin-top : 25px; + margin-bottom : 40px; + border-collapse : separate; + background-color : white; + border : initial; + border-style : solid; + border-image-outset : 25px 17px; + border-image-repeat : stretch; + border-image-slice : 150 200 150 200; + border-image-source : @frameBorderImage; + border-image-width : 47px; + h5{ + margin-bottom : 10px; + } } - //Avoid breaking up - p,blockquote,table{ - z-index : 15; - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; + //************************************ + // * DESCRIPTIVE TEXT BOX + // ************************************/ + .phb .descriptive{ + margin-bottom : 1em; + background-color : #faf7ea; + font-family : ScalySans; + border-style : solid; + border-width : 7px; + border-image : @descriptiveBoxImage 12 stretch; + border-image-outset : 4px; + box-shadow : 0px 0px 6px #faf7ea; + p{ + display : block; + padding-bottom : 0px; + line-height : 1.47em; + } + p + p { + padding-top : .8em; + } + em { + font-family : ScalySans; + font-style : italic; + } + strong { + font-family : ScalySans; + font-weight : 800; + letter-spacing : -0.02em; + } } - //Better spacing for spell blocks - h4+p+hr+ul{ - margin-top : -0.5em + .phb pre+.descriptive{ + margin-top : 8px; } - //Text indent right after table - table+p{ - text-indent : 1em; - } - // Nested lists - ul ul,ol ol,ul ol,ol ul{ - margin-bottom : 0px; - margin-left : 1.5em; - } - li{ - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; - } -} -//***************************** -// * SPELL LIST -// *****************************/ -.phb .spellList{ - .useSansSerif(); - column-count : 4; - column-span : all; - -webkit-column-span : all; - -moz-column-span : all; - ul+h5{ - margin-top : 15px; - } - p, ul{ - font-size : 0.352cm; - line-height : 1.263em; - } - ul{ - margin-bottom : 0.5em; - padding-left : 1em; - text-indent : -1em; - list-style-type : none; - -webkit-column-break-inside : auto; - page-break-inside : auto; - break-inside : auto; - } -} -//***************************** -// * WIDE -// *****************************/ -.phb .wide{ - column-span : all; - -webkit-column-span : all; - -moz-column-span : all; -} -//***************************** -// * CLASS TABLE -// *****************************/ -.phb .classTable{ - margin-top : 25px; - margin-bottom : 40px; - border-collapse : separate; - background-color : white; - border : initial; - border-style : solid; - border-image-outset : 25px 17px; - border-image-repeat : stretch; - border-image-slice : 150 200 150 200; - border-image-source : @frameBorderImage; - border-image-width : 47px; - h5{ - margin-bottom : 10px; - } -} -//************************************ -// * DESCRIPTIVE TEXT BOX -// ************************************/ -.phb .descriptive{ - margin-bottom : 1em; - background-color : #faf7ea; - font-family : ScalySans; - border-style : solid; - border-width : 7px; - border-image : @descriptiveBoxImage 12 stretch; - border-image-outset : 4px; - box-shadow : 0px 0px 6px #faf7ea; - p{ - display : block; - padding-bottom : 0px; - line-height : 1.47em; - } - p + p { - padding-top : .8em; - } - em { - font-family : ScalySans; - font-style : italic; - } - strong { - font-family : ScalySans; - font-weight : 800; - letter-spacing : -0.02em; - } -} -.phb pre+.descriptive{ - margin-top : 8px; -} -//***************************** -// * ARTIST CREDIT BLOCK -// *****************************/ -.phb { - .artist { - position : absolute; - text-align : center; - font-family : WalterTurncoat; - font-size : 0.27cm; - color : @captionText; - p, p + p { - margin : unset; - text-indent : unset; - line-height : 0.941em; - } - h5 { - font-size : 1.3em; + //***************************** + // * ARTIST CREDIT BLOCK + // *****************************/ + .phb { + .artist { + position : absolute; + text-align : center; font-family : WalterTurncoat; + font-size : 0.27cm; + color : @captionText; + p, p + p { + margin : unset; + text-indent : unset; + line-height : 0.941em; + } + h5 { + font-size : 1.3em; + font-family : WalterTurncoat; + } + a{ + color : inherit; + text-decoration : unset; + &:hover { + text-decoration : underline; + } + } } + } + //***************************** + // * TABLE OF CONTENTS + // *****************************/ + .phb .toc{ + -webkit-column-break-inside : avoid; + page-break-inside : avoid; + break-inside : avoid; a{ - color : inherit; - text-decoration : unset; - &:hover { + color : black; + text-decoration : none; + &:hover{ text-decoration : underline; } } - } -} -//***************************** -// * TABLE OF CONTENTS -// *****************************/ -.phb .toc{ - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; - a{ - color : black; - text-decoration : none; - &:hover{ - text-decoration : underline; + ul{ + padding-left : 0; + list-style-type : none; + } + &>ul>li{ + margin-bottom : 10px; } } - ul{ - padding-left : 0; - list-style-type : none; - } - &>ul>li{ - margin-bottom : 10px; - } } diff --git a/themes/V3/5eDMG/dropdownPreview.png b/themes/V3/5eDMG/dropdownPreview.png new file mode 100644 index 000000000..f70b3cb57 Binary files /dev/null and b/themes/V3/5eDMG/dropdownPreview.png differ diff --git a/themes/V3/5eDMG/style.less b/themes/V3/5eDMG/style.less index 50a3af0a3..02056a34b 100644 --- a/themes/V3/5eDMG/style.less +++ b/themes/V3/5eDMG/style.less @@ -1,19 +1,21 @@ -:root { - //Colors - --HB_Color_Accent : #EBCEC3; // Salmon - --HB_Color_Footnotes : #5C5C5C; // Dark gray -} - -.page { - background-image : url(/assets/DMG_background.png); - background-size : cover; - - &:after { - background-image : url(/assets/DMG_footerAccent.png); - height: 58px; +@layer V3_5eDMG { + :root { + //Colors + --HB_Color_Accent : #EBCEC3; // Salmon + --HB_Color_Footnotes : #5C5C5C; // Dark gray } - .footnote { - bottom : 40px; + .page { + background-image : url(/assets/DMG_background.png); + background-size : cover; + + &:after { + background-image : url(/assets/DMG_footerAccent.png); + height: 58px; + } + + .footnote { + bottom : 40px; + } } } diff --git a/themes/V3/5ePHB/dropdownPreview.png b/themes/V3/5ePHB/dropdownPreview.png new file mode 100644 index 000000000..d13fe0a52 Binary files /dev/null and b/themes/V3/5ePHB/dropdownPreview.png differ diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 09f0dc790..85dc566f4 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -1,796 +1,798 @@ -@import (less) './themes/fonts/5e/fonts.less'; -@import (less) './themes/assets/assets.less'; +@layer V3_5ePHB { + @import (less) './themes/fonts/5e/fonts.less'; + @import (less) './themes/assets/assets.less'; -:root { - //Colors - --HB_Color_Background : #EEE5CE; // Light parchment - --HB_Color_Accent : #E0E5C1; // Pastel green - --HB_Color_HeaderUnderline : #C0AD6A; // Gold - --HB_Color_HorizontalRule : #9C2B1B; // Maroon - --HB_Color_HeaderText : #58180D; // Dark Maroon - --HB_Color_MonsterStatBackground : #F2E5B5; // Light orange parchment - --HB_Color_CaptionText : #766649; // Brown - --HB_Color_WatercolorStain : #BBAD82; // Light brown - --HB_Color_Footnotes : #C9AD6A; // Gold -} + :root { + //Colors + --HB_Color_Background : #EEE5CE; // Light parchment + --HB_Color_Accent : #E0E5C1; // Pastel green + --HB_Color_HeaderUnderline : #C0AD6A; // Gold + --HB_Color_HorizontalRule : #9C2B1B; // Maroon + --HB_Color_HeaderText : #58180D; // Dark Maroon + --HB_Color_MonsterStatBackground : #F2E5B5; // Light orange parchment + --HB_Color_CaptionText : #766649; // Brown + --HB_Color_WatercolorStain : #BBAD82; // Light brown + --HB_Color_Footnotes : #C9AD6A; // Gold + } -@page { margin: 0; } -body { - counter-reset : phb-page-numbers; -} -*{ - -webkit-print-color-adjust : exact; -} -.useSansSerif(){ - font-family : ScalySansRemake; - font-size : 0.318cm; - line-height : 1.2em; - p,dl,ul,ol { + @page { margin: 0; } + body { + counter-reset : phb-page-numbers; + } + *{ + -webkit-print-color-adjust : exact; + } + .useSansSerif(){ + font-family : ScalySansRemake; + font-size : 0.318cm; line-height : 1.2em; + p,dl,ul,ol { + line-height : 1.2em; + } + ul, ol { + padding-left : 1em; + } + em{ + font-style : italic; + } + strong{ + font-weight : 800; + letter-spacing : -0.02em; + } + h5 + * { + margin-top : 0.1cm; + } } - ul, ol { - padding-left : 1em; + .useColumns(@multiplier : 1, @fillMode: balance){ + column-count : 2; + column-fill : @fillMode; + column-gap : 0.9cm; + column-width : 8cm * @multiplier; + -webkit-column-count : 2; + -moz-column-count : 2; + -webkit-column-width : 8cm * @multiplier; + -moz-column-width : 8cm * @multiplier; + -webkit-column-gap : 0.9cm; + -moz-column-gap : 0.9cm; } - em{ - font-style : italic; + .columnWrapper{ + max-height : 100%; + column-span : all; + columns : inherit; + column-gap : inherit; } - strong{ - font-weight : 800; - letter-spacing : -0.02em; + .page{ + .useColumns(); + counter-increment : phb-page-numbers; + position : relative; + z-index : 15; + box-sizing : border-box; + overflow : hidden; + height : 279.4mm; + width : 215.9mm; + background-color : var(--HB_Color_Background); + background-image : @backgroundImage; + padding : 1.4cm 1.9cm 1.7cm; + font-family : BookInsanityRemake; + font-size : 0.34cm; + text-rendering : optimizeLegibility; + page-break-before : always; + page-break-after : always; } - h5 + * { - margin-top : 0.1cm; - } -} -.useColumns(@multiplier : 1, @fillMode: balance){ - column-count : 2; - column-fill : @fillMode; - column-gap : 0.9cm; - column-width : 8cm * @multiplier; - -webkit-column-count : 2; - -moz-column-count : 2; - -webkit-column-width : 8cm * @multiplier; - -moz-column-width : 8cm * @multiplier; - -webkit-column-gap : 0.9cm; - -moz-column-gap : 0.9cm; -} -.columnWrapper{ - max-height : 100%; - column-span : all; - columns : inherit; - column-gap : inherit; -} -.page{ - .useColumns(); - counter-increment : phb-page-numbers; - position : relative; - z-index : 15; - box-sizing : border-box; - overflow : hidden; - height : 279.4mm; - width : 215.9mm; - background-color : var(--HB_Color_Background); - background-image : @backgroundImage; - padding : 1.4cm 1.9cm 1.7cm; - font-family : BookInsanityRemake; - font-size : 0.34cm; - text-rendering : optimizeLegibility; - page-break-before : always; - page-break-after : always; -} - //***************************** - // * BASE - // *****************************/ + //***************************** + // * BASE + // *****************************/ -.page{ - p{ - overflow-wrap : break-word; //TODO: MAKE ALL MARGINS TOP-ONLY. USE * + * STYLE SELECTORS - display : block; - line-height : 1.25em; - &+* { - margin-top : 0.325cm; + .page{ + p{ + overflow-wrap : break-word; //TODO: MAKE ALL MARGINS TOP-ONLY. USE * + * STYLE SELECTORS + display : block; + line-height : 1.25em; + &+* { + margin-top : 0.325cm; + } + &+p{ + margin-top : 0; + } } - &+p{ - margin-top : 0; + ul{ + margin-bottom : 0.8em; + padding-left : 1.4em; + line-height : 1.25em; + list-style-position : outside; + list-style-type : disc; + } + ol{ + margin-bottom : 0.8em; + padding-left : 1.4em; + line-height : 1.25em; + list-style-position : outside; + list-style-type : decimal; + } + //Indents after p or lists + p+p, ul+p, ol+p{ + text-indent : 1em; + } + img{ + z-index : -1; + } + strong{ + font-weight : bold; + letter-spacing : -0.02em; + } + em{ + font-style : italic; + } + sup{ + vertical-align : super; + font-size : smaller; + line-height : 0; + } + sub{ + vertical-align : sub; + font-size : smaller; + line-height : 0; + } + //***************************** + // * HEADERS + // *****************************/ + h1,h2,h3,h4{ + font-family : MrEavesRemake; + font-weight : 800; + color : var(--HB_Color_HeaderText); + } + h1{ + margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE + column-span : all; + font-size : 0.89cm; + line-height : 1em; + -webkit-column-span : all; + -moz-column-span : all; + &+p::first-letter{ + float : left; + font-family : SolberaImitationRemake; + line-height : 1em; + font-size : 3.5cm; + padding-left : 40px; //Allow background color to extend into margins + margin-left : -40px; + margin-top : -0.3cm; + padding-bottom : 2px; + margin-bottom : -20px; + background-image : linear-gradient(-45deg, #322814, #998250, #322814); + background-clip : text; + -webkit-background-clip : text; + color : rgba(0, 0, 0, 0); + } + &+p::first-line{ + font-variant : small-caps; + } + } + h2{ + //margin-top : 0px; //Font is misaligned. Shift up slightly + //margin-bottom : 0.05cm; + font-size : 0.75cm; + line-height : 0.988em; //Font is misaligned. Shift up slightly + } + h3{ + //margin-top : -0.1cm; //Font is misaligned. Shift up slightly + //margin-bottom : 0.1cm; + font-size : 0.575cm; + border-bottom : 2px solid var(--HB_Color_HeaderUnderline);; + line-height : 0.995em; //Font is misaligned. Shift up slightly + & + * { + margin-top: 0.17cm; + } + } + * + h3 { + margin-top : 0.155cm; //(0.325 - 0.17) + } + h4{ + //margin-top : -0.02cm; //Font is misaligned. Shift up slightly + //margin-bottom : 0.02cm; + font-size : 0.458cm; + line-height : 0.971em; //Font is misaligned. Shift up slightly + & + * { + margin-top: 0.09cm; + } + } + * + h4 { + margin-top : 0.235cm; //(0.325 - 0.09) + } + h5{ + //margin-top : -0.02cm; //Font is misaligned. Shift up slightly + //margin-bottom : 0.02cm; + font-family : ScalySansSmallCapsRemake; + font-size : 0.423cm; + font-weight : 900; + line-height : 0.951em; //Font is misaligned. Shift up slightly + & + * { + margin-top : 0.2cm; + } + } + //***************************** + // * TABLE + // *****************************/ + table{ + .useSansSerif(); + width : 100%; + line-height : 16px; + & + * { + margin-top : 0.325cm; + } + thead{ + display: table-row-group; + font-weight : 800; + th{ + vertical-align : bottom; + //padding : 0.14em 0.4em; + padding : 0px 1.5px; // Both of these are temporary, just to force + //line-height : 16px; // PDF to render at same height until Chrome 108 + } + } + tbody{ + tr{ + td{ + //padding : 0.14em 0.4em; + padding : 0px 1.5px; // Both of these are temporary, just to force + //line-height : 16px; // PDF to render at same height until Chrome 108 + } + &:nth-child(odd){ + background-color : var(--HB_Color_Accent); + } + } + } + } + //***************************** + // * NOTE + // *****************************/ + .note{ + .useSansSerif(); + background-color : var(--HB_Color_Accent); + border-style : solid; + border-width : 1px; + border-image : @noteBorderImage 12 stretch; + border-image-outset : 9px 0px; + border-image-width : 11px; + padding : 0.13cm 0.16cm; + filter : drop-shadow(1px 4px 6px #888); + .page :where(&) { + margin-top : 9px; //Prevent top border getting cut off on colbreak + } + & + * { + margin-top : 0.45cm; + } + h5 { + font-size : 0.375cm; + } + p{ + display : block; + padding-bottom : 0px; + } + :last-child { + margin-bottom : 0; + } + } + //************************************ + // * DESCRIPTIVE TEXT BOX + // ************************************/ + .descriptive{ + .useSansSerif(); + background-color : #faf7ea; + border-style : solid; + border-width : 7px; + border-image : @descriptiveBoxImage 12 stretch; + border-image-outset : 4px; + padding : 0.1em; + filter : drop-shadow(0 0 3px #faf7ea); + .page :where(&) { + margin-top : 4px; //Prevent top border getting cut off on colbreak + } + & + * { + margin-top : 0.45cm; + } + h5 { + font-size : 0.375cm; + } + p{ + display : block; + padding-bottom : 0px; + line-height : 1.5em; + } + :last-child { + margin-bottom : 0; + } + } + //***************************** + // * Images Snippets + // *****************************/ + + /* Arist Credit */ + .artist { + position : absolute; + width : auto; + text-align : center; + font-family : WalterTurncoat; + font-size : 0.27cm; + color : var(--HB_Color_CaptionText); + p, p + p { + margin : unset; + text-indent : unset; + line-height : 1em; + } + h5 { + font-size : 1.3em; + font-family : WalterTurncoat; + } + a{ + color : inherit; + text-decoration : unset; + &:hover { + text-decoration : underline; + } + } + } + + /* Watermark */ + .watermark { + display : grid !important; + place-items : center; + justify-content : center; + position : absolute; + top : 0; + left : 0; + width : 100%; + height : 100%; + font-size : 120px; + text-transform : uppercase; + color : black; + mix-blend-mode : overlay; + opacity : 30%; + transform : rotate(-45deg); + z-index : 500; + p { + margin-bottom : none; + } + } + + /* Watercolor */ + [class*="watercolor"] { + position : absolute; + width : 2000px; /* dimensions need to be real big so the user can set */ + height : 2000px; /* height or width and the image will maintain aspect ratio */ + -webkit-mask-image : var(--wc); + -webkit-mask-size : contain; + -webkit-mask-repeat : no-repeat; + mask-image : var(--wc); + mask-size : contain; + mask-repeat : no-repeat; + background-size : cover; + background-color : var(--HB_Color_WatercolorStain); /*default color*/ + --wc : @watercolor1; /*default image*/ + z-index : -2; + } + + .watercolor1 { --wc : @watercolor1; } + .watercolor2 { --wc : @watercolor2; } + .watercolor3 { --wc : @watercolor3; } + .watercolor4 { --wc : @watercolor4; } + .watercolor5 { --wc : @watercolor5; } + .watercolor6 { --wc : @watercolor6; } + .watercolor7 { --wc : @watercolor7; } + .watercolor8 { --wc : @watercolor8; } + .watercolor9 { --wc : @watercolor9; } + .watercolor10 { --wc : @watercolor10; } + .watercolor11 { --wc : @watercolor11; } + .watercolor12 { --wc : @watercolor12; } + + //***************************** + // * MONSTER STAT BLOCK + // *****************************/ + .monster { + .useSansSerif(); + &.frame { + border-style : solid; + border-width : 7px 6px; + background-color : var(--HB_Color_MonsterStatBackground); + background-image : @monsterBlockBackground; + border-image : @monsterBorderImage 14 round; + border-image-outset : 0px 2px; + background-blend-mode : overlay; + background-attachment : fixed; + filter : drop-shadow(1px 4px 6px #888); + padding : 4px 2px; + margin-left : -0.16cm; + margin-right : -0.16cm; + width : calc(100% + 0.32cm); + } + + position : relative; + padding : 0px; + margin-bottom : 0.325cm; + + //Headers + h2{ + font-size : 0.62cm; + line-height : 1em; + margin : 0; + &+p { + font-size : 0.304cm; //Monster size and type subtext + margin-bottom : 0; + } + } + h3{ + font-family : ScalySansRemake; + font-weight : 800; + font-variant : small-caps; + border-bottom : 2px solid var(--HB_Color_HeaderText); + // margin-top : 0.05cm; //Font is misaligned. Shift up slightly + padding-bottom : 0.05cm; + } + + //Triangle dividers + hr{ + visibility : visible; + height : 6px; + margin : 0.12cm 0cm; + background-image : @redTriangleImage; + background-size : 100% 100%; + border : none; + } + + //Attribute Lists - All text between HRs is red + hr ~ :is(dl,p) { + color : var(--HB_Color_HeaderText); + } + hr:last-of-type { + & ~ :is(dl,p) { + color : inherit; // After the HRs, reset text to black + } + & + * { + margin-top : 0.325cm; // Space after last HR + } + } + + // Monster Ability table + hr + table:first-of-type{ + margin : 0; + column-span : none; + color : var(--HB_Color_HeaderText); + background-color : transparent; + border-style : none; + border-image : none; + -webkit-column-span : none; + tr { + background-color : transparent; + } + td,th { + padding: 0px; + } + } + + :last-child { + margin-bottom : 0; + } + } + + //Full Width + .monster.wide{ + .useColumns(0.96, @fillMode: balance); + } + + //***************************** + // * FOOTER + // *****************************/ + &:after{ + content : ""; + position : absolute; + bottom : 0px; + left : 0px; + z-index : 100; + height : 50px; + width : 100%; + background-image : @footerAccentImage; + background-size : cover; + } + &:nth-child(even){ + &:after{ + transform : scaleX(-1); + } + .pageNumber{ + left : 2px; + } + .footnote{ + left : 80px; + text-align : left; + } + } + .pageNumber{ + position : absolute; + right : 2px; + bottom : 22px; + width : 50px; + font-size : 0.9em; + color : var(--HB_Color_Footnotes); + text-align : center; + text-indent : 0; + &.auto::after { + content : counter(phb-page-numbers); + } + } + .footnote{ + position : absolute; + right : 80px; + bottom : 32px; + z-index : 150; + width : 200px; + font-size : 0.8em; + color : var(--HB_Color_Footnotes); + text-align : right; + } + //************************************ + // * CODE BLOCKS + // ************************************/ + code{ + font-family : "Courier New", Courier, monospace; + font-size : 0.325; + padding : 0px 4px; + color : #58180d; + background-color : #faf7ea; + border-radius : 4px; + white-space : pre-wrap; + overflow-wrap : break-word; + } + + pre code{ + width : 100%; + display : inline-block; + border-style : solid; + border-width : 1px; + border-image : @codeBorderImage 26 stretch; + border-image-width : 10px; + border-image-outset : 2px; + border-radius : 12px; + margin-bottom : 2px; + padding : 0.15cm; + .page :where(&) { + margin-top : 2px; //Prevent top border getting cut off on colbreak + } + & + * { + margin-top : 0.325cm; + } + } + //***************************** + // * EXTRAS + // *****************************/ + hr{ + visibility : hidden; + margin : 0px; + } + .columnSplit { + visibility : hidden; + -webkit-column-break-after : always; + break-after : always; + -moz-column-break-after : always; + } + //Avoid breaking up + blockquote,table{ + z-index : 15; + -webkit-column-break-inside : avoid; + page-break-inside : avoid; + break-inside : avoid; + } + //Text indent right after table + table+p{ + text-indent : 1em; + } + // Nested lists + ul ul,ol ol,ul ol,ol ul{ + margin-bottom : 0px; + margin-left : 1.5em; + } + li{ + -webkit-column-break-inside : avoid; + page-break-inside : avoid; + break-inside : avoid; } - } - ul{ - margin-bottom : 0.8em; - padding-left : 1.4em; - line-height : 1.25em; - list-style-position : outside; - list-style-type : disc; - } - ol{ - margin-bottom : 0.8em; - padding-left : 1.4em; - line-height : 1.25em; - list-style-position : outside; - list-style-type : decimal; - } - //Indents after p or lists - p+p, ul+p, ol+p{ - text-indent : 1em; - } - img{ - z-index : -1; - } - strong{ - font-weight : bold; - letter-spacing : -0.02em; - } - em{ - font-style : italic; - } - sup{ - vertical-align : super; - font-size : smaller; - line-height : 0; - } - sub{ - vertical-align : sub; - font-size : smaller; - line-height : 0; } //***************************** - // * HEADERS + // * SPELL LIST // *****************************/ - h1,h2,h3,h4{ - font-family : MrEavesRemake; - font-weight : 800; - color : var(--HB_Color_HeaderText); - } - h1{ - margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE - column-span : all; - font-size : 0.89cm; - line-height : 1em; - -webkit-column-span : all; - -moz-column-span : all; - &+p::first-letter{ - float : left; - font-family : SolberaImitationRemake; - line-height : 1em; - font-size : 3.5cm; - padding-left : 40px; //Allow background color to extend into margins - margin-left : -40px; - margin-top : -0.3cm; - padding-bottom : 2px; - margin-bottom : -20px; - background-image : linear-gradient(-45deg, #322814, #998250, #322814); - background-clip : text; - -webkit-background-clip : text; - color : rgba(0, 0, 0, 0); + .page .spellList{ + .useSansSerif(); + column-count : 2; + ul+h5{ + margin-top : 15px; } - &+p::first-line{ - font-variant : small-caps; + p, ul{ + font-size : 0.352cm; + line-height : 1.265em; + } + ul{ + margin-bottom : 0.5em; + padding-left : 1em; + text-indent : -1em; + list-style-type : none; + -webkit-column-break-inside : auto; + page-break-inside : auto; + break-inside : auto; + } + &.wide{ + column-count : 4; } } - h2{ - //margin-top : 0px; //Font is misaligned. Shift up slightly - //margin-bottom : 0.05cm; - font-size : 0.75cm; - line-height : 0.988em; //Font is misaligned. Shift up slightly - } - h3{ - //margin-top : -0.1cm; //Font is misaligned. Shift up slightly - //margin-bottom : 0.1cm; - font-size : 0.575cm; - border-bottom : 2px solid var(--HB_Color_HeaderUnderline);; - line-height : 0.995em; //Font is misaligned. Shift up slightly - & + * { - margin-top: 0.17cm; + + //***************************** + // * CLASS TABLE + // *****************************/ + .page .classTable{ + th[colspan]:not([rowspan]) { + white-space : nowrap; } - } - * + h3 { - margin-top : 0.155cm; //(0.325 - 0.17) - } - h4{ - //margin-top : -0.02cm; //Font is misaligned. Shift up slightly - //margin-bottom : 0.02cm; - font-size : 0.458cm; - line-height : 0.971em; //Font is misaligned. Shift up slightly - & + * { - margin-top: 0.09cm; + &.frame { + margin-top : 0.7cm; + margin-bottom : 0.9cm; + margin-left : -0.1cm; + margin-right : -0.1cm; + width : calc(100% + 0.2cm); + border-collapse : separate; + background-color : white; + border : initial; + border-style : solid; + border-image-outset : 0.4cm 0.3cm; + border-image-repeat : stretch; + border-image-slice : 200; + border-image-source : @frameBorderImage; + border-image-width : 47px; + &.wide:first-child { + margin-top: 0.12cm; + } + & + * { + margin-top: 0; + } } - } - * + h4 { - margin-top : 0.235cm; //(0.325 - 0.09) - } - h5{ - //margin-top : -0.02cm; //Font is misaligned. Shift up slightly - //margin-bottom : 0.02cm; - font-family : ScalySansSmallCapsRemake; - font-size : 0.423cm; - font-weight : 900; - line-height : 0.951em; //Font is misaligned. Shift up slightly - & + * { + &.decoration { + position:relative; + } + &.decoration::before { + content :''; + position : absolute; + background-image : @classTableDecoration, + @classTableDecoration; + background-size : contain, contain; + background-repeat : no-repeat, no-repeat; + background-position : top, bottom; + width : 7.75cm; + height : calc(100% + 3.3cm); + top : 50%; + left : 50%; + transform : translateY(-50%) translateX(-50%); + filter : drop-shadow(0px 0px 1px #C8C5C080); + z-index : -1; + } + &.decoration.wide::before { + width : calc(100% + 3.3cm); + height : 7.75cm; + background-position : left, right; + } + h5 + table{ margin-top : 0.2cm; } } //***************************** - // * TABLE + // * TABLE OF CONTENTS // *****************************/ - table{ - .useSansSerif(); - width : 100%; - line-height : 16px; - & + * { - margin-top : 0.325cm; + .page { + &:has(.toc):after { + display: none; } - thead{ - display: table-row-group; - font-weight : 800; - th{ - vertical-align : bottom; - //padding : 0.14em 0.4em; - padding : 0px 1.5px; // Both of these are temporary, just to force - //line-height : 16px; // PDF to render at same height until Chrome 108 + .toc { + -webkit-column-break-inside : avoid; + page-break-inside : avoid; + break-inside : avoid; + h1 { + text-align : center; + margin-bottom : 0.3cm; } - } - tbody{ - tr{ - td{ - //padding : 0.14em 0.4em; - padding : 0px 1.5px; // Both of these are temporary, just to force - //line-height : 16px; // PDF to render at same height until Chrome 108 - } - &:nth-child(odd){ - background-color : var(--HB_Color_Accent); + a{ + display : inline; + color : inherit; + text-decoration : none; + &:hover{ + text-decoration : underline; } } - } - } - //***************************** - // * NOTE - // *****************************/ - .note{ - .useSansSerif(); - background-color : var(--HB_Color_Accent); - border-style : solid; - border-width : 1px; - border-image : @noteBorderImage 12 stretch; - border-image-outset : 9px 0px; - border-image-width : 11px; - padding : 0.13cm 0.16cm; - filter : drop-shadow(1px 4px 6px #888); - .page :where(&) { - margin-top : 9px; //Prevent top border getting cut off on colbreak - } - & + * { - margin-top : 0.45cm; - } - h5 { - font-size : 0.375cm; - } - p{ - display : block; - padding-bottom : 0px; - } - :last-child { - margin-bottom : 0; - } - } - //************************************ - // * DESCRIPTIVE TEXT BOX - // ************************************/ - .descriptive{ - .useSansSerif(); - background-color : #faf7ea; - border-style : solid; - border-width : 7px; - border-image : @descriptiveBoxImage 12 stretch; - border-image-outset : 4px; - padding : 0.1em; - filter : drop-shadow(0 0 3px #faf7ea); - .page :where(&) { - margin-top : 4px; //Prevent top border getting cut off on colbreak - } - & + * { - margin-top : 0.45cm; - } - h5 { - font-size : 0.375cm; - } - p{ - display : block; - padding-bottom : 0px; - line-height : 1.5em; - } - :last-child { - margin-bottom : 0; - } - } - //***************************** - // * Images Snippets - // *****************************/ - - /* Arist Credit */ - .artist { - position : absolute; - width : auto; - text-align : center; - font-family : WalterTurncoat; - font-size : 0.27cm; - color : var(--HB_Color_CaptionText); - p, p + p { - margin : unset; - text-indent : unset; - line-height : 1em; - } - h5 { - font-size : 1.3em; - font-family : WalterTurncoat; - } - a{ - color : inherit; - text-decoration : unset; - &:hover { - text-decoration : underline; + h4 { + margin-top : 0.2cm; + line-height : 0.4cm; + & + ul li { + line-height: 1.2em; + } + } + ul{ + padding-left : 0; + list-style-type : none; + margin-top : 0; + a { + width : 100%; + display : flex; + flex-flow : row nowrap; + justify-content : space-between; + } + li + li h3 { + margin-top : 0.26cm; + line-height : 1em + } + h3 span:first-child::after { + border : none; + } + span { + display : contents; + &:first-child::after { + content : ""; + bottom : 0.08cm; + flex : 1; + margin-left : 0.08cm; /* Spacing before dot leaders */ + margin-right : 0.16cm; + border-bottom : 0.05cm dotted #000; + margin-bottom : 0.08cm; + } + &:last-child { + display : inline-block; + align-self : flex-end; + font-family : "BookInsanityRemake"; + font-size : 0.34cm; + font-weight : normal; + color : #000; + } + } + ul { /*List indent*/ + margin-left : 1em; + } + } + &.wide{ + .useColumns(0.96, @fillMode: balance); } } } - /* Watermark */ - .watermark { - display : grid !important; - place-items : center; - justify-content : center; - position : absolute; - top : 0; - left : 0; - width : 100%; - height : 100%; - font-size : 120px; - text-transform : uppercase; - color : black; - mix-blend-mode : overlay; - opacity : 30%; - transform : rotate(-45deg); - z-index : 500; - p { - margin-bottom : none; - } - } - - /* Watercolor */ - [class*="watercolor"] { - position : absolute; - width : 2000px; /* dimensions need to be real big so the user can set */ - height : 2000px; /* height or width and the image will maintain aspect ratio */ - -webkit-mask-image : var(--wc); - -webkit-mask-size : contain; - -webkit-mask-repeat : no-repeat; - mask-image : var(--wc); - mask-size : contain; - mask-repeat : no-repeat; - background-size : cover; - background-color : var(--HB_Color_WatercolorStain); /*default color*/ - --wc : @watercolor1; /*default image*/ - z-index : -2; - } - - .watercolor1 { --wc : @watercolor1; } - .watercolor2 { --wc : @watercolor2; } - .watercolor3 { --wc : @watercolor3; } - .watercolor4 { --wc : @watercolor4; } - .watercolor5 { --wc : @watercolor5; } - .watercolor6 { --wc : @watercolor6; } - .watercolor7 { --wc : @watercolor7; } - .watercolor8 { --wc : @watercolor8; } - .watercolor9 { --wc : @watercolor9; } - .watercolor10 { --wc : @watercolor10; } - .watercolor11 { --wc : @watercolor11; } - .watercolor12 { --wc : @watercolor12; } - //***************************** - // * MONSTER STAT BLOCK + // * DEFINITION LISTS // *****************************/ - .monster { - .useSansSerif(); - &.frame { - border-style : solid; - border-width : 7px 6px; - background-color : var(--HB_Color_MonsterStatBackground); - background-image : @monsterBlockBackground; - border-image : @monsterBorderImage 14 round; - border-image-outset : 0px 2px; - background-blend-mode : overlay; - background-attachment : fixed; - filter : drop-shadow(1px 4px 6px #888); - padding : 4px 2px; - margin-left : -0.16cm; - margin-right : -0.16cm; - width : calc(100% + 0.32cm); - } - - position : relative; - padding : 0px; - margin-bottom : 0.325cm; - - //Headers - h2{ - font-size : 0.62cm; - line-height : 1em; - margin : 0; - &+p { - font-size : 0.304cm; //Monster size and type subtext - margin-bottom : 0; - } - } - h3{ - font-family : ScalySansRemake; - font-weight : 800; - font-variant : small-caps; - border-bottom : 2px solid var(--HB_Color_HeaderText); - // margin-top : 0.05cm; //Font is misaligned. Shift up slightly - padding-bottom : 0.05cm; - } - - //Triangle dividers - hr{ - visibility : visible; - height : 6px; - margin : 0.12cm 0cm; - background-image : @redTriangleImage; - background-size : 100% 100%; - border : none; - } - - //Attribute Lists - All text between HRs is red - hr ~ :is(dl,p) { - color : var(--HB_Color_HeaderText); - } - hr:last-of-type { - & ~ :is(dl,p) { - color : inherit; // After the HRs, reset text to black - } + .page { + dl { + line-height : 1.25em; + padding-left : 1em; + white-space : pre-line; & + * { - margin-top : 0.325cm; // Space after last HR + margin-top : 0.28cm; } } - - // Monster Ability table - hr + table:first-of-type{ - margin : 0; - column-span : none; - color : var(--HB_Color_HeaderText); - background-color : transparent; - border-style : none; - border-image : none; - -webkit-column-span : none; - tr { - background-color : transparent; - } - td,th { - padding: 0px; - } + dl + * { + margin-top : 0.17cm; + } + p + dl { + margin-top: 0.17cm; } - - :last-child { - margin-bottom : 0; - } - } - - //Full Width - .monster.wide{ - .useColumns(0.96, @fillMode: balance); + dt { + display : inline; + margin-right : 5px; + margin-left : -1em; + } + dd { + display : inline; + margin-left : 0px; + text-indent : 0px; + } } //***************************** - // * FOOTER + // * WIDE // *****************************/ - &:after{ - content : ""; - position : absolute; - bottom : 0px; - left : 0px; - z-index : 100; - height : 50px; - width : 100%; - background-image : @footerAccentImage; - background-size : cover; - } - &:nth-child(even){ - &:after{ - transform : scaleX(-1); - } - .pageNumber{ - left : 2px; - } - .footnote{ - left : 80px; - text-align : left; - } - } - .pageNumber{ - position : absolute; - right : 2px; - bottom : 22px; - width : 50px; - font-size : 0.9em; - color : var(--HB_Color_Footnotes); - text-align : center; - text-indent : 0; - &.auto::after { - content : counter(phb-page-numbers); - } - } - .footnote{ - position : absolute; - right : 80px; - bottom : 32px; - z-index : 150; - width : 200px; - font-size : 0.8em; - color : var(--HB_Color_Footnotes); - text-align : right; - } - //************************************ - // * CODE BLOCKS - // ************************************/ - code{ - font-family : "Courier New", Courier, monospace; - font-size : 0.325; - padding : 0px 4px; - color : #58180d; - background-color : #faf7ea; - border-radius : 4px; - white-space : pre-wrap; - overflow-wrap : break-word; + .page .wide{ + margin-bottom : 0.325cm; } - pre code{ - width : 100%; - display : inline-block; - border-style : solid; - border-width : 1px; - border-image : @codeBorderImage 26 stretch; - border-image-width : 10px; - border-image-outset : 2px; - border-radius : 12px; - margin-bottom : 2px; - padding : 0.15cm; - .page :where(&) { - margin-top : 2px; //Prevent top border getting cut off on colbreak - } - & + * { - margin-top : 0.325cm; - } - } - //***************************** - // * EXTRAS - // *****************************/ - hr{ - visibility : hidden; - margin : 0px; - } - .columnSplit { - visibility : hidden; - -webkit-column-break-after : always; - break-after : always; - -moz-column-break-after : always; - } - //Avoid breaking up - blockquote,table{ - z-index : 15; - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; - } - //Text indent right after table - table+p{ - text-indent : 1em; - } - // Nested lists - ul ul,ol ol,ul ol,ol ul{ - margin-bottom : 0px; - margin-left : 1.5em; - } - li{ - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; + .page h1 + *{ + margin-top : 0; } } -//***************************** -// * SPELL LIST -// *****************************/ -.page .spellList{ - .useSansSerif(); - column-count : 2; - ul+h5{ - margin-top : 15px; - } - p, ul{ - font-size : 0.352cm; - line-height : 1.265em; - } - ul{ - margin-bottom : 0.5em; - padding-left : 1em; - text-indent : -1em; - list-style-type : none; - -webkit-column-break-inside : auto; - page-break-inside : auto; - break-inside : auto; - } - &.wide{ - column-count : 4; - } -} - -//***************************** -// * CLASS TABLE -// *****************************/ -.page .classTable{ - th[colspan]:not([rowspan]) { - white-space : nowrap; - } - &.frame { - margin-top : 0.7cm; - margin-bottom : 0.9cm; - margin-left : -0.1cm; - margin-right : -0.1cm; - width : calc(100% + 0.2cm); - border-collapse : separate; - background-color : white; - border : initial; - border-style : solid; - border-image-outset : 0.4cm 0.3cm; - border-image-repeat : stretch; - border-image-slice : 200; - border-image-source : @frameBorderImage; - border-image-width : 47px; - &.wide:first-child { - margin-top: 0.12cm; - } - & + * { - margin-top: 0; - } - } - &.decoration { - position:relative; - } - &.decoration::before { - content :''; - position : absolute; - background-image : @classTableDecoration, - @classTableDecoration; - background-size : contain, contain; - background-repeat : no-repeat, no-repeat; - background-position : top, bottom; - width : 7.75cm; - height : calc(100% + 3.3cm); - top : 50%; - left : 50%; - transform : translateY(-50%) translateX(-50%); - filter : drop-shadow(0px 0px 1px #C8C5C080); - z-index : -1; - } - &.decoration.wide::before { - width : calc(100% + 3.3cm); - height : 7.75cm; - background-position : left, right; - } - h5 + table{ - margin-top : 0.2cm; - } -} -//***************************** -// * TABLE OF CONTENTS -// *****************************/ -.page { - &:has(.toc):after { - display: none; - } - .toc { - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; - h1 { - text-align : center; - margin-bottom : 0.3cm; - } - a{ - display : inline; - color : inherit; - text-decoration : none; - &:hover{ - text-decoration : underline; - } - } - h4 { - margin-top : 0.2cm; - line-height : 0.4cm; - & + ul li { - line-height: 1.2em; - } - } - ul{ - padding-left : 0; - list-style-type : none; - margin-top : 0; - a { - width : 100%; - display : flex; - flex-flow : row nowrap; - justify-content : space-between; - } - li + li h3 { - margin-top : 0.26cm; - line-height : 1em - } - h3 span:first-child::after { - border : none; - } - span { - display : contents; - &:first-child::after { - content : ""; - bottom : 0.08cm; - flex : 1; - margin-left : 0.08cm; /* Spacing before dot leaders */ - margin-right : 0.16cm; - border-bottom : 0.05cm dotted #000; - margin-bottom : 0.08cm; - } - &:last-child { - display : inline-block; - align-self : flex-end; - font-family : "BookInsanityRemake"; - font-size : 0.34cm; - font-weight : normal; - color : #000; - } - } - ul { /*List indent*/ - margin-left : 1em; - } - } - &.wide{ - .useColumns(0.96, @fillMode: balance); - } - } -} - -//***************************** -// * DEFINITION LISTS -// *****************************/ -.page { - dl { - line-height : 1.25em; - padding-left : 1em; - white-space : pre-line; - & + * { - margin-top : 0.28cm; - } - } - dl + * { - margin-top : 0.17cm; - } - p + dl { - margin-top: 0.17cm; - } - dt { - display : inline; - margin-right : 5px; - margin-left : -1em; - } - dd { - display : inline; - margin-left : 0px; - text-indent : 0px; - } -} - -//***************************** -// * WIDE -// *****************************/ -.page .wide{ - margin-bottom : 0.325cm; -} - -.page h1 + *{ - margin-top : 0; -} diff --git a/themes/V3/Blank/dropdownPreview.png b/themes/V3/Blank/dropdownPreview.png new file mode 100644 index 000000000..7ff524ad4 Binary files /dev/null and b/themes/V3/Blank/dropdownPreview.png differ diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index 985a34528..387b6612f 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -1,276 +1,278 @@ -@import (less) './themes/fonts/5e/fonts.less'; -@import (less) './themes/assets/assets.less'; +@layer V3_Blank { + @import (less) './themes/fonts/5e/fonts.less'; + @import (less) './themes/assets/assets.less'; -:root { - //Colors - --HB_Color_Background : #FFFFFF; // White - --HB_Color_WatercolorStain : #000000; // Black -} - -@page { margin: 0; } -body { - counter-reset : phb-page-numbers; -} -*{ - -webkit-print-color-adjust : exact; -} - -.useColumns(@multiplier : 1, @fillMode: balance){ - column-fill : @fillMode; - column-count : 2; -} -.columnWrapper{ - max-height : 100%; - column-span : all; - columns : inherit; - column-gap : inherit; -} -.page{ - .useColumns(); - height : 279.4mm; - width : 215.9mm; - padding : 1.4cm 1.9cm 1.7cm; - counter-increment : phb-page-numbers; - background-color : var(--HB_Color_Background); - position : relative; - z-index : 15; - box-sizing : border-box; - overflow : hidden; - text-rendering : optimizeLegibility; - page-break-before : always; - page-break-after : always; - contain : size; -} - //***************************** - // * BASE - // *****************************/ -.page{ - p{ - overflow-wrap : break-word; - display : block; - } - strong{ - font-weight : bold; - } - em{ - font-style : italic; - } - sup{ - vertical-align : super; - font-size : smaller; - line-height : 0; - } - sub{ - vertical-align : sub; - font-size : smaller; - line-height : 0; - } - ul { - list-style-position : outside; //Needed for multiline list items - list-style-type : disc; - padding-left : 1.4em; - } - ol { - list-style-position : outside; - list-style-type : decimal; - padding-left : 1.4em; - } - img{ - z-index : -1; + :root { + //Colors + --HB_Color_Background : #FFFFFF; // White + --HB_Color_WatercolorStain : #000000; // Black } - //***************************** - // * HEADERS - // *****************************/ - h1,h2,h3,h4,h5,h6{ - font-weight : bold; - line-height : 1.2em; + @page { margin: 0; } + body { + counter-reset : phb-page-numbers; } - h1{ - font-size : 2em; + *{ + -webkit-print-color-adjust : exact; } - h2{ - font-size : 1.5em; + + .useColumns(@multiplier : 1, @fillMode: balance){ + column-fill : @fillMode; + column-count : 2; } - h3{ - font-size : 1.17em; + .columnWrapper{ + max-height : 100%; + column-span : all; + columns : inherit; + column-gap : inherit; } - h4{ - font-size : 1em; + .page{ + .useColumns(); + height : 279.4mm; + width : 215.9mm; + padding : 1.4cm 1.9cm 1.7cm; + counter-increment : phb-page-numbers; + background-color : var(--HB_Color_Background); + position : relative; + z-index : 15; + box-sizing : border-box; + overflow : hidden; + text-rendering : optimizeLegibility; + page-break-before : always; + page-break-after : always; + contain : size; } - h5{ - font-size : 0.83em; - } - //***************************** - // * TABLE - // *****************************/ - table{ - width : 100%; - thead{ - display : table-row-group; + //***************************** + // * BASE + // *****************************/ + .page{ + p{ + overflow-wrap : break-word; + display : block; + } + strong{ font-weight : bold; } - } - div:not(.columnWrapper) > table + table { // Side-by-side tables should not - margin-top : 0; // have vertical spacing. - } + em{ + font-style : italic; + } + sup{ + vertical-align : super; + font-size : smaller; + line-height : 0; + } + sub{ + vertical-align : sub; + font-size : smaller; + line-height : 0; + } + ul { + list-style-position : outside; //Needed for multiline list items + list-style-type : disc; + padding-left : 1.4em; + } + ol { + list-style-position : outside; + list-style-type : decimal; + padding-left : 1.4em; + } + img{ + z-index : -1; + } - /* Watermark */ - .watermark { - display : grid !important; - place-items : center; - justify-content : center; - position : absolute; - margin : 0; - top : 0; - left : 0; - width : 100%; - height : 100%; - font-size : 120px; - text-transform : uppercase; - color : black; - mix-blend-mode : overlay; - opacity : 30%; - transform : rotate(-45deg); - z-index : 500; - p { - margin-bottom : none; + //***************************** + // * HEADERS + // *****************************/ + h1,h2,h3,h4,h5,h6{ + font-weight : bold; + line-height : 1.2em; + } + h1{ + font-size : 2em; + } + h2{ + font-size : 1.5em; + } + h3{ + font-size : 1.17em; + } + h4{ + font-size : 1em; + } + h5{ + font-size : 0.83em; + } + //***************************** + // * TABLE + // *****************************/ + table{ + width : 100%; + thead{ + display : table-row-group; + font-weight : bold; + } + } + div:not(.columnWrapper) > table + table { // Side-by-side tables should not + margin-top : 0; // have vertical spacing. + } + + /* Watermark */ + .watermark { + display : grid !important; + place-items : center; + justify-content : center; + position : absolute; + margin : 0; + top : 0; + left : 0; + width : 100%; + height : 100%; + font-size : 120px; + text-transform : uppercase; + color : black; + mix-blend-mode : overlay; + opacity : 30%; + transform : rotate(-45deg); + z-index : 500; + p { + margin-bottom : none; + } + } + + /* Watercolor */ + [class*="watercolor"] { + position : absolute; + width : 2000px; /* dimensions need to be real big so the user can set */ + height : 2000px; /* height or width and the image will maintain aspect ratio */ + -webkit-mask-image : var(--wc); + -webkit-mask-size : contain; + -webkit-mask-repeat : no-repeat; + mask-image : var(--wc); + mask-size : contain; + mask-repeat : no-repeat; + background-size : cover; + background-color : var(--HB_Color_WatercolorStain); /*default color*/ + --wc : @watercolor1; /*default image*/ + z-index : -2; + } + + .watercolor1 { --wc : @watercolor1; } + .watercolor2 { --wc : @watercolor2; } + .watercolor3 { --wc : @watercolor3; } + .watercolor4 { --wc : @watercolor4; } + .watercolor5 { --wc : @watercolor5; } + .watercolor6 { --wc : @watercolor6; } + .watercolor7 { --wc : @watercolor7; } + .watercolor8 { --wc : @watercolor8; } + .watercolor9 { --wc : @watercolor9; } + .watercolor10 { --wc : @watercolor10; } + .watercolor11 { --wc : @watercolor11; } + .watercolor12 { --wc : @watercolor12; } + + //************************************ + // * CODE BLOCKS + // ************************************/ + code{ + font-family : "Courier New", Courier, monospace; + white-space : pre-wrap; + overflow-wrap : break-word; + } + + pre code{ + width : 100%; + display : inline-block; + } + //***************************** + // * EXTRAS + // *****************************/ + .columnSplit { + visibility : hidden; + -webkit-column-break-after : always; + break-after : always; + -moz-column-break-after : always; + margin-top : 0; + & + * { + margin-top : 0; + } + } + //Avoid breaking up + blockquote,table{ + z-index : 15; + -webkit-column-break-inside : avoid; + page-break-inside : avoid; + break-inside : avoid; + } + // Nested lists + ul ul,ol ol,ul ol,ol ul{ + margin-bottom : 0px; + margin-left : 1.5em; + } + li{ + -webkit-column-break-inside : avoid; + page-break-inside : avoid; + break-inside : avoid; } } - /* Watercolor */ - [class*="watercolor"] { - position : absolute; - width : 2000px; /* dimensions need to be real big so the user can set */ - height : 2000px; /* height or width and the image will maintain aspect ratio */ - -webkit-mask-image : var(--wc); - -webkit-mask-size : contain; - -webkit-mask-repeat : no-repeat; - mask-image : var(--wc); - mask-size : contain; - mask-repeat : no-repeat; - background-size : cover; - background-color : var(--HB_Color_WatercolorStain); /*default color*/ - --wc : @watercolor1; /*default image*/ - z-index : -2; - } - - .watercolor1 { --wc : @watercolor1; } - .watercolor2 { --wc : @watercolor2; } - .watercolor3 { --wc : @watercolor3; } - .watercolor4 { --wc : @watercolor4; } - .watercolor5 { --wc : @watercolor5; } - .watercolor6 { --wc : @watercolor6; } - .watercolor7 { --wc : @watercolor7; } - .watercolor8 { --wc : @watercolor8; } - .watercolor9 { --wc : @watercolor9; } - .watercolor10 { --wc : @watercolor10; } - .watercolor11 { --wc : @watercolor11; } - .watercolor12 { --wc : @watercolor12; } - - //************************************ - // * CODE BLOCKS - // ************************************/ - code{ - font-family : "Courier New", Courier, monospace; - white-space : pre-wrap; - overflow-wrap : break-word; - } - - pre code{ - width : 100%; - display : inline-block; - } //***************************** - // * EXTRAS + // * MUSTACHE DIVS/SPANS // *****************************/ - .columnSplit { - visibility : hidden; - -webkit-column-break-after : always; - break-after : always; - -moz-column-break-after : always; - margin-top : 0; - & + * { - margin-top : 0; + .page { + .block { + break-inside : avoid; + display : inline-block; + width : 100%; + } + .inline-block { + display : inline-block; + text-indent : initial; } } - //Avoid breaking up - blockquote,table{ - z-index : 15; - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; - } - // Nested lists - ul ul,ol ol,ul ol,ol ul{ - margin-bottom : 0px; - margin-left : 1.5em; - } - li{ - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; - } -} -//***************************** -// * MUSTACHE DIVS/SPANS -// *****************************/ -.page { - .block { - break-inside : avoid; - display : inline-block; - width : 100%; + //***************************** + // * DEFINITION LISTS + // *****************************/ + .page { + dl { + padding-left : 1em; + white-space : pre-line; + } + dt { + display : inline; + margin-right : 0.5ch; + margin-left : -1em; + } + dd { + display : inline; + margin-left : 0; + text-indent : 0; + } } - .inline-block { - display : inline-block; - text-indent : initial; - } -} -//***************************** -// * DEFINITION LISTS -// *****************************/ -.page { - dl { - padding-left : 1em; - white-space : pre-line; - } - dt { - display : inline; - margin-right : 0.5ch; - margin-left : -1em; - } - dd { - display : inline; - margin-left : 0; - text-indent : 0; - } -} - -//***************************** -// * BLANK LINE -// *****************************/ -.page { - .blank { - height : 1em; - margin-top : 0; - & + * { - margin-top : 0; - } - } -} - -//***************************** -// * WIDE -// *****************************/ -.page { - .wide{ - column-span : all; - display : block; - margin-bottom : 1em; - &+* { + //***************************** + // * BLANK LINE + // *****************************/ + .page { + .blank { + height : 1em; margin-top : 0; + & + * { + margin-top : 0; + } + } + } + + //***************************** + // * WIDE + // *****************************/ + .page { + .wide{ + column-span : all; + display : block; + margin-bottom : 1em; + &+* { + margin-top : 0; + } } } } diff --git a/themes/V3/Journal/dropdownPreview.png b/themes/V3/Journal/dropdownPreview.png new file mode 100644 index 000000000..114e3375b Binary files /dev/null and b/themes/V3/Journal/dropdownPreview.png differ diff --git a/themes/V3/Journal/style.less b/themes/V3/Journal/style.less index 2e2ada5c8..f3b70cec2 100644 --- a/themes/V3/Journal/style.less +++ b/themes/V3/Journal/style.less @@ -1,559 +1,561 @@ -@import (less) './themes/fonts/Journal/fonts.less'; -@import (less) './themes/assets/assets.less'; +@layer V3_Journal { + @import (less) './themes/fonts/Journal/fonts.less'; + @import (less) './themes/assets/assets.less'; -:root { - //Colors - --HB_Color_Background : unset; // Light parchment - --HB_Color_Text : #412121; // Dark Maroon Brown - --HB_Color_Text2 : #261C13CC; //Dark Brown - --HB_Color_HeaderText : #58180D; // Dark Maroon - --HB_Color_CaptionText : #766649; // Brown - --HB_Color_WatercolorStain : #BBAD82; // Light brown -} + :root { + //Colors + --HB_Color_Background : unset; // Light parchment + --HB_Color_Text : #412121; // Dark Maroon Brown + --HB_Color_Text2 : #261C13CC; //Dark Brown + --HB_Color_HeaderText : #58180D; // Dark Maroon + --HB_Color_CaptionText : #766649; // Brown + --HB_Color_WatercolorStain : #BBAD82; // Light brown + } -.useSansSerif(){ - font-family : PermanentMarker; - font-size : 0.3cm; - line-height : 1.2em; - color : var(--HB_Color_Text2); - p,dl,ul,ol { + .useSansSerif(){ + font-family : PermanentMarker; + font-size : 0.3cm; line-height : 1.2em; - } - ul, ol { - padding-left : 1em; - } - em{ - font-style : italic; - } - strong{ - font-weight : 800; - font-size : 1.1em; - } - h5 + * { - margin-top : 0.1cm; - } -} -.useColumns(@multiplier : 1, @fillMode: balance){ - column-gap : 0.5cm; -} - -.page{ - background-size : 200% 100%; - background-repeat : no-repeat; - filter : drop-shadow(1px 4px 14px black); - background-image : url(/assets/Journal/Background1.webp); - padding : 2.1cm 1.9cm 1.7cm 3.8cm; - &:nth-of-type(2n + 1) { - background-position : left; - } - &:nth-of-type(2n) { - background-position : right; - padding : 2.1cm 3.9cm 1.7cm 1.8cm; - } - &:nth-of-type(2) { - background-image : url(/assets/Journal/Background2.webp); //Only first page should show ribbon - } - - & .columnWrapper { - //transform: rotate(-0.5deg); // Breaks absolute positioning of images/footers. Wait for Chrome fix - } -} - - //***************************** - // * BASE - // *****************************/ -.page{ - color : var(--HB_Color_Text); - font-family : ReenieBeanie; - font-size : 0.53cm; - line-height : 0.8em; - p + * { - margin-top : 0.325cm; - } - p + p{ - margin-top : 0; - } - ul{ - margin-bottom : 0.8em; - } - ol{ - margin-bottom : 0.8em; - } - em{ - text-decoration : underline; - font-style : unset; - } - del{ - text-decoration-style: double; - } - - //Indents after p or lists - p+p, ul+p, ol+p{ - text-indent : 1em; - } - //***************************** - // * HEADERS - // *****************************/ - h1,h2,h3,h4,h5{ - font-family : FrederickaTheGreat; - font-weight : unset; - color : var(--HB_Color_HeaderText); - } - h1{ - margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE - font-size : 0.89cm; - line-height : 1em; - font-variant : small-caps; - &+p::first-letter{ - float : left; - font-family : FrederickaTheGreat; - line-height : 1em; - font-size : 1.9em; - padding-left : 40px; //Allow background color to extend into margins - margin-top : -0.3cm; - margin-bottom : -20px; - margin-left : -40px; - margin-right : 0.1em; - padding-top : 0.3em; - padding-bottom : 2px; + color : var(--HB_Color_Text2); + p,dl,ul,ol { + line-height : 1.2em; } - &+p::first-line{ - font-variant : small-caps; + ul, ol { + padding-left : 1em; + } + em{ + font-style : italic; + } + strong{ + font-weight : 800; + font-size : 1.1em; + } + h5 + * { + margin-top : 0.1cm; } } - h2{ - font-size : 0.62cm; - line-height : 0.988em; //Font is misaligned. Shift up slightly + .useColumns(@multiplier : 1, @fillMode: balance){ + column-gap : 0.5cm; } - h3{ - font-size : 0.575cm; - line-height : 0.995em; //Font is misaligned. Shift up slightly - margin-left : -0.9em; - } - h4{ - font-size : 0.55cm; - line-height : 0.971em; //Font is misaligned. Shift up slightly - color : var(--HB_Color_Text); - padding-bottom : 5px; - transform:rotate(0deg); + + .page{ + background-size : 200% 100%; + background-repeat : no-repeat; + filter : drop-shadow(1px 4px 14px black); + background-image : url(/assets/Journal/Background1.webp); + padding : 2.1cm 1.9cm 1.7cm 3.8cm; + &:nth-of-type(2n + 1) { + background-position : left; + } &:nth-of-type(2n) { - transform:rotate(1deg); + background-position : right; + padding : 2.1cm 3.9cm 1.7cm 1.8cm; } - &:nth-of-type(3n) { - transform:rotate(-1.5deg); + &:nth-of-type(2) { + background-image : url(/assets/Journal/Background2.webp); //Only first page should show ribbon + } + + & .columnWrapper { + //transform: rotate(-0.5deg); // Breaks absolute positioning of images/footers. Wait for Chrome fix } } - h5{ - font-family : PermanentMarker; - font-size : 0.4cm; - color : var(--HB_Color_Text2); - font-weight : bold; - line-height : 0.951em; //Font is misaligned. Shift up slightly - & + * { + + //***************************** + // * BASE + // *****************************/ + .page{ + color : var(--HB_Color_Text); + font-family : ReenieBeanie; + font-size : 0.53cm; + line-height : 0.8em; + p + * { + margin-top : 0.325cm; + } + p + p{ + margin-top : 0; + } + ul{ + margin-bottom : 0.8em; + } + ol{ + margin-bottom : 0.8em; + } + em{ + text-decoration : underline; + font-style : unset; + } + del{ + text-decoration-style: double; + } + + //Indents after p or lists + p+p, ul+p, ol+p{ + text-indent : 1em; + } + //***************************** + // * HEADERS + // *****************************/ + h1,h2,h3,h4,h5{ + font-family : FrederickaTheGreat; + font-weight : unset; + color : var(--HB_Color_HeaderText); + } + h1{ + margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE + font-size : 0.89cm; + line-height : 1em; + font-variant : small-caps; + &+p::first-letter{ + float : left; + font-family : FrederickaTheGreat; + line-height : 1em; + font-size : 1.9em; + padding-left : 40px; //Allow background color to extend into margins + margin-top : -0.3cm; + margin-bottom : -20px; + margin-left : -40px; + margin-right : 0.1em; + padding-top : 0.3em; + padding-bottom : 2px; + } + &+p::first-line{ + font-variant : small-caps; + } + } + h2{ + font-size : 0.62cm; + line-height : 0.988em; //Font is misaligned. Shift up slightly + } + h3{ + font-size : 0.575cm; + line-height : 0.995em; //Font is misaligned. Shift up slightly + margin-left : -0.9em; + } + h4{ + font-size : 0.55cm; + line-height : 0.971em; //Font is misaligned. Shift up slightly + color : var(--HB_Color_Text); + padding-bottom : 5px; + transform:rotate(0deg); + &:nth-of-type(2n) { + transform:rotate(1deg); + } + &:nth-of-type(3n) { + transform:rotate(-1.5deg); + } + } + h5{ + font-family : PermanentMarker; + font-size : 0.4cm; + color : var(--HB_Color_Text2); + font-weight : bold; + line-height : 0.951em; //Font is misaligned. Shift up slightly + & + * { + margin-top : 0.2cm; + } + } + //***************************** + // * TABLE + // *****************************/ + table{ + .useSansSerif(); + & + * { + margin-top : 0.325cm; + } + thead{ + th{ + vertical-align : bottom; + padding : 0.14em 0; + } + } + tbody{ + tr{ + td{ + padding : 0.14em 0; + } + &:nth-child(odd){ + background-image : linear-gradient(to left, #41212100, #41212122, #41212100); + } + } + } + } + //***************************** + // * NOTE + // *****************************/ + .note{ + .useSansSerif(); + border-style : solid; + border-width : 1px; + border-image-source : url(/assets/Journal/Border1.png); + border-image-slice : 18 18 18 18; + border-image-width : 6px 6px 6px 6px; + border-image-outset : 5px 5px 5px 5px; + border-image-repeat : stretch stretch; + background-image : url(/assets/Journal/HashMarks.png), + linear-gradient(to bottom right, #ff000000, #a36a4e14, #41212100); + background-size : 120% 120%; + background-repeat : no-repeat; + background-position : center; + padding : 0.2cm; + :where(&) { + margin-top : 9px; //Prevent top border getting cut off on colbreak + } + & + * { + margin-top : 0.45cm; + } + h5 { + font-size : 0.375cm; + } + p{ + padding-bottom : 0px; + } + :last-child { + margin-bottom : 0; + } + } + //************************************ + // * DESCRIPTIVE TEXT BOX + // ************************************/ + * + .descriptive { + margin-top : 0.6cm; + } + .descriptive{ + .useSansSerif(); + border-style : solid; + border-width : 1px; + border-image-source : url('/assets/Journal/Border2.png'); + border-image-slice : 48 48 48 48; + border-image-width : 20px; + border-image-outset : 16px 20px 16px 20px; + border-image-repeat : stretch stretch; + background-image : url(/assets/Journal/HashMarks.png), + linear-gradient(to bottom right, #ff000000, #41212114, #41212100); + background-size : 120% 120%; + background-repeat : no-repeat; + background-position : center; + padding : 0.2cm; + :where(&) { + margin-top : 4px; //Prevent top border getting cut off on colbreak + } + & + * { + margin-top : 0.45cm; + } + h5 { + font-size : 0.375cm; + } + p{ + padding-bottom : 0px; + } + :last-child { + margin-bottom : 0; + } + } + //***************************** + // * Images Snippets + // *****************************/ + + /* Arist Credit */ + .artist { + position : absolute; + width : auto; + text-align : center; + font-family : WalterTurncoat; + font-size : 0.27cm; + color : var(--HB_Color_CaptionText); + p, p + p { + margin : unset; + text-indent : unset; + line-height : 1em; + } + h5 { + font-size : 1.3em; + font-family : WalterTurncoat; + } + a{ + color : inherit; + text-decoration : unset; + &:hover { + text-decoration : underline; + } + } + } + + //***************************** + // * MONSTER STAT BLOCK + // *****************************/ + .monster { + .useSansSerif(); + &.frame { + border-style : solid; + border-width : 7px 6px; + border-image-source : url('/assets/Journal/Border3.png'); + border-image-slice : 63 74 63 74; + border-image-width : 15px 20px 15px 20px; + border-image-outset : 12px 12px 12px 12px; + border-image-repeat : stretch round; + background-image : url('/assets/Journal/HashMarks.png'), + linear-gradient(to bottom right, #ff000000, #a36a4e14, #41212100); + background-blend-mode : screen multiply; + background-size : 100%; + padding : 0.2cm; + } + + color: var(--HB_Color_Text); + position : relative; + padding : 0px; + margin-bottom : 0.325cm; + + //Headers + h2{ + font-size : 0.62cm; + line-height : 1em; + margin : 0; + &+p { + margin-bottom : 0; //Monster size and type subtext + } + } + h3{ + margin-left : 0; + font-variant : small-caps; + padding-bottom : 0.05cm; + } + hr{ + visibility : visible; + height : 6px; + margin : 0.12cm 0cm; + background-image : url('/assets/Journal/HorizontalRule.png'); + background-size : 100% 100%; + } + hr:last-of-type + * { + margin-top : 0.325cm; // Space after last HR + } + + // Monster Ability table + hr + table:first-of-type{ + margin : 0; + column-span : none; + background-image : none; + border-style : none; + border-image : none; + color : inherit; + tr { + background-image : none; + } + td,th { + padding: 0px; + } + } + + :last-child { + margin-bottom : 0; + } + + strong, em { + font-style : normal; + text-decoration : none; + } + } + + //Full Width + .monster.wide{ + .useColumns(0.96, @fillMode: balance); + } + + //***************************** + // * FOOTER + // *****************************/ + &:nth-child(odd){ + .pageNumber{ + left : 3cm; + } + .footnote{ + left : 4.5cm; + text-align : left; + } + } + .pageNumber{ + font-family : FrederickaTheGreat; + position : absolute; + right : 3cm; + bottom : 1.25cm; + width : 50px; + font-size : 0.9em; + color : var(--HB_Color_HeaderText); + text-align : center; + text-indent : 0; + &.auto::after { + content : counter(phb-page-numbers); + } + } + .footnote{ + position : absolute; + right : 4.5cm; + bottom : 1.25cm; + z-index : 150; + width : 200px; + font-size : 0.8em; + color : var(--HB_Color_HeaderText); + text-align : right; + } + //************************************ + // * CODE BLOCKS + // ************************************/ + code{ + font-size : 0.3cm; + padding : 0px 4px; + color : var(--HB_Color_Text); + vertical-align : middle; + background-color : #faf7ea; + border-radius : 4px; + } + + pre code{ + border-style : solid; + border-width : 1px; + border-image : @codeBorderImage 26 stretch; + border-image-width : 10px; + border-image-outset : 2px; + border-radius : 12px; + margin-bottom : 2px; + padding : 0.15cm; + .page :where(&) { + margin-top : 2px; //Prevent top border getting cut off on colbreak + } + & + * { + margin-top : 0.325cm; + } + } + //***************************** + // * EXTRAS + // *****************************/ + hr{ + visibility : hidden; + border : none; + margin : 0px; + } + //Text indent right after table + table+p{ + text-indent : 1em; + } + a, a:visited, a:hover { + color: var(--HB_Color_Text); + transition:all 1s ease; + } + a:hover { + color:red; + } + } + //***************************** + // * SPELL LIST + // *****************************/ + + .page .spellList{ + .useSansSerif(); + font-family : PermanentMarker; + column-count : 2; + ul+h5{ + margin-top : 15px; + } + ul{ + margin-bottom : 0.5em; + padding-left : 1em; + text-indent : -1em; + list-style-type : none; + -webkit-column-break-inside : auto; + page-break-inside : auto; + break-inside : auto; + } + &.wide{ + column-count : 4; + } + } + + //***************************** + // * CLASS TABLE + // *****************************/ + .page .classTable{ + th[colspan]:not([rowspan]) { + white-space : nowrap; + } + h5 + table{ margin-top : 0.2cm; } } //***************************** - // * TABLE + // * TABLE OF CONTENTS // *****************************/ - table{ - .useSansSerif(); - & + * { - margin-top : 0.325cm; - } - thead{ - th{ - vertical-align : bottom; - padding : 0.14em 0; - } - } - tbody{ - tr{ - td{ - padding : 0.14em 0; - } - &:nth-child(odd){ - background-image : linear-gradient(to left, #41212100, #41212122, #41212100); - } - } - } - } - //***************************** - // * NOTE - // *****************************/ - .note{ - .useSansSerif(); - border-style : solid; - border-width : 1px; - border-image-source : url(/assets/Journal/Border1.png); - border-image-slice : 18 18 18 18; - border-image-width : 6px 6px 6px 6px; - border-image-outset : 5px 5px 5px 5px; - border-image-repeat : stretch stretch; - background-image : url(/assets/Journal/HashMarks.png), - linear-gradient(to bottom right, #ff000000, #a36a4e14, #41212100); - background-size : 120% 120%; - background-repeat : no-repeat; - background-position : center; - padding : 0.2cm; - :where(&) { - margin-top : 9px; //Prevent top border getting cut off on colbreak - } - & + * { - margin-top : 0.45cm; - } - h5 { - font-size : 0.375cm; - } - p{ - padding-bottom : 0px; - } - :last-child { - margin-bottom : 0; - } - } - //************************************ - // * DESCRIPTIVE TEXT BOX - // ************************************/ - * + .descriptive { - margin-top : 0.6cm; - } - .descriptive{ - .useSansSerif(); - border-style : solid; - border-width : 1px; - border-image-source : url('/assets/Journal/Border2.png'); - border-image-slice : 48 48 48 48; - border-image-width : 20px; - border-image-outset : 16px 20px 16px 20px; - border-image-repeat : stretch stretch; - background-image : url(/assets/Journal/HashMarks.png), - linear-gradient(to bottom right, #ff000000, #41212114, #41212100); - background-size : 120% 120%; - background-repeat : no-repeat; - background-position : center; - padding : 0.2cm; - :where(&) { - margin-top : 4px; //Prevent top border getting cut off on colbreak - } - & + * { - margin-top : 0.45cm; - } - h5 { - font-size : 0.375cm; - } - p{ - padding-bottom : 0px; - } - :last-child { - margin-bottom : 0; - } - } - //***************************** - // * Images Snippets - // *****************************/ - - /* Arist Credit */ - .artist { - position : absolute; - width : auto; - text-align : center; - font-family : WalterTurncoat; - font-size : 0.27cm; - color : var(--HB_Color_CaptionText); - p, p + p { - margin : unset; - text-indent : unset; - line-height : 1em; - } - h5 { - font-size : 1.3em; - font-family : WalterTurncoat; + .page .toc{ + -webkit-column-break-inside : avoid; + page-break-inside : avoid; + break-inside : avoid; + h1 { + text-align : center; + margin-bottom : 0.3cm; } a{ + display : inline; color : inherit; - text-decoration : unset; - &:hover { + text-decoration : none; + &:hover{ text-decoration : underline; } } - } - - //***************************** - // * MONSTER STAT BLOCK - // *****************************/ - .monster { - .useSansSerif(); - &.frame { - border-style : solid; - border-width : 7px 6px; - border-image-source : url('/assets/Journal/Border3.png'); - border-image-slice : 63 74 63 74; - border-image-width : 15px 20px 15px 20px; - border-image-outset : 12px 12px 12px 12px; - border-image-repeat : stretch round; - background-image : url('/assets/Journal/HashMarks.png'), - linear-gradient(to bottom right, #ff000000, #a36a4e14, #41212100); - background-blend-mode : screen multiply; - background-size : 100%; - padding : 0.2cm; - } - - color: var(--HB_Color_Text); - position : relative; - padding : 0px; - margin-bottom : 0.325cm; - - //Headers - h2{ - font-size : 0.62cm; - line-height : 1em; - margin : 0; - &+p { - margin-bottom : 0; //Monster size and type subtext + h4 { + margin-top : 0.2cm; + line-height : 0.4cm; + & + ul li { + line-height: 1.2em; } } - h3{ - margin-left : 0; - font-variant : small-caps; - padding-bottom : 0.05cm; - } - hr{ - visibility : visible; - height : 6px; - margin : 0.12cm 0cm; - background-image : url('/assets/Journal/HorizontalRule.png'); - background-size : 100% 100%; - } - hr:last-of-type + * { - margin-top : 0.325cm; // Space after last HR - } - - // Monster Ability table - hr + table:first-of-type{ - margin : 0; - column-span : none; - background-image : none; - border-style : none; - border-image : none; - color : inherit; - tr { - background-image : none; + ul{ + padding-left : 0; + list-style-type : none; + li + li h3 { + margin-top : 0.26cm; + line-height : 1em } - td,th { - padding: 0px; + h3 span:first-child::after { + border : none; } - } - - :last-child { - margin-bottom : 0; - } - - strong, em { - font-style : normal; - text-decoration : none; - } - } - - //Full Width - .monster.wide{ - .useColumns(0.96, @fillMode: balance); - } - - //***************************** - // * FOOTER - // *****************************/ - &:nth-child(odd){ - .pageNumber{ - left : 3cm; - } - .footnote{ - left : 4.5cm; - text-align : left; - } - } - .pageNumber{ - font-family : FrederickaTheGreat; - position : absolute; - right : 3cm; - bottom : 1.25cm; - width : 50px; - font-size : 0.9em; - color : var(--HB_Color_HeaderText); - text-align : center; - text-indent : 0; - &.auto::after { - content : counter(phb-page-numbers); - } - } - .footnote{ - position : absolute; - right : 4.5cm; - bottom : 1.25cm; - z-index : 150; - width : 200px; - font-size : 0.8em; - color : var(--HB_Color_HeaderText); - text-align : right; - } - //************************************ - // * CODE BLOCKS - // ************************************/ - code{ - font-size : 0.3cm; - padding : 0px 4px; - color : var(--HB_Color_Text); - vertical-align : middle; - background-color : #faf7ea; - border-radius : 4px; - } - - pre code{ - border-style : solid; - border-width : 1px; - border-image : @codeBorderImage 26 stretch; - border-image-width : 10px; - border-image-outset : 2px; - border-radius : 12px; - margin-bottom : 2px; - padding : 0.15cm; - .page :where(&) { - margin-top : 2px; //Prevent top border getting cut off on colbreak - } - & + * { - margin-top : 0.325cm; - } - } - //***************************** - // * EXTRAS - // *****************************/ - hr{ - visibility : hidden; - border : none; - margin : 0px; - } - //Text indent right after table - table+p{ - text-indent : 1em; - } - a, a:visited, a:hover { - color: var(--HB_Color_Text); - transition:all 1s ease; - } - a:hover { - color:red; - } -} -//***************************** -// * SPELL LIST -// *****************************/ - -.page .spellList{ - .useSansSerif(); - font-family : PermanentMarker; - column-count : 2; - ul+h5{ - margin-top : 15px; - } - ul{ - margin-bottom : 0.5em; - padding-left : 1em; - text-indent : -1em; - list-style-type : none; - -webkit-column-break-inside : auto; - page-break-inside : auto; - break-inside : auto; - } - &.wide{ - column-count : 4; - } -} - -//***************************** -// * CLASS TABLE -// *****************************/ -.page .classTable{ - th[colspan]:not([rowspan]) { - white-space : nowrap; - } - h5 + table{ - margin-top : 0.2cm; - } -} -//***************************** -// * TABLE OF CONTENTS -// *****************************/ -.page .toc{ - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; - h1 { - text-align : center; - margin-bottom : 0.3cm; - } - a{ - display : inline; - color : inherit; - text-decoration : none; - &:hover{ - text-decoration : underline; - } - } - h4 { - margin-top : 0.2cm; - line-height : 0.4cm; - & + ul li { - line-height: 1.2em; - } - } - ul{ - padding-left : 0; - list-style-type : none; - li + li h3 { - margin-top : 0.26cm; - line-height : 1em - } - h3 span:first-child::after { - border : none; - } - span { - display : table-cell; - &:first-child { - position : relative; - overflow : hidden; - &::after { - content : ""; - position : absolute; - bottom : 0.08cm; - margin-left : 0.06cm; /* Spacing before dot leaders */ - width : 100%; - border-bottom : 0.05cm dotted #000; + span { + display : table-cell; + &:first-child { + position : relative; + overflow : hidden; + &::after { + content : ""; + position : absolute; + bottom : 0.08cm; + margin-left : 0.06cm; /* Spacing before dot leaders */ + width : 100%; + border-bottom : 0.05cm dotted #000; + } + } + &:last-child { + font-family : ReenieBeanie; + font-size : 0.34cm; + font-weight : normal; + color : black; + text-align : right; + vertical-align : bottom; /* Keep page number bottom-aligned */ + width : 1%; + padding-left : 0.06cm; /* Spacing after dot leaders */ + /*white-space : nowrap; /* Uncomment if needed */ } } - &:last-child { - font-family : ReenieBeanie; - font-size : 0.34cm; - font-weight : normal; - color : black; - text-align : right; - vertical-align : bottom; /* Keep page number bottom-aligned */ - width : 1%; - padding-left : 0.06cm; /* Spacing after dot leaders */ - /*white-space : nowrap; /* Uncomment if needed */ + ul { /*List indent*/ + margin-left : 1em; } } - ul { /*List indent*/ - margin-left : 1em; + &.wide{ + .useColumns(0.96, @fillMode: balance); } } - &.wide{ - .useColumns(0.96, @fillMode: balance); + + //***************************** + // * WIDE + // *****************************/ + .page .wide { + margin-bottom : 0.45cm; } } - -//***************************** -// * WIDE -// *****************************/ -.page .wide { - margin-bottom : 0.45cm; -} diff --git a/themes/fonts/5e/fonts.less b/themes/fonts/5e/fonts.less index c8ef35c81..f5118a7cc 100644 --- a/themes/fonts/5e/fonts.less +++ b/themes/fonts/5e/fonts.less @@ -81,28 +81,28 @@ /* Cover Page */ @font-face { font-family: NodestoCapsCondensed; - src: url('../fonts/5e/Nodesto Caps Condensed.woff2'); + src: url('../../../fonts/5e/Nodesto Caps Condensed.woff2'); font-weight: normal; font-style: normal; } @font-face { font-family: NodestoCapsCondensed; - src: url('../fonts/5e/Nodesto Caps Condensed Bold.woff2'); + src: url('../../../fonts/5e/Nodesto Caps Condensed Bold.woff2'); font-weight: bold; font-style: normal; } @font-face { font-family: NodestoCapsCondensed; - src: url('../fonts/5e/Nodesto Caps Condensed Italic.woff2'); + src: url('../../../fonts/5e/Nodesto Caps Condensed Italic.woff2'); font-weight: normal; font-style: italic; } @font-face { font-family: NodestoCapsCondensed; - src: url('../fonts/5e/Nodesto Caps Condensed Bold Italic.woff2'); + src: url('../../../fonts/5e/Nodesto Caps Condensed Bold Italic.woff2'); font-weight: bold; font-style: italic; -} \ No newline at end of file +}