${this.state.brew.style} ` }} />;
+ return
@layer styleTab {\n${this.state.brew.style}\n} ` }} />;
},
renderPages : function(){
diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx
index eb092b11e..232c2a1e3 100644
--- a/client/homebrew/pages/sharePage/sharePage.jsx
+++ b/client/homebrew/pages/sharePage/sharePage.jsx
@@ -12,21 +12,13 @@ const Account = require('../../navbar/account.navitem.jsx');
const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx');
+const { DEFAULT_BREW_LOAD } = require('../../../../server/brewDefaults.js');
const SharePage = createClass({
displayName : 'SharePage',
getDefaultProps : function() {
return {
- brew : {
- title : '',
- text : '',
- style : '',
- shareId : null,
- createdAt : null,
- updatedAt : null,
- views : 0,
- renderer : ''
- }
+ brew : DEFAULT_BREW_LOAD
};
},
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/package-lock.json b/package-lock.json
index 47b22a8f0..a5bd399d2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,16 +1,16 @@
{
"name": "homebrewery",
- "version": "3.3.1",
+ "version": "3.6.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "homebrewery",
- "version": "3.3.1",
+ "version": "3.6.0",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "@babel/core": "^7.19.6",
+ "@babel/core": "^7.20.12",
"@babel/plugin-transform-runtime": "^7.19.6",
"@babel/preset-env": "^7.19.4",
"@babel/preset-react": "^7.18.6",
@@ -23,33 +23,33 @@
"express": "^4.18.2",
"express-async-handler": "^1.2.0",
"express-static-gzip": "2.1.7",
- "fs-extra": "10.1.0",
- "googleapis": "109.0.1",
+ "fs-extra": "11.1.0",
+ "googleapis": "110.0.0",
"js-yaml": "^4.1.0",
"jwt-simple": "^0.5.6",
"less": "^3.13.1",
"lodash": "^4.17.21",
- "marked": "4.2.3",
+ "marked": "4.2.12",
"marked-extended-tables": "^1.0.5",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.4",
- "mongoose": "^6.7.0",
+ "mongoose": "^6.9.0",
"nanoid": "3.3.4",
"nconf": "^0.12.0",
"npm": "^8.10.0",
- "react": "^16.14.0",
- "react-dom": "^16.14.0",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
"react-frame-component": "4.1.3",
- "react-router-dom": "6.4.3",
+ "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.28.0",
- "eslint-plugin-react": "^7.31.11",
- "jest": "^29.2.2",
- "supertest": "^6.3.1"
+ "eslint": "^8.33.0",
+ "eslint-plugin-react": "^7.32.2",
+ "jest": "^29.4.1",
+ "supertest": "^6.3.3"
},
"engines": {
"node": "16.11.x"
@@ -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.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.208.0.tgz",
- "integrity": "sha512-mQkDR+8VLCafg9KI4TgftftBOL170ricyb+HgV8n5jLDrEG+TfOfud8e6us2lIFESEuMpohC+/8yIcf6JjKkMg==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -143,47 +143,45 @@
"optional": true
},
"node_modules/@aws-sdk/client-cognito-identity": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.208.0.tgz",
- "integrity": "sha512-mYlkNxRYJyXkHwY+6kv2Wth2xcP+dfgDrqfnHqMAKL1TGPVtkCKFYw0xAk4aBrlRfx1unyQFDen2NfBVtITCSw==",
+ "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.208.0",
- "@aws-sdk/config-resolver": "3.208.0",
- "@aws-sdk/credential-provider-node": "3.208.0",
- "@aws-sdk/fetch-http-handler": "3.208.0",
- "@aws-sdk/hash-node": "3.208.0",
- "@aws-sdk/invalid-dependency": "3.208.0",
- "@aws-sdk/middleware-content-length": "3.208.0",
- "@aws-sdk/middleware-endpoint": "3.208.0",
- "@aws-sdk/middleware-host-header": "3.208.0",
- "@aws-sdk/middleware-logger": "3.208.0",
- "@aws-sdk/middleware-recursion-detection": "3.208.0",
- "@aws-sdk/middleware-retry": "3.208.0",
- "@aws-sdk/middleware-serde": "3.208.0",
- "@aws-sdk/middleware-signing": "3.208.0",
- "@aws-sdk/middleware-stack": "3.208.0",
- "@aws-sdk/middleware-user-agent": "3.208.0",
- "@aws-sdk/node-config-provider": "3.208.0",
- "@aws-sdk/node-http-handler": "3.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/smithy-client": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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-base64-browser": "3.208.0",
- "@aws-sdk/util-base64-node": "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.208.0",
- "@aws-sdk/util-defaults-mode-node": "3.208.0",
- "@aws-sdk/util-endpoints": "3.208.0",
- "@aws-sdk/util-user-agent-browser": "3.208.0",
- "@aws-sdk/util-user-agent-node": "3.208.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": {
@@ -197,50 +195,97 @@
"optional": true
},
"node_modules/@aws-sdk/client-sso": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.208.0.tgz",
- "integrity": "sha512-3e6kEFtuxqZVv1cLGbXFAytTPzR1GpctKITEtJR0MFy3pzj8ttbybrHe0F8z2AqAtDhna1i3u1WVZa+LK3gE9Q==",
+ "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.208.0",
- "@aws-sdk/fetch-http-handler": "3.208.0",
- "@aws-sdk/hash-node": "3.208.0",
- "@aws-sdk/invalid-dependency": "3.208.0",
- "@aws-sdk/middleware-content-length": "3.208.0",
- "@aws-sdk/middleware-endpoint": "3.208.0",
- "@aws-sdk/middleware-host-header": "3.208.0",
- "@aws-sdk/middleware-logger": "3.208.0",
- "@aws-sdk/middleware-recursion-detection": "3.208.0",
- "@aws-sdk/middleware-retry": "3.208.0",
- "@aws-sdk/middleware-serde": "3.208.0",
- "@aws-sdk/middleware-stack": "3.208.0",
- "@aws-sdk/middleware-user-agent": "3.208.0",
- "@aws-sdk/node-config-provider": "3.208.0",
- "@aws-sdk/node-http-handler": "3.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/smithy-client": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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-base64-browser": "3.208.0",
- "@aws-sdk/util-base64-node": "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.208.0",
- "@aws-sdk/util-defaults-mode-node": "3.208.0",
- "@aws-sdk/util-endpoints": "3.208.0",
- "@aws-sdk/util-user-agent-browser": "3.208.0",
- "@aws-sdk/util-user-agent-node": "3.208.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": {
"node": ">=14.0.0"
}
},
+ "node_modules/@aws-sdk/client-sso-oidc": {
+ "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": "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.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": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-sso-oidc/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/client-sso/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
@@ -248,47 +293,45 @@
"optional": true
},
"node_modules/@aws-sdk/client-sts": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.208.0.tgz",
- "integrity": "sha512-xmPxI/vW0YVm2YhmIfdTQYY8b8dvzP0ordgooDlzAZVj5KnpZLVzQUxin5EqVcZYFJp6qEkVwmFK03QLy9fYOw==",
+ "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.208.0",
- "@aws-sdk/credential-provider-node": "3.208.0",
- "@aws-sdk/fetch-http-handler": "3.208.0",
- "@aws-sdk/hash-node": "3.208.0",
- "@aws-sdk/invalid-dependency": "3.208.0",
- "@aws-sdk/middleware-content-length": "3.208.0",
- "@aws-sdk/middleware-endpoint": "3.208.0",
- "@aws-sdk/middleware-host-header": "3.208.0",
- "@aws-sdk/middleware-logger": "3.208.0",
- "@aws-sdk/middleware-recursion-detection": "3.208.0",
- "@aws-sdk/middleware-retry": "3.208.0",
- "@aws-sdk/middleware-sdk-sts": "3.208.0",
- "@aws-sdk/middleware-serde": "3.208.0",
- "@aws-sdk/middleware-signing": "3.208.0",
- "@aws-sdk/middleware-stack": "3.208.0",
- "@aws-sdk/middleware-user-agent": "3.208.0",
- "@aws-sdk/node-config-provider": "3.208.0",
- "@aws-sdk/node-http-handler": "3.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/smithy-client": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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-base64-browser": "3.208.0",
- "@aws-sdk/util-base64-node": "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.208.0",
- "@aws-sdk/util-defaults-mode-node": "3.208.0",
- "@aws-sdk/util-endpoints": "3.208.0",
- "@aws-sdk/util-user-agent-browser": "3.208.0",
- "@aws-sdk/util-user-agent-node": "3.208.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"
},
@@ -303,15 +346,15 @@
"optional": true
},
"node_modules/@aws-sdk/config-resolver": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.208.0.tgz",
- "integrity": "sha512-eLwI7rjk3AJj/S8PqRcUi9iBD+cTm1Nzu1CmYyeiwU6YbJLe5/2CrhW1wjkOGleE+aD967U1TWiB18tsx6fj+w==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.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.208.0",
+ "@aws-sdk/util-middleware": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -325,14 +368,14 @@
"optional": true
},
"node_modules/@aws-sdk/credential-provider-cognito-identity": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.208.0.tgz",
- "integrity": "sha512-Eo7CkJTJQXrH0SsABcALRZXu7lqtdiwGVLWMtIzfL+Mb8weaIdWTJOvjSEOKe1ye3JMoOORf7UCPvAxOqywXKA==",
+ "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.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -346,13 +389,13 @@
"optional": true
},
"node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.208.0.tgz",
- "integrity": "sha512-FB+KUSpZc03wVTXxGnMmgtaP0sJOv0D7oyogHb7wcf5b7RjjwqoaeUcJHTdKRZaW6e1foLk3/L9uebxiWefDbQ==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/property-provider": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -366,15 +409,15 @@
"optional": true
},
"node_modules/@aws-sdk/credential-provider-imds": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.208.0.tgz",
- "integrity": "sha512-z4Bk42FQefBzS1SZ6/4gsAFE7tQhEoDmSUrFVSDu/9WwvGpFMnFfHLTBhivlcAHjc/eQ/hiWYLnQ8vahqhHl8w==",
+ "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.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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": {
@@ -388,18 +431,19 @@
"optional": true
},
"node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.208.0.tgz",
- "integrity": "sha512-AhsUj4046wMnxrPunNVEuddOIb//KsaicRqucw1Pb/UqszDRO4hYWkw7pL10MPIqjHBwuXYZ3vjDZrIhIWMn7A==",
+ "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.208.0",
- "@aws-sdk/credential-provider-imds": "3.208.0",
- "@aws-sdk/credential-provider-sso": "3.208.0",
- "@aws-sdk/credential-provider-web-identity": "3.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -413,20 +457,20 @@
"optional": true
},
"node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.208.0.tgz",
- "integrity": "sha512-KYoxlpDzvhw6v0ae0TgIGPP52HJUHQGI3yImhAZZTz0Nh5B0zd2stip+p36sCYRW6V+TJ5mo5minwqDmYe8oXg==",
+ "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.208.0",
- "@aws-sdk/credential-provider-imds": "3.208.0",
- "@aws-sdk/credential-provider-ini": "3.208.0",
- "@aws-sdk/credential-provider-process": "3.208.0",
- "@aws-sdk/credential-provider-sso": "3.208.0",
- "@aws-sdk/credential-provider-web-identity": "3.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -440,14 +484,14 @@
"optional": true
},
"node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.208.0.tgz",
- "integrity": "sha512-ExvFSJB/pVV+/BXIvFR9dgoGxWWnF6uqIw1hfpWCh28UDwsOQdbfUKblMovUfPDBUw67Laqy3mtiY37Jyo/EUQ==",
+ "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.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -461,15 +505,16 @@
"optional": true
},
"node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.208.0.tgz",
- "integrity": "sha512-GVUBmSG8eO4oXy5XpslAgVUBimEVBYmyCdwrwED79ey/7NWfkIVt46VZQapWyAJsarKW+VFpx7BYnam9YBR6hA==",
+ "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.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -483,13 +528,13 @@
"optional": true
},
"node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.208.0.tgz",
- "integrity": "sha512-7wtrdEr8uvDr5t0stimrXGsW4G+TQyluZ9OucCCY0HXgNihmnk1BIu+COuOSxRtFXHwCh4rIPaVE1ABG2Mq24g==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/property-provider": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -503,25 +548,25 @@
"optional": true
},
"node_modules/@aws-sdk/credential-providers": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.208.0.tgz",
- "integrity": "sha512-wKbxh5RAEMseF2zViWgIZZ95tXDu8TVgVHZYcH5hv+PJSGRKpldZIdbaARKjaO7uOmeVdj/jvY3RuopwhMFO+g==",
+ "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.208.0",
- "@aws-sdk/client-sso": "3.208.0",
- "@aws-sdk/client-sts": "3.208.0",
- "@aws-sdk/credential-provider-cognito-identity": "3.208.0",
- "@aws-sdk/credential-provider-env": "3.208.0",
- "@aws-sdk/credential-provider-imds": "3.208.0",
- "@aws-sdk/credential-provider-ini": "3.208.0",
- "@aws-sdk/credential-provider-node": "3.208.0",
- "@aws-sdk/credential-provider-process": "3.208.0",
- "@aws-sdk/credential-provider-sso": "3.208.0",
- "@aws-sdk/credential-provider-web-identity": "3.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -535,14 +580,14 @@
"optional": true
},
"node_modules/@aws-sdk/fetch-http-handler": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.208.0.tgz",
- "integrity": "sha512-GuwkwOeyLKCbSbnFlyHdlKd7u54cnQUI8NfVDAxpZvomY3PV476Tzg8XEyOYE67r5rR6XMqn6IK1PmFAACY+ew==",
+ "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.208.0",
- "@aws-sdk/querystring-builder": "3.208.0",
- "@aws-sdk/types": "3.208.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"
}
@@ -554,13 +599,14 @@
"optional": true
},
"node_modules/@aws-sdk/hash-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.208.0.tgz",
- "integrity": "sha512-X5u6nD9+wzaA6qhqbobxsIgiyDJMW8NgqjZgHoc5x1wz4unHUCEuSBZy1kbIZ6+EPZ9bQHQZ21gKgf1j5vhsvQ==",
+ "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.208.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": {
@@ -574,12 +620,12 @@
"optional": true
},
"node_modules/@aws-sdk/invalid-dependency": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.208.0.tgz",
- "integrity": "sha512-mUpbtijk14KntYy+w5FSvmsfj/Dqa8HylYeCKniKBKkQ1avjEz7CdizVoxyZrR3rldnLE3gItr0FEDRUhtfkAA==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
}
},
@@ -608,13 +654,13 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-content-length": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.208.0.tgz",
- "integrity": "sha512-8bLh7lHtmKQQ2fk0fGiP7pcVJglB/dz7Q9OooxFYK+eybqxfIDDUgKphA8AFT5W34tJRh5nhT3QTJ6zrOTQM3w==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/protocol-http": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -628,18 +674,18 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-endpoint": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.208.0.tgz",
- "integrity": "sha512-pVa/cyB6ronfTVAoKUUTFbAPslDPU43DWOKXY/bACC3ys1lFo1CWjz4dLSQARxEEW3iZ1yZTy0zoHXnNrw5CFQ==",
+ "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.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/signature-v4": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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.208.0",
+ "@aws-sdk/util-middleware": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -653,13 +699,13 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-host-header": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.208.0.tgz",
- "integrity": "sha512-3oyXK81TLWOZ2T/9Ltpbj/Z7R4QWSf+FCQRpY48ND2im/ALkgFRk/tmDTOshv+TQzW1q2lOSEeq4vK6yOCar7g==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/protocol-http": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -673,12 +719,12 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-logger": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.208.0.tgz",
- "integrity": "sha512-mwSpuWruB8RrgUAAW7w/lvadnMDesl/bZ2IELBgJri+2rIqLGbAtygJBiG0Y3e8/IeOHuKuGkN1rFYZ4SKr7/A==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -692,13 +738,13 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-recursion-detection": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.208.0.tgz",
- "integrity": "sha512-Dgpf5NEOYXvkQuGcbxvDovTh4HwO4ULJReGko67NJjgdZZyFS1fNykVPncxenRpsN9SJBigswYs3lwPVpqijzA==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/protocol-http": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -712,15 +758,16 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-retry": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.208.0.tgz",
- "integrity": "sha512-JAcN2e3PKWGcNX7run/jP6xJ7w2m15a2CpVrfMtka9p/I/3qnqB86jGUs/3Iv04FEqgXq7KTHbFBg8CndsaHEw==",
+ "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.208.0",
- "@aws-sdk/service-error-classification": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/util-middleware": "3.208.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"
},
@@ -744,16 +791,16 @@
}
},
"node_modules/@aws-sdk/middleware-sdk-sts": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.208.0.tgz",
- "integrity": "sha512-lFVodZHYLF7puXgNZ1m5ycKbyCPp79nqI+pkRXl066ZtZWzCW8+JKCaLjF3jfXlnvg6foPDJdxUvt0VU5EddGg==",
+ "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.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/signature-v4": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -767,12 +814,12 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-serde": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.208.0.tgz",
- "integrity": "sha512-3h2yP6qyf/IhfdvyFeNX7w4BF37vOZvfUDBq+wb1QEc7DCAskoUKWtCCKJ9HDq3IJQp8hzqY82eawUir6flqlQ==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -786,16 +833,16 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-signing": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.208.0.tgz",
- "integrity": "sha512-cMSWhg8xOrxZw04EYKEQQQ7RT+03rigS4KS3Uy6x/M+jFyoM+sRiY/7376sJCwlpvKH2xJIVpwPbKk/uz4j4DA==",
+ "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.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/signature-v4": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/util-middleware": "3.208.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": {
@@ -809,9 +856,9 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-stack": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.208.0.tgz",
- "integrity": "sha512-bvFPUa+RTB7PSRCUsO6bRlEtiEadrDES+dpNmInMNQ9kmbd4OhNOCb664hhtiglIIXX5cd8mSPEo+w/RV0kEEQ==",
+ "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"
@@ -827,13 +874,13 @@
"optional": true
},
"node_modules/@aws-sdk/middleware-user-agent": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.208.0.tgz",
- "integrity": "sha512-6RNf+TOZpiCy7xUcDSh8ji/x8ht1oAM+qIhm6hsEPLdI1cTvbPZrwowO9Y6L0J68V9OkEgLYiq77KKKYT7QQSw==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/protocol-http": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -847,14 +894,14 @@
"optional": true
},
"node_modules/@aws-sdk/node-config-provider": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.208.0.tgz",
- "integrity": "sha512-htjs1cDXYXEMwZ1q2vb7wfG3bOW4weWWkKcfT7vqzZKfTXoMH2mPpJIXnPE1PxXerOLXHGUU8qqhfl6LxjlnfQ==",
+ "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.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -868,15 +915,15 @@
"optional": true
},
"node_modules/@aws-sdk/node-http-handler": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.208.0.tgz",
- "integrity": "sha512-2t0b9Id7WekluqxQdPugAZhe/wdzW0L53rfMEfDS3R0INNSq1sEfddIfCzJrmfWDCrCOGIDNyxo/w7Ki3NclzQ==",
+ "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.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/querystring-builder": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -890,12 +937,12 @@
"optional": true
},
"node_modules/@aws-sdk/property-provider": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.208.0.tgz",
- "integrity": "sha512-aUhfuwXjZ5TGzLhBstuAMmbnxHXeSGhzoIS8yy465ifgc95p6cHFZf+ZibgwgCMaGrKlTDCia2zwwpKQHN+4cw==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -909,12 +956,12 @@
"optional": true
},
"node_modules/@aws-sdk/protocol-http": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.208.0.tgz",
- "integrity": "sha512-Sr9dmaW0Z9X9s16NHZn94efLRpaqLyLqABFPgjqE8cYP6eLX/VrmZGNR62GFVxCiyEEpVxy4Ddk1YkbRwnuonA==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -928,12 +975,12 @@
"optional": true
},
"node_modules/@aws-sdk/querystring-builder": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.208.0.tgz",
- "integrity": "sha512-1Rpauh5hWlK++KjsHQjHcSN7yE05hj1FVb0HaeLrFIJB5rQYWXK7DpOUhmv5SOmU+q6cIM2kNCrSxH31+WglMw==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"@aws-sdk/util-uri-escape": "3.201.0",
"tslib": "^2.3.1"
},
@@ -948,12 +995,12 @@
"optional": true
},
"node_modules/@aws-sdk/querystring-parser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.208.0.tgz",
- "integrity": "sha512-dVVLdP3il9bJX74/BNBjFn59XrEVBUZ4xSKYH6t7dgSz9uSu8DcT4pPzwaq+/94dVewCW3zq2jVA1iw1rK7JVQ==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -967,21 +1014,21 @@
"optional": true
},
"node_modules/@aws-sdk/service-error-classification": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.208.0.tgz",
- "integrity": "sha512-ZZWV3AOTd8UDcfXCNoQ8v4sHaTgFxGaXWO0NHHgqFbVYr1d+8EXQiOy/v8JsY1jrfoXBWXptTOcioCTeM0xBpw==",
+ "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.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.208.0.tgz",
- "integrity": "sha512-ZDmwOLNiBKfvtN1M2eG2bItw0+4hKDU/XKqB+yVI9Uo29o4XwtQ4Br7HixTlPYJAavmM1cCch8PVvnwngYAKPA==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -995,16 +1042,17 @@
"optional": true
},
"node_modules/@aws-sdk/signature-v4": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.208.0.tgz",
- "integrity": "sha512-+c5A8RsN4Lk3TXFiQ3ZsW7sJ4zYPPmYQ55ITSfjock5hzgM1vW43Mgvjjq6foW5L7SNfdhLH+NrhpgFwSF/GeA==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"@aws-sdk/util-hex-encoding": "3.201.0",
- "@aws-sdk/util-middleware": "3.208.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": {
@@ -1018,13 +1066,13 @@
"optional": true
},
"node_modules/@aws-sdk/smithy-client": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.208.0.tgz",
- "integrity": "sha512-4SGPAs7ZtG9AUYknJNkZTs+ww1cpdcPth5te+R/dN4anUbqtL2qvmbdZJ+8rzdAZKndXu0huKE1OZrR3COLciw==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/middleware-stack": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -1037,23 +1085,54 @@
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
"optional": true
},
- "node_modules/@aws-sdk/types": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.208.0.tgz",
- "integrity": "sha512-5AuOPtY1Hdf4xoEo+voRijl3OnFm8IB+oITXl+SN2iASJv+XPnRNw/QVbIxfGeWgWhmK31F+XdjTYsjT2rx8Qw==",
+ "node_modules/@aws-sdk/token-providers": {
+ "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.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": {
"node": ">=14.0.0"
}
},
- "node_modules/@aws-sdk/url-parser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.208.0.tgz",
- "integrity": "sha512-zhU231xkZbUh68Z/TGNRW30MGTZQVigGuMiJU6eOtL2aOulnKqI1Yjs/QejrTtPWsqSihWvxOUZ2cVRPyeOvrA==",
+ "node_modules/@aws-sdk/token-providers/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/types": {
+ "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": {
- "@aws-sdk/querystring-parser": "3.208.0",
- "@aws-sdk/types": "3.208.0",
+ "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.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.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
}
},
@@ -1076,40 +1155,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/@aws-sdk/util-base64-browser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.208.0.tgz",
- "integrity": "sha512-nR6S6aZqlr//Sy3+2J7G2mn5XG1ELBBTswvbp6kCo5BK9v/kESuzsHC5b6f3xzl/TY4JSG8Aj+h7x+kZHfKwwg==",
- "optional": true,
- "dependencies": {
- "tslib": "^2.3.1"
- }
- },
- "node_modules/@aws-sdk/util-base64-browser/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-base64-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.208.0.tgz",
- "integrity": "sha512-tCkSexa90loq8yU+BKAX5WIVQGq8IM/DdFhFphQd1azgOIBYxafA/aVw9mDY+to0mq4QRHiUwmUsmzLWEFSDJg==",
- "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-base64-node/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-base64/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
@@ -1187,13 +1232,13 @@
"optional": true
},
"node_modules/@aws-sdk/util-defaults-mode-browser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.208.0.tgz",
- "integrity": "sha512-i4cA074pycou1BPr7axFMiK3iHv+Tzjl/ZiN3Yc0BQDLWC9AQdrNodB4WAKnn4a4fWgA/MadfzKXnW1oltSzIg==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/property-provider": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"bowser": "^2.11.0",
"tslib": "^2.3.1"
},
@@ -1208,16 +1253,16 @@
"optional": true
},
"node_modules/@aws-sdk/util-defaults-mode-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.208.0.tgz",
- "integrity": "sha512-y9dENqcmiUb7/D3uwJsE/fV+RZ9CUc/cs4OcofO81sU29xz8Fg/XQarjSdGVZMTnrDd190GXymMcB4qpOYhtPw==",
+ "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.208.0",
- "@aws-sdk/credential-provider-imds": "3.208.0",
- "@aws-sdk/node-config-provider": "3.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -1231,12 +1276,12 @@
"optional": true
},
"node_modules/@aws-sdk/util-endpoints": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.208.0.tgz",
- "integrity": "sha512-FGJA07iEbC883bAaw0qtDrly5Y+1nR3ic+OOzGX2AsSgaeVAc1j8Lgg3br7ofBbr8p81ec6zN4syy4v7V0Wb0A==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -1286,9 +1331,9 @@
"optional": true
},
"node_modules/@aws-sdk/util-middleware": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.208.0.tgz",
- "integrity": "sha512-oXilrYpXwaPyMw1uNjL1wmR54zeFzIWx2ve1MSMheIYr26deFP3RpMfKkGXwiOvXzZ9pzTcA8shNLhg1frO/zg==",
+ "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"
@@ -1303,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",
@@ -1322,12 +1386,12 @@
"optional": true
},
"node_modules/@aws-sdk/util-user-agent-browser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.208.0.tgz",
- "integrity": "sha512-Z5n9Kg2pBstzzQgRymQRgb4pM0bNPLGQejB3ZmCAphaxvuTBfu2E6KO55h5WwkFHUuh0i5u2wn1BI9R66S8CgQ==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"bowser": "^2.11.0",
"tslib": "^2.3.1"
}
@@ -1339,13 +1403,13 @@
"optional": true
},
"node_modules/@aws-sdk/util-user-agent-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.208.0.tgz",
- "integrity": "sha512-T7V3TTc+NdcHgITo8yMUDs/qR0wfPjURUrCixHPtqYkqvhoF6YrHUAoCbOcz7SG/Tsm2GgSKAHB4ip9D2QLg4g==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/node-config-provider": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"engines": {
@@ -1366,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",
@@ -1381,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==",
@@ -1412,32 +1476,32 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz",
- "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz",
+ "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz",
- "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==",
+ "version": "7.20.12",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz",
+ "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==",
"dependencies": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.2",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-module-transforms": "^7.20.2",
- "@babel/helpers": "^7.20.1",
- "@babel/parser": "^7.20.2",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.2",
+ "@babel/generator": "^7.20.7",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helpers": "^7.20.7",
+ "@babel/parser": "^7.20.7",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.12",
+ "@babel/types": "^7.20.7",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
+ "json5": "^2.2.2",
"semver": "^6.3.0"
},
"engines": {
@@ -1449,11 +1513,11 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.20.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz",
- "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
+ "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
"dependencies": {
- "@babel/types": "^7.20.2",
+ "@babel/types": "^7.20.7",
"@jridgewell/gen-mapping": "^0.3.2",
"jsesc": "^2.5.1"
},
@@ -1498,13 +1562,14 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
- "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz",
+ "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==",
"dependencies": {
- "@babel/compat-data": "^7.20.0",
+ "@babel/compat-data": "^7.20.5",
"@babel/helper-validator-option": "^7.18.6",
"browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
"semver": "^6.3.0"
},
"engines": {
@@ -1514,6 +1579,19 @@
"@babel/core": "^7.0.0"
}
},
+ "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ },
"node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.20.2",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz",
@@ -1630,18 +1708,18 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
- "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz",
+ "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==",
"dependencies": {
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-module-imports": "^7.18.6",
"@babel/helper-simple-access": "^7.20.2",
"@babel/helper-split-export-declaration": "^7.18.6",
"@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.2"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.10",
+ "@babel/types": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1770,13 +1848,13 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz",
- "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz",
+ "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==",
"dependencies": {
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.0"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.7",
+ "@babel/types": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1796,9 +1874,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.20.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz",
- "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
+ "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -2988,31 +3066,31 @@
}
},
"node_modules/@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
+ "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
"dependencies": {
"@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz",
- "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==",
+ "version": "7.20.12",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz",
+ "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==",
"dependencies": {
"@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.1",
+ "@babel/generator": "^7.20.7",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
"@babel/helper-hoist-variables": "^7.18.6",
"@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.20.1",
- "@babel/types": "^7.20.0",
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -3021,9 +3099,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz",
- "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
+ "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
"dependencies": {
"@babel/helper-string-parser": "^7.19.4",
"@babel/helper-validator-identifier": "^7.19.1",
@@ -3040,15 +3118,15 @@
"dev": true
},
"node_modules/@eslint/eslintrc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
- "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.4.0",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -3063,9 +3141,9 @@
}
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -3090,9 +3168,9 @@
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.7",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz",
- "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==",
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
"dev": true,
"dependencies": {
"@humanwhocodes/object-schema": "^1.2.1",
@@ -3231,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": {
@@ -3318,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"
},
@@ -3435,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"
@@ -3475,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",
@@ -3529,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",
@@ -3620,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"
@@ -3646,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"
},
@@ -3661,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": {
@@ -3676,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"
@@ -3778,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": "*",
@@ -3942,45 +4020,45 @@
}
},
"node_modules/@remix-run/router": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.3.tgz",
- "integrity": "sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q==",
+ "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": "*"
@@ -4006,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": "*"
@@ -4053,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": {
@@ -4079,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": "*"
@@ -4420,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"
@@ -4527,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",
@@ -4601,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": {
@@ -5083,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"
},
@@ -5273,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",
@@ -5518,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",
@@ -5663,9 +5750,9 @@
}
},
"node_modules/decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
"engines": {
"node": ">=0.10"
}
@@ -5739,14 +5826,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/denque": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
- "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
- "engines": {
- "node": ">=0.10"
- }
- },
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -5849,9 +5928,9 @@
}
},
"node_modules/dezalgo": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
- "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
"dev": true,
"dependencies": {
"asap": "^2.0.0",
@@ -6107,13 +6186,13 @@
}
},
"node_modules/eslint": {
- "version": "8.28.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz",
- "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==",
+ "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.3.3",
- "@humanwhocodes/config-array": "^0.11.6",
+ "@eslint/eslintrc": "^1.4.1",
+ "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
@@ -6132,7 +6211,7 @@
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
@@ -6163,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",
@@ -6180,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"
},
@@ -6331,9 +6410,9 @@
}
},
"node_modules/eslint/node_modules/globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -6537,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"
@@ -6929,16 +7008,16 @@
}
},
"node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz",
+ "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=14.14"
}
},
"node_modules/fs.realpath": {
@@ -7169,9 +7248,9 @@
}
},
"node_modules/googleapis": {
- "version": "109.0.1",
- "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-109.0.1.tgz",
- "integrity": "sha512-x286OtNu0ngzxfGz2XgRs4aMhrwutRCkCE12dh2M1jIZOpOndB7ELFXEhmtxaJ7z3257flKIbiiCJZeBO+ze/Q==",
+ "version": "110.0.0",
+ "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-110.0.0.tgz",
+ "integrity": "sha512-k6de3PGsdFEBULMiFwPYCKOBljDTDvHD3YGe/OFqe8Ot0lYQPL8QV1qjxjrPWiE/Ftf0Ar2v4DNES66jLfSO7w==",
"dependencies": {
"google-auth-library": "^8.0.2",
"googleapis-common": "^6.0.0"
@@ -7460,9 +7539,9 @@
]
},
"node_modules/ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
"dev": true,
"engines": {
"node": ">= 4"
@@ -8103,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"
@@ -8129,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",
@@ -8142,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"
},
@@ -8242,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"
},
@@ -8346,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"
},
@@ -8461,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"
@@ -8558,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"
@@ -8644,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"
@@ -8670,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"
},
@@ -8695,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"
@@ -8793,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"
},
@@ -8883,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"
@@ -8923,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": {
@@ -8943,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"
@@ -9026,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"
},
@@ -9128,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"
},
@@ -9218,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",
@@ -9231,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",
@@ -9242,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": {
@@ -9351,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",
@@ -9438,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"
@@ -9537,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": {
@@ -9626,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"
},
@@ -9732,9 +9827,9 @@
"dev": true
},
"node_modules/json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"bin": {
"json5": "lib/cli.js"
},
@@ -9825,9 +9920,12 @@
}
},
"node_modules/kareem": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz",
- "integrity": "sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA=="
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz",
+ "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
},
"node_modules/kind-of": {
"version": "4.0.0",
@@ -10056,9 +10154,9 @@
}
},
"node_modules/marked": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.3.tgz",
- "integrity": "sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw==",
+ "version": "4.2.12",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz",
+ "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==",
"bin": {
"marked": "bin/marked.js"
},
@@ -10328,12 +10426,11 @@
}
},
"node_modules/mongodb": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz",
- "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==",
+ "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",
- "denque": "^2.1.0",
"mongodb-connection-string-url": "^2.5.4",
"socks": "^2.7.1"
},
@@ -10346,22 +10443,22 @@
}
},
"node_modules/mongodb-connection-string-url": {
- "version": "2.5.4",
- "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz",
- "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
+ "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
"dependencies": {
"@types/whatwg-url": "^8.2.1",
"whatwg-url": "^11.0.0"
}
},
"node_modules/mongoose": {
- "version": "6.7.2",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.7.2.tgz",
- "integrity": "sha512-lrP2V5U1qhaf+z33fiIn7aYAZZ1fVDly+TkFRjTujNBF/FIHESATj2RbgAOSlWqv32fsZXkXejXzeVfjbv35Ow==",
+ "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.4.1",
- "mongodb": "4.11.0",
+ "kareem": "2.5.1",
+ "mongodb": "4.13.0",
"mpath": "0.9.0",
"mquery": "4.0.3",
"ms": "2.1.3",
@@ -13592,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"
},
@@ -13798,30 +13895,28 @@
}
},
"node_modules/react": {
- "version": "16.14.0",
- "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
- "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
"dependencies": {
"loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.2"
+ "object-assign": "^4.1.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
- "version": "16.14.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
- "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
- "prop-types": "^15.6.2",
- "scheduler": "^0.19.1"
+ "scheduler": "^0.20.2"
},
"peerDependencies": {
- "react": "^16.14.0"
+ "react": "17.0.2"
}
},
"node_modules/react-frame-component": {
@@ -13841,11 +13936,11 @@
"dev": true
},
"node_modules/react-router": {
- "version": "6.4.3",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.3.tgz",
- "integrity": "sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA==",
+ "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.0.3"
+ "@remix-run/router": "1.3.1"
},
"engines": {
"node": ">=14"
@@ -13855,12 +13950,12 @@
}
},
"node_modules/react-router-dom": {
- "version": "6.4.3",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.3.tgz",
- "integrity": "sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ==",
+ "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.0.3",
- "react-router": "6.4.3"
+ "@remix-run/router": "1.3.1",
+ "react-router": "6.8.0"
},
"engines": {
"node": ">=14"
@@ -14144,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"
@@ -14284,9 +14379,9 @@
}
},
"node_modules/scheduler": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
- "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
@@ -15094,13 +15189,13 @@
}
},
"node_modules/supertest": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.1.tgz",
- "integrity": "sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ==",
+ "version": "6.3.3",
+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz",
+ "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==",
"dev": true,
"dependencies": {
"methods": "^1.1.2",
- "superagent": "^8.0.3"
+ "superagent": "^8.0.5"
},
"engines": {
"node": ">=6.4.0"
@@ -15121,32 +15216,20 @@
}
},
"node_modules/supertest/node_modules/formidable": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz",
- "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz",
+ "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==",
"dev": true,
"dependencies": {
- "dezalgo": "1.0.3",
- "hexoid": "1.0.0",
- "once": "1.4.0",
- "qs": "6.9.3"
+ "dezalgo": "^1.0.4",
+ "hexoid": "^1.0.0",
+ "once": "^1.4.0",
+ "qs": "^6.11.0"
},
"funding": {
"url": "https://ko-fi.com/tunnckoCore/commissions"
}
},
- "node_modules/supertest/node_modules/formidable/node_modules/qs": {
- "version": "6.9.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz",
- "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/supertest/node_modules/mime": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
@@ -15175,9 +15258,9 @@
}
},
"node_modules/supertest/node_modules/superagent": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.3.tgz",
- "integrity": "sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA==",
+ "version": "8.0.6",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.6.tgz",
+ "integrity": "sha512-HqSe6DSIh3hEn6cJvCkaM1BLi466f1LHi4yubR0tpewlMpk4RUFFy35bKz8SsPBwYfIIJy5eclp+3tCYAuX0bw==",
"dev": true,
"dependencies": {
"component-emitter": "^1.3.0",
@@ -15185,7 +15268,7 @@
"debug": "^4.3.4",
"fast-safe-stringify": "^2.1.1",
"form-data": "^4.0.0",
- "formidable": "^2.0.1",
+ "formidable": "^2.1.1",
"methods": "^1.1.2",
"mime": "2.6.0",
"qs": "^6.11.0",
@@ -15799,7 +15882,7 @@
},
"node_modules/vitreum": {
"version": "6.0.1",
- "resolved": "git+https://git@github.com/calculuschild/vitreum.git#21a8e1c9421f1d3a3b474c12f480feb2fbd28c5b",
+ "resolved": "git+https://git@github.com/calculuschild/vitreum.git#49994da4055f914269318b2b9ae953707aa771b6",
"license": "MIT",
"dependencies": {
"browserify": "^16.5.0",
@@ -15814,8 +15897,8 @@
"@babel/core": "^7.9.0",
"@babel/preset-react": "^7.9.4",
"less": "^3.11.1",
- "react": "^16.13.1",
- "react-dom": "^16.13.1"
+ "react": ">=16.13.1",
+ "react-dom": ">=16.13.1"
}
},
"node_modules/vitreum/node_modules/fs-extra": {
@@ -16325,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": {
@@ -16429,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.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.208.0.tgz",
- "integrity": "sha512-mQkDR+8VLCafg9KI4TgftftBOL170ricyb+HgV8n5jLDrEG+TfOfud8e6us2lIFESEuMpohC+/8yIcf6JjKkMg==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -16503,47 +16586,45 @@
}
},
"@aws-sdk/client-cognito-identity": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.208.0.tgz",
- "integrity": "sha512-mYlkNxRYJyXkHwY+6kv2Wth2xcP+dfgDrqfnHqMAKL1TGPVtkCKFYw0xAk4aBrlRfx1unyQFDen2NfBVtITCSw==",
+ "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.208.0",
- "@aws-sdk/config-resolver": "3.208.0",
- "@aws-sdk/credential-provider-node": "3.208.0",
- "@aws-sdk/fetch-http-handler": "3.208.0",
- "@aws-sdk/hash-node": "3.208.0",
- "@aws-sdk/invalid-dependency": "3.208.0",
- "@aws-sdk/middleware-content-length": "3.208.0",
- "@aws-sdk/middleware-endpoint": "3.208.0",
- "@aws-sdk/middleware-host-header": "3.208.0",
- "@aws-sdk/middleware-logger": "3.208.0",
- "@aws-sdk/middleware-recursion-detection": "3.208.0",
- "@aws-sdk/middleware-retry": "3.208.0",
- "@aws-sdk/middleware-serde": "3.208.0",
- "@aws-sdk/middleware-signing": "3.208.0",
- "@aws-sdk/middleware-stack": "3.208.0",
- "@aws-sdk/middleware-user-agent": "3.208.0",
- "@aws-sdk/node-config-provider": "3.208.0",
- "@aws-sdk/node-http-handler": "3.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/smithy-client": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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-base64-browser": "3.208.0",
- "@aws-sdk/util-base64-node": "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.208.0",
- "@aws-sdk/util-defaults-mode-node": "3.208.0",
- "@aws-sdk/util-endpoints": "3.208.0",
- "@aws-sdk/util-user-agent-browser": "3.208.0",
- "@aws-sdk/util-user-agent-node": "3.208.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": {
@@ -16556,44 +16637,90 @@
}
},
"@aws-sdk/client-sso": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.208.0.tgz",
- "integrity": "sha512-3e6kEFtuxqZVv1cLGbXFAytTPzR1GpctKITEtJR0MFy3pzj8ttbybrHe0F8z2AqAtDhna1i3u1WVZa+LK3gE9Q==",
+ "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.208.0",
- "@aws-sdk/fetch-http-handler": "3.208.0",
- "@aws-sdk/hash-node": "3.208.0",
- "@aws-sdk/invalid-dependency": "3.208.0",
- "@aws-sdk/middleware-content-length": "3.208.0",
- "@aws-sdk/middleware-endpoint": "3.208.0",
- "@aws-sdk/middleware-host-header": "3.208.0",
- "@aws-sdk/middleware-logger": "3.208.0",
- "@aws-sdk/middleware-recursion-detection": "3.208.0",
- "@aws-sdk/middleware-retry": "3.208.0",
- "@aws-sdk/middleware-serde": "3.208.0",
- "@aws-sdk/middleware-stack": "3.208.0",
- "@aws-sdk/middleware-user-agent": "3.208.0",
- "@aws-sdk/node-config-provider": "3.208.0",
- "@aws-sdk/node-http-handler": "3.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/smithy-client": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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-base64-browser": "3.208.0",
- "@aws-sdk/util-base64-node": "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.208.0",
- "@aws-sdk/util-defaults-mode-node": "3.208.0",
- "@aws-sdk/util-endpoints": "3.208.0",
- "@aws-sdk/util-user-agent-browser": "3.208.0",
- "@aws-sdk/util-user-agent-node": "3.208.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": {
+ "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/client-sso-oidc": {
+ "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": "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.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": {
@@ -16606,47 +16733,45 @@
}
},
"@aws-sdk/client-sts": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.208.0.tgz",
- "integrity": "sha512-xmPxI/vW0YVm2YhmIfdTQYY8b8dvzP0ordgooDlzAZVj5KnpZLVzQUxin5EqVcZYFJp6qEkVwmFK03QLy9fYOw==",
+ "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.208.0",
- "@aws-sdk/credential-provider-node": "3.208.0",
- "@aws-sdk/fetch-http-handler": "3.208.0",
- "@aws-sdk/hash-node": "3.208.0",
- "@aws-sdk/invalid-dependency": "3.208.0",
- "@aws-sdk/middleware-content-length": "3.208.0",
- "@aws-sdk/middleware-endpoint": "3.208.0",
- "@aws-sdk/middleware-host-header": "3.208.0",
- "@aws-sdk/middleware-logger": "3.208.0",
- "@aws-sdk/middleware-recursion-detection": "3.208.0",
- "@aws-sdk/middleware-retry": "3.208.0",
- "@aws-sdk/middleware-sdk-sts": "3.208.0",
- "@aws-sdk/middleware-serde": "3.208.0",
- "@aws-sdk/middleware-signing": "3.208.0",
- "@aws-sdk/middleware-stack": "3.208.0",
- "@aws-sdk/middleware-user-agent": "3.208.0",
- "@aws-sdk/node-config-provider": "3.208.0",
- "@aws-sdk/node-http-handler": "3.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/smithy-client": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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-base64-browser": "3.208.0",
- "@aws-sdk/util-base64-node": "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.208.0",
- "@aws-sdk/util-defaults-mode-node": "3.208.0",
- "@aws-sdk/util-endpoints": "3.208.0",
- "@aws-sdk/util-user-agent-browser": "3.208.0",
- "@aws-sdk/util-user-agent-node": "3.208.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"
},
@@ -16660,15 +16785,15 @@
}
},
"@aws-sdk/config-resolver": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.208.0.tgz",
- "integrity": "sha512-eLwI7rjk3AJj/S8PqRcUi9iBD+cTm1Nzu1CmYyeiwU6YbJLe5/2CrhW1wjkOGleE+aD967U1TWiB18tsx6fj+w==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.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.208.0",
+ "@aws-sdk/util-middleware": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -16681,14 +16806,14 @@
}
},
"@aws-sdk/credential-provider-cognito-identity": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.208.0.tgz",
- "integrity": "sha512-Eo7CkJTJQXrH0SsABcALRZXu7lqtdiwGVLWMtIzfL+Mb8weaIdWTJOvjSEOKe1ye3JMoOORf7UCPvAxOqywXKA==",
+ "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.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -16701,13 +16826,13 @@
}
},
"@aws-sdk/credential-provider-env": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.208.0.tgz",
- "integrity": "sha512-FB+KUSpZc03wVTXxGnMmgtaP0sJOv0D7oyogHb7wcf5b7RjjwqoaeUcJHTdKRZaW6e1foLk3/L9uebxiWefDbQ==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/property-provider": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -16720,15 +16845,15 @@
}
},
"@aws-sdk/credential-provider-imds": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.208.0.tgz",
- "integrity": "sha512-z4Bk42FQefBzS1SZ6/4gsAFE7tQhEoDmSUrFVSDu/9WwvGpFMnFfHLTBhivlcAHjc/eQ/hiWYLnQ8vahqhHl8w==",
+ "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.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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": {
@@ -16741,18 +16866,19 @@
}
},
"@aws-sdk/credential-provider-ini": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.208.0.tgz",
- "integrity": "sha512-AhsUj4046wMnxrPunNVEuddOIb//KsaicRqucw1Pb/UqszDRO4hYWkw7pL10MPIqjHBwuXYZ3vjDZrIhIWMn7A==",
+ "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.208.0",
- "@aws-sdk/credential-provider-imds": "3.208.0",
- "@aws-sdk/credential-provider-sso": "3.208.0",
- "@aws-sdk/credential-provider-web-identity": "3.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -16765,20 +16891,20 @@
}
},
"@aws-sdk/credential-provider-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.208.0.tgz",
- "integrity": "sha512-KYoxlpDzvhw6v0ae0TgIGPP52HJUHQGI3yImhAZZTz0Nh5B0zd2stip+p36sCYRW6V+TJ5mo5minwqDmYe8oXg==",
+ "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.208.0",
- "@aws-sdk/credential-provider-imds": "3.208.0",
- "@aws-sdk/credential-provider-ini": "3.208.0",
- "@aws-sdk/credential-provider-process": "3.208.0",
- "@aws-sdk/credential-provider-sso": "3.208.0",
- "@aws-sdk/credential-provider-web-identity": "3.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -16791,14 +16917,14 @@
}
},
"@aws-sdk/credential-provider-process": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.208.0.tgz",
- "integrity": "sha512-ExvFSJB/pVV+/BXIvFR9dgoGxWWnF6uqIw1hfpWCh28UDwsOQdbfUKblMovUfPDBUw67Laqy3mtiY37Jyo/EUQ==",
+ "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.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -16811,15 +16937,16 @@
}
},
"@aws-sdk/credential-provider-sso": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.208.0.tgz",
- "integrity": "sha512-GVUBmSG8eO4oXy5XpslAgVUBimEVBYmyCdwrwED79ey/7NWfkIVt46VZQapWyAJsarKW+VFpx7BYnam9YBR6hA==",
+ "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.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -16832,13 +16959,13 @@
}
},
"@aws-sdk/credential-provider-web-identity": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.208.0.tgz",
- "integrity": "sha512-7wtrdEr8uvDr5t0stimrXGsW4G+TQyluZ9OucCCY0HXgNihmnk1BIu+COuOSxRtFXHwCh4rIPaVE1ABG2Mq24g==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/property-provider": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -16851,25 +16978,25 @@
}
},
"@aws-sdk/credential-providers": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.208.0.tgz",
- "integrity": "sha512-wKbxh5RAEMseF2zViWgIZZ95tXDu8TVgVHZYcH5hv+PJSGRKpldZIdbaARKjaO7uOmeVdj/jvY3RuopwhMFO+g==",
+ "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.208.0",
- "@aws-sdk/client-sso": "3.208.0",
- "@aws-sdk/client-sts": "3.208.0",
- "@aws-sdk/credential-provider-cognito-identity": "3.208.0",
- "@aws-sdk/credential-provider-env": "3.208.0",
- "@aws-sdk/credential-provider-imds": "3.208.0",
- "@aws-sdk/credential-provider-ini": "3.208.0",
- "@aws-sdk/credential-provider-node": "3.208.0",
- "@aws-sdk/credential-provider-process": "3.208.0",
- "@aws-sdk/credential-provider-sso": "3.208.0",
- "@aws-sdk/credential-provider-web-identity": "3.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -16882,14 +17009,14 @@
}
},
"@aws-sdk/fetch-http-handler": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.208.0.tgz",
- "integrity": "sha512-GuwkwOeyLKCbSbnFlyHdlKd7u54cnQUI8NfVDAxpZvomY3PV476Tzg8XEyOYE67r5rR6XMqn6IK1PmFAACY+ew==",
+ "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.208.0",
- "@aws-sdk/querystring-builder": "3.208.0",
- "@aws-sdk/types": "3.208.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"
},
@@ -16903,13 +17030,14 @@
}
},
"@aws-sdk/hash-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.208.0.tgz",
- "integrity": "sha512-X5u6nD9+wzaA6qhqbobxsIgiyDJMW8NgqjZgHoc5x1wz4unHUCEuSBZy1kbIZ6+EPZ9bQHQZ21gKgf1j5vhsvQ==",
+ "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.208.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": {
@@ -16922,12 +17050,12 @@
}
},
"@aws-sdk/invalid-dependency": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.208.0.tgz",
- "integrity": "sha512-mUpbtijk14KntYy+w5FSvmsfj/Dqa8HylYeCKniKBKkQ1avjEz7CdizVoxyZrR3rldnLE3gItr0FEDRUhtfkAA==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -16957,13 +17085,13 @@
}
},
"@aws-sdk/middleware-content-length": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.208.0.tgz",
- "integrity": "sha512-8bLh7lHtmKQQ2fk0fGiP7pcVJglB/dz7Q9OooxFYK+eybqxfIDDUgKphA8AFT5W34tJRh5nhT3QTJ6zrOTQM3w==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/protocol-http": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -16976,18 +17104,18 @@
}
},
"@aws-sdk/middleware-endpoint": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.208.0.tgz",
- "integrity": "sha512-pVa/cyB6ronfTVAoKUUTFbAPslDPU43DWOKXY/bACC3ys1lFo1CWjz4dLSQARxEEW3iZ1yZTy0zoHXnNrw5CFQ==",
+ "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.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/signature-v4": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/url-parser": "3.208.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.208.0",
+ "@aws-sdk/util-middleware": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17000,13 +17128,13 @@
}
},
"@aws-sdk/middleware-host-header": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.208.0.tgz",
- "integrity": "sha512-3oyXK81TLWOZ2T/9Ltpbj/Z7R4QWSf+FCQRpY48ND2im/ALkgFRk/tmDTOshv+TQzW1q2lOSEeq4vK6yOCar7g==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/protocol-http": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17019,12 +17147,12 @@
}
},
"@aws-sdk/middleware-logger": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.208.0.tgz",
- "integrity": "sha512-mwSpuWruB8RrgUAAW7w/lvadnMDesl/bZ2IELBgJri+2rIqLGbAtygJBiG0Y3e8/IeOHuKuGkN1rFYZ4SKr7/A==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17037,13 +17165,13 @@
}
},
"@aws-sdk/middleware-recursion-detection": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.208.0.tgz",
- "integrity": "sha512-Dgpf5NEOYXvkQuGcbxvDovTh4HwO4ULJReGko67NJjgdZZyFS1fNykVPncxenRpsN9SJBigswYs3lwPVpqijzA==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/protocol-http": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17056,15 +17184,16 @@
}
},
"@aws-sdk/middleware-retry": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.208.0.tgz",
- "integrity": "sha512-JAcN2e3PKWGcNX7run/jP6xJ7w2m15a2CpVrfMtka9p/I/3qnqB86jGUs/3Iv04FEqgXq7KTHbFBg8CndsaHEw==",
+ "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.208.0",
- "@aws-sdk/service-error-classification": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/util-middleware": "3.208.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"
},
@@ -17084,16 +17213,16 @@
}
},
"@aws-sdk/middleware-sdk-sts": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.208.0.tgz",
- "integrity": "sha512-lFVodZHYLF7puXgNZ1m5ycKbyCPp79nqI+pkRXl066ZtZWzCW8+JKCaLjF3jfXlnvg6foPDJdxUvt0VU5EddGg==",
+ "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.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/signature-v4": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -17106,12 +17235,12 @@
}
},
"@aws-sdk/middleware-serde": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.208.0.tgz",
- "integrity": "sha512-3h2yP6qyf/IhfdvyFeNX7w4BF37vOZvfUDBq+wb1QEc7DCAskoUKWtCCKJ9HDq3IJQp8hzqY82eawUir6flqlQ==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17124,16 +17253,16 @@
}
},
"@aws-sdk/middleware-signing": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.208.0.tgz",
- "integrity": "sha512-cMSWhg8xOrxZw04EYKEQQQ7RT+03rigS4KS3Uy6x/M+jFyoM+sRiY/7376sJCwlpvKH2xJIVpwPbKk/uz4j4DA==",
+ "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.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/signature-v4": "3.208.0",
- "@aws-sdk/types": "3.208.0",
- "@aws-sdk/util-middleware": "3.208.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": {
@@ -17146,9 +17275,9 @@
}
},
"@aws-sdk/middleware-stack": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.208.0.tgz",
- "integrity": "sha512-bvFPUa+RTB7PSRCUsO6bRlEtiEadrDES+dpNmInMNQ9kmbd4OhNOCb664hhtiglIIXX5cd8mSPEo+w/RV0kEEQ==",
+ "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"
@@ -17163,13 +17292,13 @@
}
},
"@aws-sdk/middleware-user-agent": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.208.0.tgz",
- "integrity": "sha512-6RNf+TOZpiCy7xUcDSh8ji/x8ht1oAM+qIhm6hsEPLdI1cTvbPZrwowO9Y6L0J68V9OkEgLYiq77KKKYT7QQSw==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/protocol-http": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17182,14 +17311,14 @@
}
},
"@aws-sdk/node-config-provider": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.208.0.tgz",
- "integrity": "sha512-htjs1cDXYXEMwZ1q2vb7wfG3bOW4weWWkKcfT7vqzZKfTXoMH2mPpJIXnPE1PxXerOLXHGUU8qqhfl6LxjlnfQ==",
+ "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.208.0",
- "@aws-sdk/shared-ini-file-loader": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -17202,15 +17331,15 @@
}
},
"@aws-sdk/node-http-handler": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.208.0.tgz",
- "integrity": "sha512-2t0b9Id7WekluqxQdPugAZhe/wdzW0L53rfMEfDS3R0INNSq1sEfddIfCzJrmfWDCrCOGIDNyxo/w7Ki3NclzQ==",
+ "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.208.0",
- "@aws-sdk/protocol-http": "3.208.0",
- "@aws-sdk/querystring-builder": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -17223,12 +17352,12 @@
}
},
"@aws-sdk/property-provider": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.208.0.tgz",
- "integrity": "sha512-aUhfuwXjZ5TGzLhBstuAMmbnxHXeSGhzoIS8yy465ifgc95p6cHFZf+ZibgwgCMaGrKlTDCia2zwwpKQHN+4cw==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17241,12 +17370,12 @@
}
},
"@aws-sdk/protocol-http": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.208.0.tgz",
- "integrity": "sha512-Sr9dmaW0Z9X9s16NHZn94efLRpaqLyLqABFPgjqE8cYP6eLX/VrmZGNR62GFVxCiyEEpVxy4Ddk1YkbRwnuonA==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17259,12 +17388,12 @@
}
},
"@aws-sdk/querystring-builder": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.208.0.tgz",
- "integrity": "sha512-1Rpauh5hWlK++KjsHQjHcSN7yE05hj1FVb0HaeLrFIJB5rQYWXK7DpOUhmv5SOmU+q6cIM2kNCrSxH31+WglMw==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"@aws-sdk/util-uri-escape": "3.201.0",
"tslib": "^2.3.1"
},
@@ -17278,12 +17407,12 @@
}
},
"@aws-sdk/querystring-parser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.208.0.tgz",
- "integrity": "sha512-dVVLdP3il9bJX74/BNBjFn59XrEVBUZ4xSKYH6t7dgSz9uSu8DcT4pPzwaq+/94dVewCW3zq2jVA1iw1rK7JVQ==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17296,18 +17425,18 @@
}
},
"@aws-sdk/service-error-classification": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.208.0.tgz",
- "integrity": "sha512-ZZWV3AOTd8UDcfXCNoQ8v4sHaTgFxGaXWO0NHHgqFbVYr1d+8EXQiOy/v8JsY1jrfoXBWXptTOcioCTeM0xBpw==",
+ "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.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.208.0.tgz",
- "integrity": "sha512-ZDmwOLNiBKfvtN1M2eG2bItw0+4hKDU/XKqB+yVI9Uo29o4XwtQ4Br7HixTlPYJAavmM1cCch8PVvnwngYAKPA==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17320,16 +17449,17 @@
}
},
"@aws-sdk/signature-v4": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.208.0.tgz",
- "integrity": "sha512-+c5A8RsN4Lk3TXFiQ3ZsW7sJ4zYPPmYQ55ITSfjock5hzgM1vW43Mgvjjq6foW5L7SNfdhLH+NrhpgFwSF/GeA==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"@aws-sdk/util-hex-encoding": "3.201.0",
- "@aws-sdk/util-middleware": "3.208.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": {
@@ -17342,13 +17472,34 @@
}
},
"@aws-sdk/smithy-client": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.208.0.tgz",
- "integrity": "sha512-4SGPAs7ZtG9AUYknJNkZTs+ww1cpdcPth5te+R/dN4anUbqtL2qvmbdZJ+8rzdAZKndXu0huKE1OZrR3COLciw==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/middleware-stack": "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/token-providers": {
+ "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.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": {
@@ -17361,19 +17512,30 @@
}
},
"@aws-sdk/types": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.208.0.tgz",
- "integrity": "sha512-5AuOPtY1Hdf4xoEo+voRijl3OnFm8IB+oITXl+SN2iASJv+XPnRNw/QVbIxfGeWgWhmK31F+XdjTYsjT2rx8Qw==",
- "optional": true
- },
- "@aws-sdk/url-parser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.208.0.tgz",
- "integrity": "sha512-zhU231xkZbUh68Z/TGNRW30MGTZQVigGuMiJU6eOtL2aOulnKqI1Yjs/QejrTtPWsqSihWvxOUZ2cVRPyeOvrA==",
+ "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.208.0",
- "@aws-sdk/types": "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
+ }
+ }
+ },
+ "@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": {
@@ -17403,41 +17565,6 @@
}
}
},
- "@aws-sdk/util-base64-browser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.208.0.tgz",
- "integrity": "sha512-nR6S6aZqlr//Sy3+2J7G2mn5XG1ELBBTswvbp6kCo5BK9v/kESuzsHC5b6f3xzl/TY4JSG8Aj+h7x+kZHfKwwg==",
- "optional": true,
- "requires": {
- "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-base64-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.208.0.tgz",
- "integrity": "sha512-tCkSexa90loq8yU+BKAX5WIVQGq8IM/DdFhFphQd1azgOIBYxafA/aVw9mDY+to0mq4QRHiUwmUsmzLWEFSDJg==",
- "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
- }
- }
- },
"@aws-sdk/util-body-length-browser": {
"version": "3.188.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz",
@@ -17508,13 +17635,13 @@
}
},
"@aws-sdk/util-defaults-mode-browser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.208.0.tgz",
- "integrity": "sha512-i4cA074pycou1BPr7axFMiK3iHv+Tzjl/ZiN3Yc0BQDLWC9AQdrNodB4WAKnn4a4fWgA/MadfzKXnW1oltSzIg==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.0",
+ "@aws-sdk/property-provider": "3.257.0",
+ "@aws-sdk/types": "3.257.0",
"bowser": "^2.11.0",
"tslib": "^2.3.1"
},
@@ -17528,16 +17655,16 @@
}
},
"@aws-sdk/util-defaults-mode-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.208.0.tgz",
- "integrity": "sha512-y9dENqcmiUb7/D3uwJsE/fV+RZ9CUc/cs4OcofO81sU29xz8Fg/XQarjSdGVZMTnrDd190GXymMcB4qpOYhtPw==",
+ "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.208.0",
- "@aws-sdk/credential-provider-imds": "3.208.0",
- "@aws-sdk/node-config-provider": "3.208.0",
- "@aws-sdk/property-provider": "3.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -17550,12 +17677,12 @@
}
},
"@aws-sdk/util-endpoints": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.208.0.tgz",
- "integrity": "sha512-FGJA07iEbC883bAaw0qtDrly5Y+1nR3ic+OOzGX2AsSgaeVAc1j8Lgg3br7ofBbr8p81ec6zN4syy4v7V0Wb0A==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"tslib": "^2.3.1"
},
"dependencies": {
@@ -17602,9 +17729,9 @@
}
},
"@aws-sdk/util-middleware": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.208.0.tgz",
- "integrity": "sha512-oXilrYpXwaPyMw1uNjL1wmR54zeFzIWx2ve1MSMheIYr26deFP3RpMfKkGXwiOvXzZ9pzTcA8shNLhg1frO/zg==",
+ "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"
@@ -17618,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",
@@ -17636,12 +17781,12 @@
}
},
"@aws-sdk/util-user-agent-browser": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.208.0.tgz",
- "integrity": "sha512-Z5n9Kg2pBstzzQgRymQRgb4pM0bNPLGQejB3ZmCAphaxvuTBfu2E6KO55h5WwkFHUuh0i5u2wn1BI9R66S8CgQ==",
+ "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.208.0",
+ "@aws-sdk/types": "3.257.0",
"bowser": "^2.11.0",
"tslib": "^2.3.1"
},
@@ -17655,13 +17800,31 @@
}
},
"@aws-sdk/util-user-agent-node": {
- "version": "3.208.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.208.0.tgz",
- "integrity": "sha512-T7V3TTc+NdcHgITo8yMUDs/qR0wfPjURUrCixHPtqYkqvhoF6YrHUAoCbOcz7SG/Tsm2GgSKAHB4ip9D2QLg4g==",
+ "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.208.0",
- "@aws-sdk/types": "3.208.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": {
@@ -17690,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",
@@ -17717,38 +17862,38 @@
}
},
"@babel/compat-data": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz",
- "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ=="
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz",
+ "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g=="
},
"@babel/core": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz",
- "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==",
+ "version": "7.20.12",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz",
+ "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==",
"requires": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.2",
- "@babel/helper-compilation-targets": "^7.20.0",
- "@babel/helper-module-transforms": "^7.20.2",
- "@babel/helpers": "^7.20.1",
- "@babel/parser": "^7.20.2",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.2",
+ "@babel/generator": "^7.20.7",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helpers": "^7.20.7",
+ "@babel/parser": "^7.20.7",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.12",
+ "@babel/types": "^7.20.7",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
+ "json5": "^2.2.2",
"semver": "^6.3.0"
}
},
"@babel/generator": {
- "version": "7.20.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz",
- "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
+ "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
"requires": {
- "@babel/types": "^7.20.2",
+ "@babel/types": "^7.20.7",
"@jridgewell/gen-mapping": "^0.3.2",
"jsesc": "^2.5.1"
},
@@ -17783,14 +17928,30 @@
}
},
"@babel/helper-compilation-targets": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
- "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz",
+ "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==",
"requires": {
- "@babel/compat-data": "^7.20.0",
+ "@babel/compat-data": "^7.20.5",
"@babel/helper-validator-option": "^7.18.6",
"browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
"semver": "^6.3.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ }
}
},
"@babel/helper-create-class-features-plugin": {
@@ -17876,18 +18037,18 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz",
- "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz",
+ "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==",
"requires": {
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-module-imports": "^7.18.6",
"@babel/helper-simple-access": "^7.20.2",
"@babel/helper-split-export-declaration": "^7.18.6",
"@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.2"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.10",
+ "@babel/types": "^7.20.7"
}
},
"@babel/helper-optimise-call-expression": {
@@ -17977,13 +18138,13 @@
}
},
"@babel/helpers": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz",
- "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz",
+ "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==",
"requires": {
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.20.1",
- "@babel/types": "^7.20.0"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.7",
+ "@babel/types": "^7.20.7"
}
},
"@babel/highlight": {
@@ -17997,9 +18158,9 @@
}
},
"@babel/parser": {
- "version": "7.20.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz",
- "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg=="
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
+ "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg=="
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.18.6",
@@ -18766,36 +18927,36 @@
}
},
"@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
+ "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
"requires": {
"@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7"
}
},
"@babel/traverse": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz",
- "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==",
+ "version": "7.20.12",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz",
+ "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==",
"requires": {
"@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.1",
+ "@babel/generator": "^7.20.7",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
"@babel/helper-hoist-variables": "^7.18.6",
"@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.20.1",
- "@babel/types": "^7.20.0",
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz",
- "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
+ "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
"requires": {
"@babel/helper-string-parser": "^7.19.4",
"@babel/helper-validator-identifier": "^7.19.1",
@@ -18809,15 +18970,15 @@
"dev": true
},
"@eslint/eslintrc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
- "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.4.0",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -18826,9 +18987,9 @@
},
"dependencies": {
"globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -18843,9 +19004,9 @@
}
},
"@humanwhocodes/config-array": {
- "version": "0.11.7",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz",
- "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==",
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
"dev": true,
"requires": {
"@humanwhocodes/object-schema": "^1.2.1",
@@ -18949,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": {
@@ -19014,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"
},
@@ -19101,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",
@@ -19180,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",
@@ -19241,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": {
@@ -19261,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": {
@@ -19365,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": "*",
@@ -19489,42 +19650,42 @@
}
},
"@remix-run/router": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.0.3.tgz",
- "integrity": "sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q=="
+ "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": "*"
@@ -19550,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": "*"
@@ -19597,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": {
@@ -19623,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": "*"
@@ -19889,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"
@@ -19968,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",
@@ -20027,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"
}
},
@@ -20441,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"
}
@@ -20571,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": {
@@ -20786,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",
@@ -20909,9 +21070,9 @@
}
},
"decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og=="
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
},
"dedent": {
"version": "0.7.0",
@@ -20964,11 +21125,6 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
- "denque": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
- "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw=="
- },
"depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -21054,9 +21210,9 @@
}
},
"dezalgo": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
- "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
"dev": true,
"requires": {
"asap": "^2.0.0",
@@ -21278,13 +21434,13 @@
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
},
"eslint": {
- "version": "8.28.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz",
- "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==",
+ "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.3.3",
- "@humanwhocodes/config-array": "^0.11.6",
+ "@eslint/eslintrc": "^1.4.1",
+ "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
@@ -21303,7 +21459,7 @@
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
@@ -21365,9 +21521,9 @@
"dev": true
},
"globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.19.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
+ "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -21397,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",
@@ -21414,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"
},
@@ -21592,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": {
@@ -21916,9 +22072,9 @@
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
},
"fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz",
+ "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==",
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -22083,9 +22239,9 @@
}
},
"googleapis": {
- "version": "109.0.1",
- "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-109.0.1.tgz",
- "integrity": "sha512-x286OtNu0ngzxfGz2XgRs4aMhrwutRCkCE12dh2M1jIZOpOndB7ELFXEhmtxaJ7z3257flKIbiiCJZeBO+ze/Q==",
+ "version": "110.0.0",
+ "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-110.0.0.tgz",
+ "integrity": "sha512-k6de3PGsdFEBULMiFwPYCKOBljDTDvHD3YGe/OFqe8Ot0lYQPL8QV1qjxjrPWiE/Ftf0Ar2v4DNES66jLfSO7w==",
"requires": {
"google-auth-library": "^8.0.2",
"googleapis-common": "^6.0.0"
@@ -22298,9 +22454,9 @@
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
"dev": true
},
"ignore-by-default": {
@@ -22773,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",
@@ -22795,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"
},
@@ -22873,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"
},
@@ -22944,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"
},
@@ -23025,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": {
@@ -23097,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": {
@@ -23161,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": {
@@ -23181,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",
@@ -23194,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": {
@@ -23274,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"
},
@@ -23342,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": {}
},
@@ -23366,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": {
@@ -23434,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"
},
@@ -23524,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"
},
@@ -23593,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",
@@ -23605,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",
@@ -23616,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": {
@@ -23697,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",
@@ -23762,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": {
@@ -23833,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": {
@@ -23900,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"
},
@@ -23987,9 +24153,9 @@
"dev": true
},
"json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
},
"jsonfile": {
"version": "6.1.0",
@@ -24054,9 +24220,9 @@
"integrity": "sha512-40aUybvhH9t2h71ncA1/1SbtTNCVZHgsTsTgqPUxGWDmUDrXyDf2wMNQKEbdBjbf4AI+fQhbECNTV6lWxQKUzg=="
},
"kareem": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz",
- "integrity": "sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA=="
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz",
+ "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA=="
},
"kind-of": {
"version": "4.0.0",
@@ -24231,9 +24397,9 @@
}
},
"marked": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.3.tgz",
- "integrity": "sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw=="
+ "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",
@@ -24446,35 +24612,34 @@
"integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
},
"mongodb": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.11.0.tgz",
- "integrity": "sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg==",
+ "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",
- "denque": "^2.1.0",
"mongodb-connection-string-url": "^2.5.4",
"saslprep": "^1.0.3",
"socks": "^2.7.1"
}
},
"mongodb-connection-string-url": {
- "version": "2.5.4",
- "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz",
- "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
+ "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
"requires": {
"@types/whatwg-url": "^8.2.1",
"whatwg-url": "^11.0.0"
}
},
"mongoose": {
- "version": "6.7.2",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.7.2.tgz",
- "integrity": "sha512-lrP2V5U1qhaf+z33fiIn7aYAZZ1fVDly+TkFRjTujNBF/FIHESATj2RbgAOSlWqv32fsZXkXejXzeVfjbv35Ow==",
+ "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.4.1",
- "mongodb": "4.11.0",
+ "kareem": "2.5.1",
+ "mongodb": "4.13.0",
"mpath": "0.9.0",
"mquery": "4.0.3",
"ms": "2.1.3",
@@ -26710,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"
},
@@ -26868,24 +27033,22 @@
}
},
"react": {
- "version": "16.14.0",
- "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
- "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
"requires": {
"loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.2"
+ "object-assign": "^4.1.1"
}
},
"react-dom": {
- "version": "16.14.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
- "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
- "prop-types": "^15.6.2",
- "scheduler": "^0.19.1"
+ "scheduler": "^0.20.2"
}
},
"react-frame-component": {
@@ -26901,20 +27064,20 @@
"dev": true
},
"react-router": {
- "version": "6.4.3",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.4.3.tgz",
- "integrity": "sha512-BT6DoGn6aV1FVP5yfODMOiieakp3z46P1Fk0RNzJMACzE7C339sFuHebfvWtnB4pzBvXXkHP2vscJzWRuUjTtA==",
+ "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.0.3"
+ "@remix-run/router": "1.3.1"
}
},
"react-router-dom": {
- "version": "6.4.3",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.4.3.tgz",
- "integrity": "sha512-MiaYQU8CwVCaOfJdYvt84KQNjT78VF0TJrA17SIQgNHRvLnXDJO6qsFqq8F/zzB1BWZjCFIrQpu4QxcshitziQ==",
+ "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.0.3",
- "react-router": "6.4.3"
+ "@remix-run/router": "1.3.1",
+ "react-router": "6.8.0"
}
},
"read-only-stream": {
@@ -27135,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": {
@@ -27225,9 +27388,9 @@
}
},
"scheduler": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
- "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
@@ -27899,13 +28062,13 @@
}
},
"supertest": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.1.tgz",
- "integrity": "sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ==",
+ "version": "6.3.3",
+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz",
+ "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==",
"dev": true,
"requires": {
"methods": "^1.1.2",
- "superagent": "^8.0.3"
+ "superagent": "^8.0.5"
},
"dependencies": {
"form-data": {
@@ -27920,23 +28083,15 @@
}
},
"formidable": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz",
- "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz",
+ "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==",
"dev": true,
"requires": {
- "dezalgo": "1.0.3",
- "hexoid": "1.0.0",
- "once": "1.4.0",
- "qs": "6.9.3"
- },
- "dependencies": {
- "qs": {
- "version": "6.9.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz",
- "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==",
- "dev": true
- }
+ "dezalgo": "^1.0.4",
+ "hexoid": "^1.0.0",
+ "once": "^1.4.0",
+ "qs": "^6.11.0"
}
},
"mime": {
@@ -27955,9 +28110,9 @@
}
},
"superagent": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.3.tgz",
- "integrity": "sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA==",
+ "version": "8.0.6",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.6.tgz",
+ "integrity": "sha512-HqSe6DSIh3hEn6cJvCkaM1BLi466f1LHi4yubR0tpewlMpk4RUFFy35bKz8SsPBwYfIIJy5eclp+3tCYAuX0bw==",
"dev": true,
"requires": {
"component-emitter": "^1.3.0",
@@ -27965,7 +28120,7 @@
"debug": "^4.3.4",
"fast-safe-stringify": "^2.1.1",
"form-data": "^4.0.0",
- "formidable": "^2.0.1",
+ "formidable": "^2.1.1",
"methods": "^1.1.2",
"mime": "2.6.0",
"qs": "^6.11.0",
@@ -28436,7 +28591,7 @@
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
},
"vitreum": {
- "version": "git+https://git@github.com/calculuschild/vitreum.git#21a8e1c9421f1d3a3b474c12f480feb2fbd28c5b",
+ "version": "git+https://git@github.com/calculuschild/vitreum.git#49994da4055f914269318b2b9ae953707aa771b6",
"from": "vitreum@git+https://git@github.com/calculuschild/vitreum.git",
"requires": {
"browserify": "^16.5.0",
@@ -28860,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 8a9056a16..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.3.1",
+ "version": "3.6.0",
"engines": {
"node": "16.11.x"
},
@@ -14,11 +14,14 @@
"quick": "node scripts/quick.js",
"build": "node scripts/buildHomebrew.js",
"buildall": "node scripts/buildHomebrew.js && node scripts/buildAdmin.js",
+ "builddev": "node scripts/buildHomebrew.js --dev",
"lint": "eslint --fix **/*.{js,jsx}",
"lint:dry": "eslint **/*.{js,jsx}",
"circleci": "npm test && eslint **/*.{js,jsx} --max-warnings=0",
"verify": "npm run lint && npm test",
"test": "jest",
+ "test:api-unit": "jest server/*.spec.js --verbose",
+ "test:coverage": "jest --coverage --silent",
"test:dev": "jest --verbose --watch",
"test:basic": "jest tests/markdown/basic.test.js --verbose",
"test:mustache-span": "jest tests/markdown/mustache-span.test.js --verbose",
@@ -39,7 +42,21 @@
"mode_modules",
"shared",
"server"
- ]
+ ],
+ "coverageThreshold" : {
+ "global" : {
+ "statements" : 25,
+ "branches" : 10,
+ "functions" : 22,
+ "lines" : 25
+ },
+ "server/homebrew.api.js" : {
+ "statements" : 65,
+ "branches" : 50,
+ "functions" : 60,
+ "lines" : 70
+ }
+ }
},
"babel": {
"presets": [
@@ -51,7 +68,7 @@
]
},
"dependencies": {
- "@babel/core": "^7.19.6",
+ "@babel/core": "^7.20.12",
"@babel/plugin-transform-runtime": "^7.19.6",
"@babel/preset-env": "^7.19.4",
"@babel/preset-react": "^7.18.6",
@@ -64,32 +81,32 @@
"express": "^4.18.2",
"express-async-handler": "^1.2.0",
"express-static-gzip": "2.1.7",
- "fs-extra": "10.1.0",
- "googleapis": "109.0.1",
+ "fs-extra": "11.1.0",
+ "googleapis": "110.0.0",
"js-yaml": "^4.1.0",
"jwt-simple": "^0.5.6",
"less": "^3.13.1",
"lodash": "^4.17.21",
- "marked": "4.2.3",
+ "marked": "4.2.12",
"marked-extended-tables": "^1.0.5",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.4",
- "mongoose": "^6.7.0",
+ "mongoose": "^6.9.0",
"nanoid": "3.3.4",
"nconf": "^0.12.0",
"npm": "^8.10.0",
- "react": "^16.14.0",
- "react-dom": "^16.14.0",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
"react-frame-component": "4.1.3",
- "react-router-dom": "6.4.3",
+ "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.28.0",
- "eslint-plugin-react": "^7.31.11",
- "jest": "^29.2.2",
- "supertest": "^6.3.1"
+ "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 ea5d1d0e2..5bed5bf78 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(), {
@@ -136,6 +138,6 @@ fs.emptyDirSync('./build');
if(isDev){
livereload('./build');
watchFile('./server.js', {
- watch : ['./client', './server'] // Watch additional folders if you want
+ watch : ['./client', './server', './themes'] // Watch additional folders if you want
});
}
diff --git a/server/app.js b/server/app.js
index 5c4a1ca5f..59aac2d9b 100644
--- a/server/app.js
+++ b/server/app.js
@@ -15,6 +15,8 @@ const serveCompressedStaticAssets = require('./static-assets.mv.js');
const sanitizeFilename = require('sanitize-filename');
const asyncHandler = require('express-async-handler');
+const { DEFAULT_BREW } = require('./brewDefaults.js');
+
const splitTextStyleAndMetadata = (brew)=>{
brew.text = brew.text.replaceAll('\r\n', '\n');
if(brew.text.startsWith('```metadata')) {
@@ -29,7 +31,6 @@ const splitTextStyleAndMetadata = (brew)=>{
brew.style = brew.text.slice(7, index - 1);
brew.text = brew.text.slice(index + 5);
}
- _.defaults(brew, { 'renderer': 'legacy', 'theme': '5ePHB' });
};
const sanitizeBrew = (brew, accessType)=>{
@@ -78,10 +79,10 @@ const faqText = require('fs').readFileSync('faq.md', 'utf8');
String.prototype.replaceAll = function(s, r){return this.split(s).join(r);};
const defaultMetaTags = {
- siteName : 'The Homebrewery - Make your Homebrew content look legit!',
+ site_name : 'The Homebrewery - Make your Homebrew content look legit!',
title : 'The Homebrewery',
- description : 'A NaturalCrit Tool for Homebrews',
- thumbnail : `${config.get('publicUrl')}/thumbnail.png`,
+ description : 'A NaturalCrit Tool for creating authentic Homebrews using Markdown.',
+ image : `${config.get('publicUrl')}/thumbnail.png`,
type : 'website'
};
@@ -148,8 +149,7 @@ app.get('/changelog', async (req, res, next)=>{
req.ogMeta = { ...defaultMetaTags,
title : 'Changelog',
- description : 'Development changelog.',
- thumbnail : null
+ description : 'Development changelog.'
};
splitTextStyleAndMetadata(req.brew);
@@ -192,12 +192,19 @@ app.get('/download/:id', asyncHandler(getBrew('share')), (req, res)=>{
sanitizeBrew(brew, 'share');
const prefix = 'HB - ';
+ const encodeRFC3986ValueChars = (str)=>{
+ return (
+ encodeURIComponent(str)
+ .replace(/[!'()*]/g, (char)=>{`%${char.charCodeAt(0).toString(16).toUpperCase()}`;})
+ );
+ };
+
let fileName = sanitizeFilename(`${prefix}${brew.title}`).replaceAll(' ', '');
if(!fileName || !fileName.length) { fileName = `${prefix}-Untitled-Brew`; };
res.set({
'Cache-Control' : 'no-cache',
'Content-Type' : 'text/plain',
- 'Content-Disposition' : `attachment; filename="${fileName}.txt"`
+ 'Content-Disposition' : `attachment; filename*=UTF-8''${encodeRFC3986ValueChars(fileName)}.txt`
});
res.status(200).send(brew.text);
});
@@ -208,8 +215,7 @@ app.get('/user/:username', async (req, res, next)=>{
req.ogMeta = { ...defaultMetaTags,
title : `${req.params.username}'s Collection`,
- description : 'View my collection of homebrew on the Homebrewery.',
- image : null
+ description : 'View my collection of homebrew on the Homebrewery.'
// type : could be 'profile'?
};
@@ -274,7 +280,7 @@ app.get('/edit/:id', asyncHandler(getBrew('edit')), (req, res, next)=>{
req.ogMeta = { ...defaultMetaTags,
title : req.brew.title || 'Untitled Brew',
description : req.brew.description || 'No description.',
- image : req.brew.thumbnail || null,
+ image : req.brew.thumbnail || defaultMetaTags.image,
type : 'article'
};
@@ -288,12 +294,19 @@ 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',
- description : 'Start crafting your homebrew on the Homebrewery!',
- image : null
+ description : 'Start crafting your homebrew on the Homebrewery!'
};
return next();
@@ -306,7 +319,7 @@ app.get('/share/:id', asyncHandler(getBrew('share')), asyncHandler(async (req, r
req.ogMeta = { ...defaultMetaTags,
title : req.brew.title || 'Untitled Brew',
description : req.brew.description || 'No description.',
- image : req.brew.thumbnail || null,
+ image : req.brew.thumbnail || defaultMetaTags.image,
type : 'article'
};
@@ -336,11 +349,11 @@ app.get('/account', asyncHandler(async (req, res, next)=>{
data.title = 'Account Information Page';
let auth;
- let files;
+ let googleCount = [];
if(req.account) {
if(req.account.googleId) {
try {
- auth = await GoogleActions.authCheck(req.account, res);
+ auth = await GoogleActions.authCheck(req.account, res, false);
} catch (e) {
auth = undefined;
console.log('Google auth check failed!');
@@ -348,9 +361,9 @@ app.get('/account', asyncHandler(async (req, res, next)=>{
}
if(auth.credentials.access_token) {
try {
- files = await GoogleActions.listGoogleBrews(auth);
+ googleCount = await GoogleActions.listGoogleBrews(auth);
} catch (e) {
- files = undefined;
+ googleCount = undefined;
console.log('List Google files failed!');
console.log(e);
}
@@ -358,18 +371,19 @@ app.get('/account', asyncHandler(async (req, res, next)=>{
}
const query = { authors: req.account.username, googleId: { $exists: false } };
- const brews = await HomebrewModel.find(query, 'id')
+ const mongoCount = await HomebrewModel.countDocuments(query)
.catch((err)=>{
+ mongoCount = 0;
console.log(err);
});
data.uiItems = {
- username : req.account.username,
- issued : req.account.issued,
- mongoCount : brews.length,
- googleId : Boolean(req.account.googleId),
- authCheck : Boolean(req.account.googleId && auth.credentials.access_token),
- fileCount : files?.length || '-'
+ username : req.account.username,
+ issued : req.account.issued,
+ googleId : Boolean(req.account.googleId),
+ authCheck : Boolean(req.account.googleId && auth.credentials.access_token),
+ mongoCount : mongoCount,
+ googleCount : googleCount?.length
};
}
@@ -377,8 +391,7 @@ app.get('/account', asyncHandler(async (req, res, next)=>{
req.ogMeta = { ...defaultMetaTags,
title : `Account Page`,
- description : null,
- image : null
+ description : null
};
return next();
@@ -402,6 +415,7 @@ if(isLocalEnvironment){
//Render the page
const templateFn = require('./../client/template.js');
app.use(asyncHandler(async (req, res, next)=>{
+
// Create configuration object
const configuration = {
local : isLocalEnvironment,
diff --git a/server/brewDefaults.js b/server/brewDefaults.js
new file mode 100644
index 000000000..30798cea7
--- /dev/null
+++ b/server/brewDefaults.js
@@ -0,0 +1,37 @@
+const _ = require('lodash');
+
+// Default properties for newly-created brews
+const DEFAULT_BREW = {
+ title : '',
+ text : '',
+ style : undefined,
+ description : '',
+ editId : undefined,
+ shareId : undefined,
+ createdAt : undefined,
+ updatedAt : undefined,
+ renderer : 'V3',
+ theme : '5ePHB',
+ authors : [],
+ tags : [],
+ systems : [],
+ thumbnail : '',
+ views : 0,
+ published : false,
+ pageCount : 1,
+ gDrive : false,
+ trashed : false
+
+};
+// Default values for older brews with missing properties
+// e.g., missing "renderer" is assumed to be "legacy"
+const DEFAULT_BREW_LOAD = _.defaults(
+ {
+ renderer : 'legacy',
+ },
+ DEFAULT_BREW);
+
+module.exports = {
+ DEFAULT_BREW,
+ DEFAULT_BREW_LOAD
+};
diff --git a/server/googleActions.js b/server/googleActions.js
index 4ccf7a1dd..e5fa9cc89 100644
--- a/server/googleActions.js
+++ b/server/googleActions.js
@@ -5,24 +5,28 @@ const { nanoid } = require('nanoid');
const token = require('./token.js');
const config = require('./config.js');
-const keys = typeof(config.get('service_account')) == 'string' ?
- JSON.parse(config.get('service_account')) :
- config.get('service_account');
let serviceAuth;
-try {
- serviceAuth = google.auth.fromJSON(keys);
- serviceAuth.scopes = [
- 'https://www.googleapis.com/auth/drive'
- ];
-} catch (err) {
- console.warn(err);
- console.log('Please make sure that a Google Service Account is set up properly in your config files.');
+if(!config.get('service_account')){
+ console.log('No Google Service Account in config files - Google Drive integration will not be available.');
+} else {
+ const keys = typeof(config.get('service_account')) == 'string' ?
+ JSON.parse(config.get('service_account')) :
+ config.get('service_account');
+
+ try {
+ serviceAuth = google.auth.fromJSON(keys);
+ serviceAuth.scopes = ['https://www.googleapis.com/auth/drive'];
+ } catch (err) {
+ console.warn(err);
+ console.log('Please make sure the Google Service Account is set up properly in your config files.');
+ }
}
+
google.options({ auth: serviceAuth || config.get('google_api_key') });
const GoogleActions = {
- authCheck : (account, res)=>{
+ authCheck : (account, res, updateTokens=true)=>{
if(!account || !account.googleId){ // If not signed into Google
const err = new Error('Not Signed In');
err.status = 401;
@@ -40,7 +44,7 @@ const GoogleActions = {
refresh_token : account.googleRefreshToken
});
- oAuth2Client.on('tokens', (tokens)=>{
+ updateTokens && oAuth2Client.on('tokens', (tokens)=>{
if(tokens.refresh_token) {
account.googleRefreshToken = tokens.refresh_token;
}
@@ -249,7 +253,6 @@ const GoogleActions = {
text : file.data,
description : obj.data.description,
- tags : obj.data.properties.tags ? obj.data.properties.tags : '',
systems : obj.data.properties.systems ? obj.data.properties.systems.split(',') : [],
authors : [],
published : obj.data.properties.published ? obj.data.properties.published == 'true' : false,
diff --git a/server/homebrew.api.js b/server/homebrew.api.js
index 293e8f873..f531bdcf9 100644
--- a/server/homebrew.api.js
+++ b/server/homebrew.api.js
@@ -9,330 +9,340 @@ const yaml = require('js-yaml');
const asyncHandler = require('express-async-handler');
const { nanoid } = require('nanoid');
+const { DEFAULT_BREW, DEFAULT_BREW_LOAD } = require('./brewDefaults.js');
+
// const getTopBrews = (cb) => {
// HomebrewModel.find().sort({ views: -1 }).limit(5).exec(function(err, brews) {
// cb(brews);
// });
// };
-const getId = (req)=>{
- // Set the id and initial potential google id, where the google id is present on the existing brew.
- let id = req.params.id, googleId = req.body?.googleId;
-
- // If the id is longer than 12, then it's a google id + the edit id. This splits the longer id up.
- if(id.length > 12) {
- googleId = id.slice(0, -12);
- id = id.slice(-12);
- }
- return { id, googleId };
-};
-
-const getBrew = (accessType)=>{
- // Create middleware with the accessType passed in as part of the scope
- return async (req, res, next)=>{
- // Get relevant IDs for the brew
- const { id, googleId } = getId(req);
-
- // Try to find the document in the Homebrewery database -- if it doesn't exist, that's fine.
- let stub = await HomebrewModel.get(accessType === 'edit' ? { editId: id } : { shareId: id })
- .catch((err)=>{
- if(googleId) {
- console.warn(`Unable to find document stub for ${accessType}Id ${id}`);
- } else {
- console.warn(err);
- }
- });
- stub = stub?.toObject();
-
- // If there is a google id, try to find the google brew
- if(googleId || stub?.googleId) {
- let googleError;
- const googleBrew = await GoogleActions.getGoogleBrew(googleId || stub?.googleId, id, accessType)
- .catch((err)=>{
- console.warn(err);
- googleError = err;
- });
- // If we can't find the google brew and there is a google id for the brew, throw an error.
- if(!googleBrew) throw googleError;
- // Combine the Homebrewery stub with the google brew, or if the stub doesn't exist just use the google brew
- stub = stub ? _.assign({ ...excludeStubProps(stub), stubbed: true }, excludeGoogleProps(googleBrew)) : googleBrew;
- }
-
- // If after all of that we still don't have a brew, throw an exception
- if(!stub) {
- throw 'Brew not found in Homebrewery database or Google Drive';
- }
-
- if(typeof stub.tags === 'string') {
- stub.tags = [];
- }
- req.brew = stub;
-
- next();
- };
-};
-
-const mergeBrewText = (brew)=>{
- let text = brew.text;
- if(brew.style !== undefined) {
- text = `\`\`\`css\n` +
- `${brew.style || ''}\n` +
- `\`\`\`\n\n` +
- `${text}`;
- }
- const metadata = _.pick(brew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme']);
- text = `\`\`\`metadata\n` +
- `${yaml.dump(metadata)}\n` +
- `\`\`\`\n\n` +
- `${text}`;
- return text;
-};
-
const MAX_TITLE_LENGTH = 100;
-const getGoodBrewTitle = (text)=>{
- const tokens = Markdown.marked.lexer(text);
- return (tokens.find((token)=>token.type === 'heading' || token.type === 'paragraph')?.text || 'No Title')
- .slice(0, MAX_TITLE_LENGTH);
-};
+const api = {
+ homebrewApi : router,
+ getId : (req)=>{
+ // Set the id and initial potential google id, where the google id is present on the existing brew.
+ let id = req.params.id, googleId = req.body?.googleId;
-const excludePropsFromUpdate = (brew)=>{
- // Remove undesired properties
- const modified = _.clone(brew);
- const propsToExclude = ['_id', 'views', 'lastViewed', 'editId', 'shareId', 'googleId'];
- for (const prop of propsToExclude) {
- delete modified[prop];
- }
- return modified;
-};
-
-const excludeGoogleProps = (brew)=>{
- const modified = _.clone(brew);
- const propsToExclude = ['tags', 'systems', 'published', 'authors', 'owner', 'views', 'thumbnail'];
- for (const prop of propsToExclude) {
- delete modified[prop];
- }
- return modified;
-};
-
-const excludeStubProps = (brew)=>{
- const propsToExclude = ['text', 'textBin', 'renderer', 'pageCount', 'version'];
- for (const prop of propsToExclude) {
- brew[prop] = undefined;
- }
- return brew;
-};
-
-const beforeNewSave = (account, brew)=>{
- if(!brew.title) {
- brew.title = getGoodBrewTitle(brew.text);
- }
-
- brew.authors = (account) ? [account.username] : [];
- brew.text = mergeBrewText(brew);
-};
-
-const newGoogleBrew = async (account, brew, res)=>{
- const oAuth2Client = GoogleActions.authCheck(account, res);
-
- const newBrew = excludeGoogleProps(brew);
-
- return await GoogleActions.newGoogleBrew(oAuth2Client, newBrew);
-};
-
-const newBrew = async (req, res)=>{
- const brew = req.body;
- const { saveToGoogle } = req.query;
-
- delete brew.editId;
- delete brew.shareId;
- delete brew.googleId;
-
- beforeNewSave(req.account, brew);
-
- const newHomebrew = new HomebrewModel(brew);
- newHomebrew.editId = nanoid(12);
- newHomebrew.shareId = nanoid(12);
-
- let googleId, saved;
- if(saveToGoogle) {
- googleId = await newGoogleBrew(req.account, newHomebrew, res)
- .catch((err)=>{
- console.error(err);
- res.status(err?.status || err?.response?.status || 500).send(err?.message || err);
- });
- if(!googleId) return;
- excludeStubProps(newHomebrew);
- newHomebrew.googleId = googleId;
- } else {
- // Compress brew text to binary before saving
- newHomebrew.textBin = zlib.deflateRawSync(newHomebrew.text);
- // Delete the non-binary text field since it's not needed anymore
- newHomebrew.text = undefined;
- }
-
- saved = await newHomebrew.save()
- .catch((err)=>{
- console.error(err, err.toString(), err.stack);
- throw `Error while creating new brew, ${err.toString()}`;
- });
- if(!saved) return;
- saved = saved.toObject();
-
- res.status(200).send(saved);
-};
-
-const updateBrew = async (req, res)=>{
- // Initialize brew from request and body, destructure query params, set a constant for the google id, and set the initial value for the after-save method
- let brew = _.assign(req.brew, excludePropsFromUpdate(req.body));
- const { saveToGoogle, removeFromGoogle } = req.query;
- const googleId = brew.googleId;
- let afterSave = async ()=>true;
-
- brew.text = mergeBrewText(brew);
-
- if(brew.googleId && removeFromGoogle) {
- // If the google id exists and we're removing it from google, set afterSave to delete the google brew and mark the brew's google id as undefined
- afterSave = async ()=>{
- return await deleteGoogleBrew(req.account, googleId, brew.editId, res)
- .catch((err)=>{
- console.error(err);
- res.status(err?.status || err?.response?.status || 500).send(err.message || err);
- });
- };
-
- brew.googleId = undefined;
- } else if(!brew.googleId && saveToGoogle) {
- // If we don't have a google id and the user wants to save to google, create the google brew and set the google id on the brew
- brew.googleId = await newGoogleBrew(req.account, excludeGoogleProps(brew), res)
- .catch((err)=>{
- console.error(err);
- res.status(err.status || err.response.status).send(err.message || err);
- });
- if(!brew.googleId) return;
- } else if(brew.googleId) {
- // If the google id exists and no other actions are being performed, update the google brew
- const updated = await GoogleActions.updateGoogleBrew(excludeGoogleProps(brew))
- .catch((err)=>{
- console.error(err);
- res.status(err?.response?.status || 500).send(err);
- });
- if(!updated) return;
- }
-
- if(brew.googleId) {
- // If the google id exists after all those actions, exclude the props that are stored in google and aren't needed for rendering the brew items
- excludeStubProps(brew);
- } else {
- // Compress brew text to binary before saving
- brew.textBin = zlib.deflateRawSync(brew.text);
- // Delete the non-binary text field since it's not needed anymore
- brew.text = undefined;
- }
- brew.updatedAt = new Date();
-
- if(req.account) {
- brew.authors = _.uniq(_.concat(brew.authors, req.account.username));
- }
-
- // Fetch the brew from the database again (if it existed there to begin with), and assign the existing brew to it
- brew = _.assign(await HomebrewModel.findOne({ _id: brew._id }), brew);
-
- if(!brew.markModified) {
- // If it wasn't in the database, create a new db brew
- brew = new HomebrewModel(brew);
- }
-
- brew.markModified('authors');
- brew.markModified('systems');
-
- // Save the database brew
- const saved = await brew.save()
- .catch((err)=>{
- console.error(err);
- res.status(err.status || 500).send(err.message || 'Unable to save brew to Homebrewery database');
- });
- if(!saved) return;
- // Call and wait for afterSave to complete
- const after = await afterSave();
- if(!after) return;
-
- res.status(200).send(saved);
-};
-
-const deleteGoogleBrew = async (account, id, editId, res)=>{
- const auth = await GoogleActions.authCheck(account, res);
- await GoogleActions.deleteGoogleBrew(auth, id, editId);
- return true;
-};
-
-const deleteBrew = async (req, res, next)=>{
- // Delete an orphaned stub if its Google brew doesn't exist
- try {
- await getBrew('edit')(req, res, ()=>{});
- } catch (err) {
- const { id, googleId } = getId(req);
- console.warn(`No google brew found for id ${googleId}, the stub with id ${id} will be deleted.`);
- await HomebrewModel.deleteOne({ editId: id });
- return next();
- }
-
- let brew = req.brew;
- const { googleId, editId } = brew;
- const account = req.account;
- const isOwner = account && (brew.authors.length === 0 || brew.authors[0] === account.username);
- // If the user is the owner and the file is saved to google, mark the google brew for deletion
- const shouldDeleteGoogleBrew = googleId && isOwner;
-
- if(brew._id) {
- brew = _.assign(await HomebrewModel.findOne({ _id: brew._id }), brew);
- if(account) {
- // Remove current user as author
- brew.authors = _.pull(brew.authors, account.username);
- brew.markModified('authors');
+ // If the id is longer than 12, then it's a google id + the edit id. This splits the longer id up.
+ if(id.length > 12) {
+ googleId = id.slice(0, -12);
+ id = id.slice(-12);
}
+ return { id, googleId };
+ },
+ getBrew : (accessType, stubOnly = false)=>{
+ // Create middleware with the accessType passed in as part of the scope
+ return async (req, res, next)=>{
+ // Get relevant IDs for the brew
+ const { id, googleId } = api.getId(req);
- if(brew.authors.length === 0) {
- // Delete brew if there are no authors left
- await brew.remove()
+ // Try to find the document in the Homebrewery database -- if it doesn't exist, that's fine.
+ let stub = await HomebrewModel.get(accessType === 'edit' ? { editId: id } : { shareId: id })
.catch((err)=>{
- console.error(err);
- throw { status: 500, message: 'Error while removing' };
+ if(googleId) {
+ console.warn(`Unable to find document stub for ${accessType}Id ${id}`);
+ } else {
+ console.warn(err);
+ }
});
- } else {
- if(shouldDeleteGoogleBrew) {
- // When there are still authors remaining, we delete the google brew but store the full brew in the Homebrewery database
- brew.googleId = undefined;
- brew.textBin = zlib.deflateRawSync(brew.text);
- brew.text = undefined;
+ stub = stub?.toObject();
+
+ // If there is a google id, try to find the google brew
+ if(!stubOnly && (googleId || stub?.googleId)) {
+ let googleError;
+ const googleBrew = await GoogleActions.getGoogleBrew(googleId || stub?.googleId, id, accessType)
+ .catch((err)=>{
+ googleError = err;
+ });
+ // Throw any error caught while attempting to retrieve Google brew.
+ if(googleError) throw googleError;
+ // Combine the Homebrewery stub with the google brew, or if the stub doesn't exist just use the google brew
+ stub = stub ? _.assign({ ...api.excludeStubProps(stub), stubbed: true }, api.excludeGoogleProps(googleBrew)) : googleBrew;
+ }
+ const authorsExist = stub?.authors?.length > 0;
+ const isAuthor = stub?.authors?.includes(req.account?.username);
+ const isInvited = stub?.invitedAuthors?.includes(req.account?.username);
+ if(accessType === 'edit' && (authorsExist && !(isAuthor || isInvited))) {
+ throw `The current logged in user does not have editor access to this brew.
+
+If you believe you should have access to this brew, ask the file owner to invite you as an author by opening the brew, viewing the Properties tab, and adding your username to the "invited authors" list. You can then try to access this document again.`;
}
- // Otherwise, save the brew with updated author list
- await brew.save()
- .catch((err)=>{
- throw { status: 500, message: err };
- });
+ // If after all of that we still don't have a brew, throw an exception
+ if(!stub && !stubOnly) {
+ throw 'Brew not found in Homebrewery database or Google Drive';
+ }
+
+ // Clean up brew: fill in missing fields with defaults / fix old invalid values
+ if(stub) {
+ stub.tags = stub.tags || undefined; // Clear empty strings
+ stub.renderer = stub.renderer || undefined; // Clear empty strings
+ stub = _.defaults(stub, DEFAULT_BREW_LOAD); // Fill in blank fields
+ }
+
+ req.brew = stub ?? {};
+ next();
+ };
+ },
+ mergeBrewText : (brew)=>{
+ let text = brew.text;
+ if(brew.style !== undefined) {
+ text = `\`\`\`css\n` +
+ `${brew.style || ''}\n` +
+ `\`\`\`\n\n` +
+ `${text}`;
}
- }
- if(shouldDeleteGoogleBrew) {
- const deleted = await deleteGoogleBrew(account, googleId, editId, res)
+ const metadata = _.pick(brew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme']);
+ text = `\`\`\`metadata\n` +
+ `${yaml.dump(metadata)}\n` +
+ `\`\`\`\n\n` +
+ `${text}`;
+ return text;
+ },
+ getGoodBrewTitle : (text)=>{
+ const tokens = Markdown.marked.lexer(text);
+ return (tokens.find((token)=>token.type === 'heading' || token.type === 'paragraph')?.text || 'No Title')
+ .slice(0, MAX_TITLE_LENGTH);
+ },
+ excludePropsFromUpdate : (brew)=>{
+ // Remove undesired properties
+ const modified = _.clone(brew);
+ const propsToExclude = ['_id', 'views', 'lastViewed'];
+ for (const prop of propsToExclude) {
+ delete modified[prop];
+ }
+ return modified;
+ },
+ excludeGoogleProps : (brew)=>{
+ const modified = _.clone(brew);
+ const propsToExclude = ['version', 'tags', 'systems', 'published', 'authors', 'owner', 'views', 'thumbnail'];
+ for (const prop of propsToExclude) {
+ delete modified[prop];
+ }
+ return modified;
+ },
+ excludeStubProps : (brew)=>{
+ const propsToExclude = ['text', 'textBin', 'renderer', 'pageCount'];
+ for (const prop of propsToExclude) {
+ brew[prop] = undefined;
+ }
+ return brew;
+ },
+ beforeNewSave : (account, brew)=>{
+ if(!brew.title) {
+ brew.title = api.getGoodBrewTitle(brew.text);
+ }
+
+ brew.authors = (account) ? [account.username] : [];
+ brew.text = api.mergeBrewText(brew);
+
+ _.defaults(brew, DEFAULT_BREW);
+ },
+ newGoogleBrew : async (account, brew, res)=>{
+ const oAuth2Client = GoogleActions.authCheck(account, res);
+
+ const newBrew = api.excludeGoogleProps(brew);
+
+ return await GoogleActions.newGoogleBrew(oAuth2Client, newBrew);
+ },
+ newBrew : async (req, res)=>{
+ const brew = req.body;
+ const { saveToGoogle } = req.query;
+
+ delete brew.editId;
+ delete brew.shareId;
+ delete brew.googleId;
+
+ api.beforeNewSave(req.account, brew);
+
+ const newHomebrew = new HomebrewModel(brew);
+ newHomebrew.editId = nanoid(12);
+ newHomebrew.shareId = nanoid(12);
+
+ let googleId, saved;
+ if(saveToGoogle) {
+ googleId = await api.newGoogleBrew(req.account, newHomebrew, res)
+ .catch((err)=>{
+ console.error(err);
+ res.status(err?.status || err?.response?.status || 500).send(err?.message || err);
+ });
+ if(!googleId) return;
+ api.excludeStubProps(newHomebrew);
+ newHomebrew.googleId = googleId;
+ } else {
+ // Compress brew text to binary before saving
+ newHomebrew.textBin = zlib.deflateRawSync(newHomebrew.text);
+ // Delete the non-binary text field since it's not needed anymore
+ newHomebrew.text = undefined;
+ }
+
+ saved = await newHomebrew.save()
.catch((err)=>{
- console.error(err);
- res.status(500).send(err);
+ console.error(err, err.toString(), err.stack);
+ throw `Error while creating new brew, ${err.toString()}`;
});
- if(!deleted) return;
+ if(!saved) return;
+ saved = saved.toObject();
+
+ res.status(200).send(saved);
+ },
+ updateBrew : async (req, res)=>{
+ // Initialize brew from request and body, destructure query params, and set the initial value for the after-save method
+ const brewFromClient = api.excludePropsFromUpdate(req.body);
+ const brewFromServer = req.brew;
+ if(brewFromServer.version && brewFromClient.version && brewFromServer.version > brewFromClient.version) {
+ console.log(`Version mismatch on brew ${brewFromClient.editId}`);
+ res.setHeader('Content-Type', 'application/json');
+ return res.status(409).send(JSON.stringify({ message: `The brew has been changed on a different device. Please save your changes elsewhere, refresh, and try again.` }));
+ }
+
+ let brew = _.assign(brewFromServer, brewFromClient);
+ const googleId = brew.googleId;
+ const { saveToGoogle, removeFromGoogle } = req.query;
+ let afterSave = async ()=>true;
+
+ brew.text = api.mergeBrewText(brew);
+
+ if(brew.googleId && removeFromGoogle) {
+ // If the google id exists and we're removing it from google, set afterSave to delete the google brew and mark the brew's google id as undefined
+ afterSave = async ()=>{
+ return await api.deleteGoogleBrew(req.account, googleId, brew.editId, res)
+ .catch((err)=>{
+ console.error(err);
+ res.status(err?.status || err?.response?.status || 500).send(err.message || err);
+ });
+ };
+
+ brew.googleId = undefined;
+ } else if(!brew.googleId && saveToGoogle) {
+ // If we don't have a google id and the user wants to save to google, create the google brew and set the google id on the brew
+ brew.googleId = await api.newGoogleBrew(req.account, api.excludeGoogleProps(brew), res)
+ .catch((err)=>{
+ console.error(err);
+ res.status(err.status || err.response.status).send(err.message || err);
+ });
+ if(!brew.googleId) return;
+ } else if(brew.googleId) {
+ // If the google id exists and no other actions are being performed, update the google brew
+ const updated = await GoogleActions.updateGoogleBrew(api.excludeGoogleProps(brew))
+ .catch((err)=>{
+ console.error(err);
+ res.status(err?.response?.status || 500).send(err);
+ });
+ if(!updated) return;
+ }
+
+ if(brew.googleId) {
+ // If the google id exists after all those actions, exclude the props that are stored in google and aren't needed for rendering the brew items
+ api.excludeStubProps(brew);
+ } else {
+ // Compress brew text to binary before saving
+ brew.textBin = zlib.deflateRawSync(brew.text);
+ // Delete the non-binary text field since it's not needed anymore
+ brew.text = undefined;
+ }
+ brew.updatedAt = new Date();
+ brew.version = (brew.version || 1) + 1;
+
+ if(req.account) {
+ brew.authors = _.uniq(_.concat(brew.authors, req.account.username));
+ brew.invitedAuthors = _.uniq(_.filter(brew.invitedAuthors, (a)=>req.account.username !== a));
+ }
+
+ // define a function to catch our save errors
+ const saveError = (err)=>{
+ console.error(err);
+ res.status(err.status || 500).send(err.message || 'Unable to save brew to Homebrewery database');
+ };
+ let saved;
+ if(!brew._id) {
+ // if the brew does not have a stub id, create and save it, then write the new value back to the brew.
+ saved = await new HomebrewModel(brew).save().catch(saveError);
+ } else {
+ // if the brew does have a stub id, update it using the stub id as the key.
+ brew = _.assign(await HomebrewModel.findOne({ _id: brew._id }), brew);
+ saved = await brew.save()
+ .catch(saveError);
+ }
+ if(!saved) return;
+ // Call and wait for afterSave to complete
+ const after = await afterSave();
+ if(!after) return;
+
+ res.status(200).send(saved);
+ },
+ deleteGoogleBrew : async (account, id, editId, res)=>{
+ const auth = await GoogleActions.authCheck(account, res);
+ await GoogleActions.deleteGoogleBrew(auth, id, editId);
+ return true;
+ },
+ deleteBrew : async (req, res, next)=>{
+ // Delete an orphaned stub if its Google brew doesn't exist
+ try {
+ await api.getBrew('edit')(req, res, ()=>{});
+ } catch (err) {
+ const { id, googleId } = api.getId(req);
+ console.warn(`No google brew found for id ${googleId}, the stub with id ${id} will be deleted.`);
+ await HomebrewModel.deleteOne({ editId: id });
+ return next();
+ }
+
+ let brew = req.brew;
+ const { googleId, editId } = brew;
+ const account = req.account;
+ const isOwner = account && (brew.authors.length === 0 || brew.authors[0] === account.username);
+ // If the user is the owner and the file is saved to google, mark the google brew for deletion
+ const shouldDeleteGoogleBrew = googleId && isOwner;
+
+ if(brew._id) {
+ brew = _.assign(await HomebrewModel.findOne({ _id: brew._id }), brew);
+ if(account) {
+ // Remove current user as author
+ brew.authors = _.pull(brew.authors, account.username);
+ }
+
+ if(brew.authors.length === 0) {
+ // Delete brew if there are no authors left
+ await brew.remove()
+ .catch((err)=>{
+ console.error(err);
+ throw { status: 500, message: 'Error while removing' };
+ });
+ } else {
+ if(shouldDeleteGoogleBrew) {
+ // When there are still authors remaining, we delete the google brew but store the full brew in the Homebrewery database
+ brew.googleId = undefined;
+ brew.textBin = zlib.deflateRawSync(brew.text);
+ brew.text = undefined;
+ }
+
+ // Otherwise, save the brew with updated author list
+ await brew.save()
+ .catch((err)=>{
+ throw { status: 500, message: err };
+ });
+ }
+ }
+ if(shouldDeleteGoogleBrew) {
+ const deleted = await api.deleteGoogleBrew(account, googleId, editId, res)
+ .catch((err)=>{
+ console.error(err);
+ res.status(500).send(err);
+ });
+ if(!deleted) return;
+ }
+
+ res.status(204).send();
}
-
- res.status(204).send();
};
-router.post('/api', asyncHandler(newBrew));
-router.put('/api/:id', asyncHandler(getBrew('edit')), asyncHandler(updateBrew));
-router.put('/api/update/:id', asyncHandler(getBrew('edit')), asyncHandler(updateBrew));
-router.delete('/api/:id', asyncHandler(deleteBrew));
-router.get('/api/remove/:id', asyncHandler(deleteBrew));
+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));
+router.delete('/api/:id', asyncHandler(api.deleteBrew));
+router.get('/api/remove/:id', asyncHandler(api.deleteBrew));
-module.exports = {
- homebrewApi : router,
- getBrew
-};
+module.exports = api;
diff --git a/server/homebrew.api.spec.js b/server/homebrew.api.spec.js
new file mode 100644
index 000000000..22f80155c
--- /dev/null
+++ b/server/homebrew.api.spec.js
@@ -0,0 +1,752 @@
+/* eslint-disable max-lines */
+
+describe('Tests for api', ()=>{
+ let api;
+ let google;
+ let model;
+ let hbBrew;
+ let googleBrew;
+ let res;
+
+ let modelBrew;
+ let saveFunc;
+ let removeFunc;
+ let saved;
+
+ beforeEach(()=>{
+ saved = undefined;
+ saveFunc = jest.fn(async function() {
+ saved = { ...this, _id: '1' };
+ return saved;
+ });
+ removeFunc = jest.fn(async function() {});
+
+ modelBrew = (brew)=>({
+ ...brew,
+ save : saveFunc,
+ remove : removeFunc,
+ toObject : function() {
+ delete this.save;
+ delete this.toObject;
+ delete this.remove;
+ return this;
+ }
+ });
+
+ google = require('./googleActions.js');
+ model = require('./homebrew.model.js').model;
+
+ jest.mock('./googleActions.js');
+ google.authCheck = jest.fn(()=>'client');
+ google.newGoogleBrew = jest.fn(()=>'id');
+ google.deleteGoogleBrew = jest.fn(()=>true);
+
+ jest.mock('./homebrew.model.js');
+ model.mockImplementation((brew)=>modelBrew(brew));
+
+ res = {
+ status : jest.fn(()=>res),
+ send : jest.fn(()=>{})
+ };
+
+ api = require('./homebrew.api');
+
+ hbBrew = {
+ text : `brew text`,
+ style : 'hello yes i am css',
+ title : 'some title',
+ description : 'this is a description',
+ tags : ['something', 'fun'],
+ systems : ['D&D 5e'],
+ renderer : 'v3',
+ theme : 'phb',
+ published : true,
+ authors : ['1', '2'],
+ owner : '1',
+ thumbnail : '',
+ _id : 'mongoid',
+ editId : 'abcdefg',
+ shareId : 'hijklmnop',
+ views : 1,
+ lastViewed : new Date(),
+ version : 1,
+ pageCount : 1,
+ textBin : '',
+ views : 0
+ };
+ googleBrew = {
+ ...hbBrew,
+ googleId : '12345'
+ };
+ });
+
+ afterEach(()=>{
+ jest.restoreAllMocks();
+ });
+
+ describe('getId', ()=>{
+ it('should return only id if google id is not present', ()=>{
+ const { id, googleId } = api.getId({
+ params : {
+ id : 'abcdefgh'
+ }
+ });
+
+ expect(id).toEqual('abcdefgh');
+ expect(googleId).toBeUndefined();
+ });
+
+ it('should return id and google id from request body', ()=>{
+ const { id, googleId } = api.getId({
+ params : {
+ id : 'abcdefgh'
+ },
+ body : {
+ googleId : '12345'
+ }
+ });
+
+ expect(id).toEqual('abcdefgh');
+ expect(googleId).toEqual('12345');
+ });
+
+ it('should return id and google id from params', ()=>{
+ const { id, googleId } = api.getId({
+ params : {
+ id : '123456789012abcdefghijkl'
+ }
+ });
+
+ expect(id).toEqual('abcdefghijkl');
+ expect(googleId).toEqual('123456789012');
+ });
+ });
+
+ describe('getBrew', ()=>{
+ const toBrewPromise = (brew)=>new Promise((res)=>res({ toObject: ()=>brew }));
+ const notFoundError = 'Brew not found in Homebrewery database or Google Drive';
+
+ it('returns middleware', ()=>{
+ const getFn = api.getBrew('share');
+ expect(getFn).toBeInstanceOf(Function);
+ });
+
+ it('should fetch from mongoose', async ()=>{
+ const testBrew = { title: 'test brew', authors: [] };
+ api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));
+ model.get = jest.fn(()=>toBrewPromise(testBrew));
+
+ const fn = api.getBrew('share', true);
+ const req = { brew: {} };
+ const next = jest.fn();
+ await fn(req, null, next);
+
+ expect(req.brew).toEqual(testBrew);
+ expect(next).toHaveBeenCalled();
+ expect(api.getId).toHaveBeenCalledWith(req);
+ expect(model.get).toHaveBeenCalledWith({ shareId: '1' });
+ });
+
+ it('should handle mongoose error', async ()=>{
+ api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));
+ model.get = jest.fn(()=>new Promise((_, rej)=>rej('Unable to find brew')));
+
+ const fn = api.getBrew('share', false);
+ const req = { brew: {} };
+ const next = jest.fn();
+ let err;
+ try {
+ await fn(req, null, next);
+ } catch (e) {
+ err = e;
+ }
+
+ expect(err).toEqual(notFoundError);
+ expect(req.brew).toEqual({});
+ expect(next).not.toHaveBeenCalled();
+ expect(api.getId).toHaveBeenCalledWith(req);
+ expect(model.get).toHaveBeenCalledWith({ shareId: '1' });
+ });
+
+ it('changes tags from string to array', async ()=>{
+ const testBrew = { title: 'test brew', authors: [], tags: '' };
+ api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));
+ model.get = jest.fn(()=>toBrewPromise(testBrew));
+
+ const fn = api.getBrew('share', true);
+ const req = { brew: {} };
+ const next = jest.fn();
+ await fn(req, null, next);
+
+ expect(req.brew.tags).toEqual([]);
+ expect(next).toHaveBeenCalled();
+ });
+
+ it('throws if invalid author', async ()=>{
+ api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));
+ model.get = jest.fn(()=>toBrewPromise({ title: 'test brew', authors: ['a'] }));
+
+ const fn = api.getBrew('edit', true);
+ const req = { brew: {} };
+
+ let err;
+ try {
+ await fn(req, null, null);
+ } catch (e) {
+ err = e;
+ }
+
+ expect(err).toEqual(`The current logged in user does not have editor access to this brew.
+
+If you believe you should have access to this brew, ask the file owner to invite you as an author by opening the brew, viewing the Properties tab, and adding your username to the "invited authors" list. You can then try to access this document again.`);
+ });
+
+ it('does not throw if no authors', async ()=>{
+ api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));
+ model.get = jest.fn(()=>toBrewPromise({ title: 'test brew', authors: [] }));
+
+ const fn = api.getBrew('edit', true);
+ const req = { brew: {} };
+ const next = jest.fn();
+ await fn(req, null, next);
+
+ expect(next).toHaveBeenCalled();
+ expect(req.brew.title).toEqual('test brew');
+ expect(req.brew.authors).toEqual([]);
+ });
+
+ it('does not throw if valid author', async ()=>{
+ api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));
+ model.get = jest.fn(()=>toBrewPromise({ title: 'test brew', authors: ['a'] }));
+
+ const fn = api.getBrew('edit', true);
+ const req = { brew: {}, account: { username: 'a' } };
+ const next = jest.fn();
+ await fn(req, null, next);
+
+ expect(next).toHaveBeenCalled();
+ expect(req.brew.title).toEqual('test brew');
+ expect(req.brew.authors).toEqual(['a']);
+ });
+
+ it('fetches google brew if needed', async()=>{
+ const stubBrew = { title: 'test brew', authors: ['a'] };
+ const googleBrew = { title: 'test google brew', text: 'brew text' };
+ api.getId = jest.fn(()=>({ id: '1', googleId: '2' }));
+ model.get = jest.fn(()=>toBrewPromise(stubBrew));
+ google.getGoogleBrew = jest.fn(()=>new Promise((res)=>res(googleBrew)));
+
+ const fn = api.getBrew('share', false);
+ const req = { brew: {} };
+ const next = jest.fn();
+ await fn(req, null, next);
+
+ expect(req.brew).toEqual({
+ title : 'test google brew',
+ authors : ['a'],
+ text : 'brew text',
+ stubbed : true,
+ description : '',
+ editId : undefined,
+ pageCount : 1,
+ published : false,
+ renderer : 'legacy',
+ shareId : undefined,
+ systems : [],
+ tags : [],
+ theme : '5ePHB',
+ thumbnail : '',
+ textBin : undefined,
+ version : undefined,
+ createdAt : undefined,
+ gDrive : false,
+ style : undefined,
+ trashed : false,
+ updatedAt : undefined,
+ views : 0
+ });
+ expect(next).toHaveBeenCalled();
+ expect(api.getId).toHaveBeenCalledWith(req);
+ expect(model.get).toHaveBeenCalledWith({ shareId: '1' });
+ expect(google.getGoogleBrew).toHaveBeenCalledWith('2', '1', 'share');
+ });
+ });
+
+ describe('mergeBrewText', ()=>{
+ it('should set metadata and no style if it is not present', ()=>{
+ const result = api.mergeBrewText({
+ text : `brew`,
+ title : 'some title',
+ description : 'this is a description',
+ tags : ['something', 'fun'],
+ systems : ['D&D 5e'],
+ renderer : 'v3',
+ theme : 'phb',
+ googleId : '12345'
+ });
+
+ expect(result).toEqual(`\`\`\`metadata
+title: some title
+description: this is a description
+tags:
+ - something
+ - fun
+systems:
+ - D&D 5e
+renderer: v3
+theme: phb
+
+\`\`\`
+
+brew`);
+ });
+
+ it('should set metadata and style', ()=>{
+ const result = api.mergeBrewText({
+ text : `brew`,
+ style : 'hello yes i am css',
+ title : 'some title',
+ description : 'this is a description',
+ tags : ['something', 'fun'],
+ systems : ['D&D 5e'],
+ renderer : 'v3',
+ theme : 'phb',
+ googleId : '12345'
+ });
+
+ expect(result).toEqual(`\`\`\`metadata
+title: some title
+description: this is a description
+tags:
+ - something
+ - fun
+systems:
+ - D&D 5e
+renderer: v3
+theme: phb
+
+\`\`\`
+
+\`\`\`css
+hello yes i am css
+\`\`\`
+
+brew`);
+ });
+ });
+
+ describe('exclusion methods', ()=>{
+ it('excludePropsFromUpdate removes the correct keys', ()=>{
+ const sent = Object.assign({}, googleBrew);
+ const result = api.excludePropsFromUpdate(sent);
+
+ expect(sent).toEqual(googleBrew);
+ expect(result._id).toBeUndefined();
+ expect(result.views).toBeUndefined();
+ expect(result.lastViewed).toBeUndefined();
+ });
+
+ it('excludeGoogleProps removes the correct keys', ()=>{
+ const sent = Object.assign({}, googleBrew);
+ const result = api.excludeGoogleProps(sent);
+
+ expect(sent).toEqual(googleBrew);
+ expect(result.tags).toBeUndefined();
+ expect(result.systems).toBeUndefined();
+ expect(result.published).toBeUndefined();
+ expect(result.authors).toBeUndefined();
+ expect(result.owner).toBeUndefined();
+ expect(result.views).toBeUndefined();
+ expect(result.thumbnail).toBeUndefined();
+ expect(result.version).toBeUndefined();
+ });
+
+ it('excludeStubProps removes the correct keys from the original object', ()=>{
+ const sent = Object.assign({}, googleBrew);
+ const result = api.excludeStubProps(sent);
+
+ expect(sent).not.toEqual(googleBrew);
+ expect(result.text).toBeUndefined();
+ expect(result.textBin).toBeUndefined();
+ expect(result.renderer).toBeUndefined();
+ expect(result.pageCount).toBeUndefined();
+ });
+ });
+
+ describe('beforeNewSave', ()=>{
+ it('sets the title if none', ()=>{
+ const brew = {
+ ...hbBrew,
+ title : undefined
+ };
+ api.beforeNewSave({}, brew);
+
+ expect(brew.title).toEqual('brew text');
+ });
+
+ it('does not override the title if present', ()=>{
+ const brew = {
+ ...hbBrew,
+ title : 'test'
+ };
+ api.beforeNewSave({}, brew);
+
+ expect(brew.title).toEqual('test');
+ });
+
+ it('does not set authors if account missing username', ()=>{
+ api.beforeNewSave({}, hbBrew);
+
+ expect(hbBrew.authors).toEqual([]);
+ });
+
+ it('sets authors if account has username', ()=>{
+ api.beforeNewSave({ username: 'hi' }, hbBrew);
+
+ expect(hbBrew.authors).toEqual(['hi']);
+ });
+
+ it('merges brew text', ()=>{
+ api.mergeBrewText = jest.fn(()=>'merged');
+ api.beforeNewSave({}, hbBrew);
+
+ expect(api.mergeBrewText).toHaveBeenCalled();
+ expect(hbBrew.text).toEqual('merged');
+ });
+ });
+
+ describe('newGoogleBrew', ()=>{
+ it('should call the correct methods', ()=>{
+ api.excludeGoogleProps = jest.fn(()=>'newBrew');
+
+ const acct = { username: 'test' };
+ const brew = { title: 'test title' };
+ api.newGoogleBrew(acct, brew, res);
+
+ expect(google.authCheck).toHaveBeenCalledWith(acct, res);
+ expect(api.excludeGoogleProps).toHaveBeenCalledWith(brew);
+ expect(google.newGoogleBrew).toHaveBeenCalledWith('client', 'newBrew');
+ });
+ });
+
+ describe('newBrew', ()=>{
+ it('should set up a default brew via Homebrew model', async ()=>{
+ await api.newBrew({ body: { text: 'asdf' }, query: {}, account: { username: 'test user' } }, res);
+
+ expect(res.status).toHaveBeenCalledWith(200);
+ expect(res.send).toHaveBeenCalledWith({
+ _id : '1',
+ authors : ['test user'],
+ createdAt : undefined,
+ description : '',
+ editId : expect.any(String),
+ gDrive : false,
+ pageCount : 1,
+ published : false,
+ renderer : 'V3',
+ shareId : expect.any(String),
+ style : undefined,
+ systems : [],
+ tags : [],
+ text : undefined,
+ textBin : expect.objectContaining({}),
+ theme : '5ePHB',
+ thumbnail : '',
+ title : 'asdf',
+ trashed : false,
+ updatedAt : undefined,
+ views : 0
+ });
+ });
+
+ it('should remove edit/share/google ids', async ()=>{
+ await api.newBrew({ body: { editId: '1234', shareId: '1234', googleId: '1234', text: 'asdf', title: '' }, query: {} }, res);
+
+ expect(res.status).toHaveBeenCalledWith(200);
+ expect(res.send).toHaveBeenCalled();
+ const sent = res.send.mock.calls[0][0];
+ expect(sent.editId).not.toEqual('1234');
+ expect(sent.shareId).not.toEqual('1234');
+ expect(sent.googleId).toBeUndefined();
+ });
+
+ it('should handle mongo error', async ()=>{
+ saveFunc = jest.fn(async function() {
+ throw 'err';
+ });
+ model.mockImplementation((brew)=>modelBrew(brew));
+
+ let err;
+ try {
+ await api.newBrew({ body: { editId: '1234', shareId: '1234', googleId: '1234', text: 'asdf', title: '' }, query: {} }, res);
+ } catch (e) {
+ err = e;
+ }
+
+ expect(res.send).not.toHaveBeenCalled();
+ expect(err).not.toBeUndefined();
+ });
+
+ it('should save to google if requested', async()=>{
+ await api.newBrew({ body: { text: 'asdf', title: '' }, query: { saveToGoogle: true }, account: { username: 'test user' } }, res);
+
+ expect(google.newGoogleBrew).toHaveBeenCalled();
+ expect(res.status).toHaveBeenCalledWith(200);
+ expect(res.send).toHaveBeenCalledWith({
+ _id : '1',
+ authors : ['test user'],
+ createdAt : undefined,
+ description : '',
+ editId : expect.any(String),
+ gDrive : false,
+ pageCount : undefined,
+ published : false,
+ renderer : undefined,
+ shareId : expect.any(String),
+ googleId : expect.any(String),
+ style : undefined,
+ systems : [],
+ tags : [],
+ text : undefined,
+ textBin : undefined,
+ theme : '5ePHB',
+ thumbnail : '',
+ title : 'asdf',
+ trashed : false,
+ updatedAt : undefined,
+ views : 0
+ });
+ });
+
+ it('should handle google error', async()=>{
+ google.newGoogleBrew = jest.fn(()=>{
+ throw 'err';
+ });
+ await api.newBrew({ body: { text: 'asdf', title: '' }, query: { saveToGoogle: true }, account: { username: 'test user' } }, res);
+
+ expect(res.status).toHaveBeenCalledWith(500);
+ expect(res.send).toHaveBeenCalledWith('err');
+ });
+ });
+
+ describe('deleteGoogleBrew', ()=>{
+ it('should check auth and delete brew', async ()=>{
+ const result = await api.deleteGoogleBrew({ username: 'test user' }, 'id', 'editId', res);
+
+ expect(result).toBe(true);
+ expect(google.authCheck).toHaveBeenCalledWith({ username: 'test user' }, expect.objectContaining({}));
+ expect(google.deleteGoogleBrew).toHaveBeenCalledWith('client', 'id', 'editId');
+ });
+ });
+
+ describe('deleteBrew', ()=>{
+ it('should handle case where fetching the brew returns an error', async ()=>{
+ api.getBrew = jest.fn(()=>async ()=>{ throw 'err'; });
+ api.getId = jest.fn(()=>({ id: '1', googleId: '2' }));
+ model.deleteOne = jest.fn(async ()=>{});
+ const next = jest.fn(()=>{});
+
+ await api.deleteBrew(null, null, next);
+
+ expect(next).toHaveBeenCalled();
+ expect(model.deleteOne).toHaveBeenCalledWith({ editId: '1' });
+ });
+
+ it('should delete if no authors', async ()=>{
+ const brew = {
+ ...hbBrew,
+ authors : []
+ };
+ api.getBrew = jest.fn(()=>async (req)=>{
+ req.brew = brew;
+ });
+ model.findOne = jest.fn(async ()=>modelBrew(brew));
+ const req = {};
+
+ await api.deleteBrew(req, res);
+
+ expect(api.getBrew).toHaveBeenCalled();
+ expect(model.findOne).toHaveBeenCalled();
+ expect(removeFunc).toHaveBeenCalled();
+ });
+
+ it('should throw on delete error', async ()=>{
+ const brew = {
+ ...hbBrew,
+ authors : []
+ };
+ api.getBrew = jest.fn(()=>async (req)=>{
+ req.brew = brew;
+ });
+ model.findOne = jest.fn(async ()=>modelBrew(brew));
+ removeFunc = jest.fn(async ()=>{ throw 'err'; });
+ const req = {};
+
+ let err;
+ try {
+ await api.deleteBrew(req, res);
+ } catch (e) {
+ err = e;
+ }
+
+ expect(err).not.toBeUndefined();
+ expect(api.getBrew).toHaveBeenCalled();
+ expect(model.findOne).toHaveBeenCalled();
+ expect(removeFunc).toHaveBeenCalled();
+ });
+
+ it('should delete when one author', async ()=>{
+ const brew = {
+ ...hbBrew,
+ authors : ['test']
+ };
+ api.getBrew = jest.fn(()=>async (req)=>{
+ req.brew = brew;
+ });
+ model.findOne = jest.fn(async ()=>modelBrew(brew));
+ const req = { account: { username: 'test' } };
+
+ await api.deleteBrew(req, res);
+
+ expect(api.getBrew).toHaveBeenCalled();
+ expect(model.findOne).toHaveBeenCalled();
+ expect(removeFunc).toHaveBeenCalled();
+ });
+
+ it('should remove one author when multiple present', async ()=>{
+ const brew = {
+ ...hbBrew,
+ authors : ['test', 'test2']
+ };
+ api.getBrew = jest.fn(()=>async (req)=>{
+ req.brew = brew;
+ });
+ model.findOne = jest.fn(async ()=>modelBrew(brew));
+ const req = { account: { username: 'test' } };
+
+ await api.deleteBrew(req, res);
+
+ expect(api.getBrew).toHaveBeenCalled();
+ expect(model.findOne).toHaveBeenCalled();
+ expect(removeFunc).not.toHaveBeenCalled();
+ expect(saveFunc).toHaveBeenCalled();
+ expect(saved.authors).toEqual(['test2']);
+ });
+
+ it('should handle save error', async ()=>{
+ const brew = {
+ ...hbBrew,
+ authors : ['test', 'test2']
+ };
+ api.getBrew = jest.fn(()=>async (req)=>{
+ req.brew = brew;
+ });
+ model.findOne = jest.fn(async ()=>modelBrew(brew));
+ saveFunc = jest.fn(async ()=>{ throw 'err'; });
+ const req = { account: { username: 'test' } };
+
+ let err;
+ try {
+ await api.deleteBrew(req, res);
+ } catch (e) {
+ err = e;
+ }
+
+ expect(err).not.toBeUndefined();
+ expect(api.getBrew).toHaveBeenCalled();
+ expect(model.findOne).toHaveBeenCalled();
+ expect(removeFunc).not.toHaveBeenCalled();
+ expect(saveFunc).toHaveBeenCalled();
+ });
+
+ it('should delete google brew', async ()=>{
+ const brew = {
+ ...googleBrew,
+ authors : ['test']
+ };
+ api.getBrew = jest.fn(()=>async (req)=>{
+ req.brew = brew;
+ });
+ model.findOne = jest.fn(async ()=>modelBrew(brew));
+ api.deleteGoogleBrew = jest.fn(async ()=>true);
+ const req = { account: { username: 'test' } };
+
+ await api.deleteBrew(req, res);
+
+ expect(api.getBrew).toHaveBeenCalled();
+ expect(model.findOne).toHaveBeenCalled();
+ expect(removeFunc).toHaveBeenCalled();
+ expect(api.deleteGoogleBrew).toHaveBeenCalled();
+ });
+
+ it('should handle google brew delete error', async ()=>{
+ const brew = {
+ ...googleBrew,
+ authors : ['test']
+ };
+ api.getBrew = jest.fn(()=>async (req)=>{
+ req.brew = brew;
+ });
+ model.findOne = jest.fn(async ()=>modelBrew(brew));
+ api.deleteGoogleBrew = jest.fn(async ()=>{
+ throw 'err';
+ });
+ const req = { account: { username: 'test' } };
+
+ await api.deleteBrew(req, res);
+
+ expect(api.getBrew).toHaveBeenCalled();
+ expect(model.findOne).toHaveBeenCalled();
+ expect(removeFunc).toHaveBeenCalled();
+ expect(api.deleteGoogleBrew).toHaveBeenCalled();
+ });
+
+ it('should delete google brew and retain stub when multiple authors and owner request deletion', async ()=>{
+ const brew = {
+ ...googleBrew,
+ authors : ['test', 'test2']
+ };
+ api.getBrew = jest.fn(()=>async (req)=>{
+ req.brew = brew;
+ });
+ model.findOne = jest.fn(async ()=>modelBrew(brew));
+ api.deleteGoogleBrew = jest.fn(async ()=>true);
+ const req = { account: { username: 'test' } };
+
+ await api.deleteBrew(req, res);
+
+ expect(api.getBrew).toHaveBeenCalled();
+ expect(model.findOne).toHaveBeenCalled();
+ expect(removeFunc).not.toHaveBeenCalled();
+ expect(api.deleteGoogleBrew).toHaveBeenCalled();
+ expect(saveFunc).toHaveBeenCalled();
+ expect(saved.authors).toEqual(['test2']);
+ expect(saved.googleId).toEqual(undefined);
+ expect(saved.text).toEqual(undefined);
+ expect(saved.textBin).not.toEqual(undefined);
+ });
+
+ it('should retain google brew and update stub when multiple authors and extra author requests deletion', async ()=>{
+ const brew = {
+ ...googleBrew,
+ authors : ['test', 'test2']
+ };
+ api.getBrew = jest.fn(()=>async (req)=>{
+ req.brew = brew;
+ });
+ model.findOne = jest.fn(async ()=>modelBrew(brew));
+ api.deleteGoogleBrew = jest.fn(async ()=>true);
+ const req = { account: { username: 'test2' } };
+
+ await api.deleteBrew(req, res);
+
+ expect(api.getBrew).toHaveBeenCalled();
+ expect(model.findOne).toHaveBeenCalled();
+ expect(removeFunc).not.toHaveBeenCalled();
+ expect(api.deleteGoogleBrew).not.toHaveBeenCalled();
+ expect(saveFunc).toHaveBeenCalled();
+ expect(saved.authors).toEqual(['test']);
+ expect(saved.googleId).toEqual(brew.googleId);
+ });
+ });
+});
diff --git a/server/homebrew.model.js b/server/homebrew.model.js
index a514e3fd8..41f3b8716 100644
--- a/server/homebrew.model.js
+++ b/server/homebrew.model.js
@@ -12,13 +12,14 @@ const HomebrewSchema = mongoose.Schema({
textBin : { type: Buffer },
pageCount : { type: Number, default: 1 },
- description : { type: String, default: '' },
- tags : [String],
- systems : [String],
- renderer : { type: String, default: '' },
- authors : [String],
- published : { type: Boolean, default: false },
- thumbnail : { type: String, default: '' },
+ description : { type: String, default: '' },
+ tags : [String],
+ systems : [String],
+ renderer : { type: String, default: '' },
+ authors : [String],
+ invitedAuthors : [String],
+ published : { type: Boolean, default: false },
+ thumbnail : { type: String, default: '' },
createdAt : { type: Date, default: Date.now },
updatedAt : { type: Date, default: Date.now },
@@ -46,8 +47,6 @@ HomebrewSchema.statics.get = function(query, fields=null){
unzipped = zlib.inflateRawSync(brews[0].textBin);
brews[0].text = unzipped.toString();
}
- if(!brews[0].renderer)
- brews[0].renderer = 'legacy';
return resolve(brews[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 0123cde98..2544ff77d 100644
--- a/themes/Legacy/5ePHB/style.less
+++ b/themes/Legacy/5ePHB/style.less
@@ -1,496 +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;
- //*****************************
- // * 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 25456ea7e..ef62d5a0e 100644
--- a/themes/V3/Blank/style.less
+++ b/themes/V3/Blank/style.less
@@ -1,155 +1,231 @@
-@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
-}
+ :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;
-}
-
-//*****************************
-// * MUSTACHE DIVS/SPANS
-// *****************************/
-.page {
- .block {
- break-inside : avoid;
- display : inline-block;
- width : 100%;
+ @page { margin: 0; }
+ body {
+ counter-reset : phb-page-numbers;
}
- .inline-block {
- display : inline-block;
- text-indent : initial;
- }
-}
-
-.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;
-}
- //*****************************
- // * 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;
+ *{
+ -webkit-print-color-adjust : exact;
}
//*****************************
- // * HEADERS
+ // * MUSTACHE DIVS/SPANS
// *****************************/
- 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;
+ .page {
+ .block {
+ break-inside : avoid;
+ display : inline-block;
+ width : 100%;
+ }
+ .inline-block {
+ display : inline-block;
+ text-indent : initial;
}
}
- 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;
+ .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;
+ }
+
+ //*****************************
+ // * 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;
}
}
@@ -293,81 +369,51 @@ body {
width : 100%;
display : inline-block;
}
+
//*****************************
- // * EXTRAS
+ // * DEFINITION LISTS
// *****************************/
- .columnSplit {
- visibility : hidden;
- -webkit-column-break-after : always;
- break-after : always;
- -moz-column-break-after : always;
- margin-top : 0;
- & + * {
+ .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;
+ }
}
}
- //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;
- }
-}
-//*****************************
-// * 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;
- &+* {
- 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
+}