diff --git a/index.js b/index.js
index 8cc2424..f907ea1 100644
--- a/index.js
+++ b/index.js
@@ -12,6 +12,8 @@ const format = require('pg-format');
const cronParser = require('cron-parser');
const { ObjectId } = require('mongodb');
const { RateLimiterMemory } = require('rate-limiter-flexible');
+const crypto = require('crypto');
+const { sendVerificationEmail } = require('./mailer'); // Import the function
// HTTP rate limiter: 5 requests per second per IP
const httpRateLimiter = new RateLimiterMemory({
@@ -25,6 +27,12 @@ const authRateLimiter = new RateLimiterMemory({
duration: 3600, // 1 hour in seconds
});
+// Resend verification email rate limiter: 1 request per 20 seconds per IP
+const resendVerificationRateLimiter = new RateLimiterMemory({
+ points: 1,
+ duration: 20,
+});
+
// WebSocket connection rate limiter: 1 connection per second per IP
const wsConnectionRateLimiter = new RateLimiterMemory({
points: 5,
@@ -526,7 +534,7 @@ app.post('/login', async (req, res) => {
if (!email || !password) return res.status(400).json({error: 'email and password required'});
try {
- const {rows} = await pool.query('select id, password_hash_string from users where email = $1', [email]);
+ const {rows} = await pool.query('select id, password_hash_string, is_verified from users where email = $1', [email]);
if (rows.length === 0) return res.status(401).json({error: 'Invalid Credentials'});
const user = rows[0]
console.log('user found');
@@ -534,6 +542,13 @@ app.post('/login', async (req, res) => {
if (!verified) return res.status(401).json({ error: 'Invalid credentials' });
console.log("password correct");
+
+ if (!user.is_verified) {
+ return res.status(403).json({
+ error: 'Email not verified. Please check your email and verify your account before logging in.'
+ });
+ }
+
const token = await createToken(user.id); // token is now tied to ID
res.status(200).json({token});
@@ -558,23 +573,143 @@ app.post('/create_user', async (req, res) => {
});
}
+ // Compute hash and token once for reuse
+ const hashedPass = await hash(password);
+ const token = crypto.randomBytes(32).toString('hex');
+
try {
-
- const hashedPass = await hash(password);
-
- await pool.query("insert into users (name, email, password_hash_string) values (nullif($1, ''), $2, $3)",
- [name, email, hashedPass]
+ const newUser = await pool.query(
+ `insert into users (name, email, password_hash_string, verification_token, is_verified)
+ values (nullif($1, ''), $2, $3, $4, false)
+ RETURNING id, email`,
+ [name, email, hashedPass, token]
);
- return res.sendStatus(201);
+
+ await sendVerificationEmail(email, token, name);
+
+ // Create temporary token for verification checking
+ const tempToken = await createToken(newUser.rows[0].id);
+
+ res.status(201).json({ message: "User registered. Please check your email.", token: tempToken });
} catch (err) {
console.error(err);
if (err.code === '23505') {
+ // Email already exists - check if verified
+ try {
+ const {rows} = await pool.query('SELECT is_verified FROM users WHERE email = $1', [email]);
+ if (rows.length === 1 && !rows[0].is_verified) {
+ // User exists but not verified - replace their record (reuse hashedPass and token)
+ await pool.query(
+ `UPDATE users
+ SET name = nullif($1, ''), password_hash_string = $2, verification_token = $3
+ WHERE email = $4`,
+ [name, hashedPass, token, email]
+ );
+
+ await sendVerificationEmail(email, token, name);
+
+ // Get user ID and create temp token
+ const {rows: userRows} = await pool.query('SELECT id FROM users WHERE email = $1', [email]);
+ const tempToken = await createToken(userRows[0].id);
+
+ return res.status(201).json({ message: "User registered. Please check your email.", token: tempToken });
+ }
+ } catch (updateErr) {
+ console.error('Error updating unverified user:', updateErr);
+ }
+
+ // User is verified or something went wrong - email is truly in use
return res.status(409).json({ error: 'Email already in use' });
}
return res.sendStatus(500);
}
});
+app.get('/verify-email', async (req, res) => {
+ const { token } = req.query;
+
+ if (!token) {
+ return res.status(400).send('Missing token');
+ }
+
+ try {
+ // 1. Find the user with this token
+ const result = await pool.query(
+ `SELECT * FROM users WHERE verification_token = $1`,
+ [token]
+ );
+
+ if (result.rows.length === 0) {
+ return res.status(400).send('Invalid or expired token.');
+ }
+
+ const user = result.rows[0];
+
+ // 2. Verify them and clear the token
+ // We clear the token so the link cannot be used twice
+ await pool.query(
+ `UPDATE users
+ SET is_verified = true, verification_token = NULL
+ WHERE id = $1`,
+ [user.id]
+ );
+
+ // 3. Send them to a success page or back to the app
+ res.send(`
+
Email Verified!
+ You can now close this window and log in to the app.
+ `);
+
+ } catch (err) {
+ console.error(err);
+ res.status(500).send('Server Error');
+ }
+});
+
+app.get('/verification_status', authenticateToken, async (req, res) => {
+ try {
+ const {rows} = await pool.query('SELECT is_verified FROM users WHERE id = $1', [req.user]);
+ if (rows.length === 0) return res.status(404).json({error: 'User not found'});
+ res.status(200).json({is_verified: rows[0].is_verified});
+ } catch (err) {
+ console.error(err);
+ res.status(500).json({ error: 'Internal server error' });
+ }
+});
+
+app.post('/resend_verification', authenticateToken, async (req, res) => {
+ const ip = req.ip || req.connection.remoteAddress;
+ try {
+ await resendVerificationRateLimiter.consume(ip);
+ } catch (rejRes) {
+ return res.status(429).json({
+ error: 'Please wait before requesting another verification email.',
+ retryAfter: Math.ceil(rejRes.msBeforeNext / 1000) // seconds
+ });
+ }
+
+ try {
+ const {rows} = await pool.query('SELECT email, name, is_verified FROM users WHERE id = $1', [req.user]);
+ if (rows.length === 0) return res.status(404).json({error: 'User not found'});
+
+ const user = rows[0];
+
+ if (user.is_verified) {
+ return res.status(400).json({error: 'Email already verified'});
+ }
+
+ const token = crypto.randomBytes(32).toString('hex');
+ await pool.query('UPDATE users SET verification_token = $1 WHERE id = $2', [token, req.user]);
+
+ await sendVerificationEmail(user.email, token, user.name);
+
+ res.status(200).json({ message: 'Verification email sent' });
+ } catch (err) {
+ console.error(err);
+ res.status(500).json({ error: 'Internal server error' });
+ }
+});
+
app.get('/verify', authenticateToken, async (req, res) => {
try {
// Issue a new token to extend session
@@ -1168,8 +1303,8 @@ app.post('/update_schedule', authenticateToken, async (req, res) => {
}
});
-server.listen(port, () => {
- console.log(`Example app listening at http://localhost:${port}`);
+server.listen(port, '127.0.0.1', () => {
+ console.log(`Example app listening on 127.0.0.1:${port}`);
});
app.post('/periph_schedule_list', authenticateToken, async (req, res) => {
diff --git a/mailer.js b/mailer.js
new file mode 100644
index 0000000..d640b79
--- /dev/null
+++ b/mailer.js
@@ -0,0 +1,43 @@
+const nodemailer = require('nodemailer');
+const { SESClient, SendRawEmailCommand } = require('@aws-sdk/client-ses');
+
+const ses = new SESClient({
+ region: process.env.AWS_REGION,
+ credentials: {
+ accessKeyId: process.env.AWS_ACCESS_KEY_ID,
+ secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
+ },
+});
+
+// Create the transporter
+const transporter = nodemailer.createTransport({
+ SES: { ses, aws: { SendRawEmailCommand } },
+});
+
+// Helper function to send email
+async function sendVerificationEmail(toEmail, token, name) {
+ const verificationLink = `https://wahwa.com/verify-email?token=${token}`;
+
+ try {
+ const info = await transporter.sendMail({
+ from: `"BlindMaster" <${process.env.EMAIL_FROM}>`, // Sender address
+ to: toEmail,
+ subject: "Verify your BlindMaster account",
+ html: `
+
+
Welcome${name && name.trim() ? `, ${name.trim()}` : ''}!
+
Please verify your email address to complete your registration.
+
Verify Email
+
Link expires in 24 hours.
+
+ `,
+ });
+ console.log("Email sent successfully:", info.messageId);
+ return true;
+ } catch (error) {
+ console.error("Error sending email:", error);
+ return false;
+ }
+}
+
+module.exports = { sendVerificationEmail };
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 1d324f9..93db591 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "1.0.0",
"license": "ISC",
"dependencies": {
+ "@aws-sdk/client-ses": "^3.962.0",
"agenda": "^5.0.0",
"argon2": "^0.43.0",
"dotenv": "^16.5.0",
@@ -16,6 +17,7 @@
"jsonwebtoken": "^9.0.2",
"mongoose": "^8.16.1",
"node-schedule": "^2.1.1",
+ "nodemailer": "^7.0.12",
"pg": "^8.16.0",
"pg-format": "^1.0.4",
"rate-limiter-flexible": "^9.0.1",
@@ -27,7 +29,6 @@
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
"integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"@aws-crypto/sha256-js": "^5.2.0",
"@aws-crypto/supports-web-crypto": "^5.2.0",
@@ -43,7 +44,6 @@
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -56,7 +56,6 @@
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
"tslib": "^2.6.2"
@@ -70,7 +69,6 @@
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
"tslib": "^2.6.2"
@@ -84,7 +82,6 @@
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
"integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"@aws-crypto/util": "^5.2.0",
"@aws-sdk/types": "^3.222.0",
@@ -99,7 +96,6 @@
"resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
"integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
}
@@ -109,7 +105,6 @@
"resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz",
"integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"@aws-sdk/types": "^3.222.0",
"@smithy/util-utf8": "^2.0.0",
@@ -121,7 +116,6 @@
"resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
"integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -134,7 +128,6 @@
"resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
"integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"@smithy/is-array-buffer": "^2.2.0",
"tslib": "^2.6.2"
@@ -148,7 +141,6 @@
"resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
"integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"@smithy/util-buffer-from": "^2.2.0",
"tslib": "^2.6.2"
@@ -208,6 +200,524 @@
"node": ">=18.0.0"
}
},
+ "node_modules/@aws-sdk/client-ses": {
+ "version": "3.962.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.962.0.tgz",
+ "integrity": "sha512-3eEf0hQ48xin3nGt3gUE+54dIqXFdfzIqtDvv/i4GObSfgoNgiYpfiRdu0sXDKLSnzVPkp52YMmt2mUtXp5wbQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/credential-provider-node": "3.962.0",
+ "@aws-sdk/middleware-host-header": "3.957.0",
+ "@aws-sdk/middleware-logger": "3.957.0",
+ "@aws-sdk/middleware-recursion-detection": "3.957.0",
+ "@aws-sdk/middleware-user-agent": "3.957.0",
+ "@aws-sdk/region-config-resolver": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@aws-sdk/util-endpoints": "3.957.0",
+ "@aws-sdk/util-user-agent-browser": "3.957.0",
+ "@aws-sdk/util-user-agent-node": "3.957.0",
+ "@smithy/config-resolver": "^4.4.5",
+ "@smithy/core": "^3.20.0",
+ "@smithy/fetch-http-handler": "^5.3.8",
+ "@smithy/hash-node": "^4.2.7",
+ "@smithy/invalid-dependency": "^4.2.7",
+ "@smithy/middleware-content-length": "^4.2.7",
+ "@smithy/middleware-endpoint": "^4.4.1",
+ "@smithy/middleware-retry": "^4.4.17",
+ "@smithy/middleware-serde": "^4.2.8",
+ "@smithy/middleware-stack": "^4.2.7",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/node-http-handler": "^4.4.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
+ "@smithy/url-parser": "^4.2.7",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.16",
+ "@smithy/util-defaults-mode-node": "^4.2.19",
+ "@smithy/util-endpoints": "^3.2.7",
+ "@smithy/util-middleware": "^4.2.7",
+ "@smithy/util-retry": "^4.2.7",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/util-waiter": "^4.2.7",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/client-sso": {
+ "version": "3.958.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.958.0.tgz",
+ "integrity": "sha512-6qNCIeaMzKzfqasy2nNRuYnMuaMebCcCPP4J2CVGkA8QYMbIVKPlkn9bpB20Vxe6H/r3jtCCLQaOJjVTx/6dXg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/middleware-host-header": "3.957.0",
+ "@aws-sdk/middleware-logger": "3.957.0",
+ "@aws-sdk/middleware-recursion-detection": "3.957.0",
+ "@aws-sdk/middleware-user-agent": "3.957.0",
+ "@aws-sdk/region-config-resolver": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@aws-sdk/util-endpoints": "3.957.0",
+ "@aws-sdk/util-user-agent-browser": "3.957.0",
+ "@aws-sdk/util-user-agent-node": "3.957.0",
+ "@smithy/config-resolver": "^4.4.5",
+ "@smithy/core": "^3.20.0",
+ "@smithy/fetch-http-handler": "^5.3.8",
+ "@smithy/hash-node": "^4.2.7",
+ "@smithy/invalid-dependency": "^4.2.7",
+ "@smithy/middleware-content-length": "^4.2.7",
+ "@smithy/middleware-endpoint": "^4.4.1",
+ "@smithy/middleware-retry": "^4.4.17",
+ "@smithy/middleware-serde": "^4.2.8",
+ "@smithy/middleware-stack": "^4.2.7",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/node-http-handler": "^4.4.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
+ "@smithy/url-parser": "^4.2.7",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.16",
+ "@smithy/util-defaults-mode-node": "^4.2.19",
+ "@smithy/util-endpoints": "^3.2.7",
+ "@smithy/util-middleware": "^4.2.7",
+ "@smithy/util-retry": "^4.2.7",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/core": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.957.0.tgz",
+ "integrity": "sha512-DrZgDnF1lQZv75a52nFWs6MExihJF2GZB6ETZRqr6jMwhrk2kbJPUtvgbifwcL7AYmVqHQDJBrR/MqkwwFCpiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@aws-sdk/xml-builder": "3.957.0",
+ "@smithy/core": "^3.20.0",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/signature-v4": "^5.3.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-middleware": "^4.2.7",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/credential-provider-env": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.957.0.tgz",
+ "integrity": "sha512-475mkhGaWCr+Z52fOOVb/q2VHuNvqEDixlYIkeaO6xJ6t9qR0wpLt4hOQaR6zR1wfZV0SlE7d8RErdYq/PByog==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/credential-provider-http": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.957.0.tgz",
+ "integrity": "sha512-8dS55QHRxXgJlHkEYaCGZIhieCs9NU1HU1BcqQ4RfUdSsfRdxxktqUKgCnBnOOn0oD3PPA8cQOCAVgIyRb3Rfw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/fetch-http-handler": "^5.3.8",
+ "@smithy/node-http-handler": "^4.4.7",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-stream": "^4.5.8",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/credential-provider-ini": {
+ "version": "3.962.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.962.0.tgz",
+ "integrity": "sha512-h0kVnXLW2d3nxbcrR/Pfg3W/+YoCguasWz7/3nYzVqmdKarGrpJzaFdoZtLgvDSZ8VgWUC4lWOTcsDMV0UNqUQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/credential-provider-env": "3.957.0",
+ "@aws-sdk/credential-provider-http": "3.957.0",
+ "@aws-sdk/credential-provider-login": "3.962.0",
+ "@aws-sdk/credential-provider-process": "3.957.0",
+ "@aws-sdk/credential-provider-sso": "3.958.0",
+ "@aws-sdk/credential-provider-web-identity": "3.958.0",
+ "@aws-sdk/nested-clients": "3.958.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/credential-provider-imds": "^4.2.7",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/shared-ini-file-loader": "^4.4.2",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/credential-provider-node": {
+ "version": "3.962.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.962.0.tgz",
+ "integrity": "sha512-CS78NsWRxLa+nWqeWBEYMZTLacMFIXs1C5WJuM9kD05LLiWL32ksljoPsvNN24Bc7rCSQIIMx/U3KGvkDVZMVg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "3.957.0",
+ "@aws-sdk/credential-provider-http": "3.957.0",
+ "@aws-sdk/credential-provider-ini": "3.962.0",
+ "@aws-sdk/credential-provider-process": "3.957.0",
+ "@aws-sdk/credential-provider-sso": "3.958.0",
+ "@aws-sdk/credential-provider-web-identity": "3.958.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/credential-provider-imds": "^4.2.7",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/shared-ini-file-loader": "^4.4.2",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/credential-provider-process": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.957.0.tgz",
+ "integrity": "sha512-/KIz9kadwbeLy6SKvT79W81Y+hb/8LMDyeloA2zhouE28hmne+hLn0wNCQXAAupFFlYOAtZR2NTBs7HBAReJlg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/shared-ini-file-loader": "^4.4.2",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/credential-provider-sso": {
+ "version": "3.958.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.958.0.tgz",
+ "integrity": "sha512-CBYHJ5ufp8HC4q+o7IJejCUctJXWaksgpmoFpXerbjAso7/Fg7LLUu9inXVOxlHKLlvYekDXjIUBXDJS2WYdgg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/client-sso": "3.958.0",
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/token-providers": "3.958.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/shared-ini-file-loader": "^4.4.2",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/credential-provider-web-identity": {
+ "version": "3.958.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.958.0.tgz",
+ "integrity": "sha512-dgnvwjMq5Y66WozzUzxNkCFap+umHUtqMMKlr8z/vl9NYMLem/WUbWNpFFOVFWquXikc+ewtpBMR4KEDXfZ+KA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/nested-clients": "3.958.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/shared-ini-file-loader": "^4.4.2",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/middleware-host-header": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.957.0.tgz",
+ "integrity": "sha512-BBgKawVyfQZglEkNTuBBdC3azlyqNXsvvN4jPkWAiNYcY0x1BasaJFl+7u/HisfULstryweJq/dAvIZIxzlZaA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/middleware-logger": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.957.0.tgz",
+ "integrity": "sha512-w1qfKrSKHf9b5a8O76yQ1t69u6NWuBjr5kBX+jRWFx/5mu6RLpqERXRpVJxfosbep7k3B+DSB5tZMZ82GKcJtQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/middleware-recursion-detection": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.957.0.tgz",
+ "integrity": "sha512-D2H/WoxhAZNYX+IjkKTdOhOkWQaK0jjJrDBj56hKjU5c9ltQiaX/1PqJ4dfjHntEshJfu0w+E6XJ+/6A6ILBBA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@aws/lambda-invoke-store": "^0.2.2",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/middleware-user-agent": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.957.0.tgz",
+ "integrity": "sha512-50vcHu96XakQnIvlKJ1UoltrFODjsq2KvtTgHiPFteUS884lQnK5VC/8xd1Msz/1ONpLMzdCVproCQqhDTtMPQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@aws-sdk/util-endpoints": "3.957.0",
+ "@smithy/core": "^3.20.0",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/nested-clients": {
+ "version": "3.958.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.958.0.tgz",
+ "integrity": "sha512-/KuCcS8b5TpQXkYOrPLYytrgxBhv81+5pChkOlhegbeHttjM69pyUpQVJqyfDM/A7wPLnDrzCAnk4zaAOkY0Nw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/middleware-host-header": "3.957.0",
+ "@aws-sdk/middleware-logger": "3.957.0",
+ "@aws-sdk/middleware-recursion-detection": "3.957.0",
+ "@aws-sdk/middleware-user-agent": "3.957.0",
+ "@aws-sdk/region-config-resolver": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@aws-sdk/util-endpoints": "3.957.0",
+ "@aws-sdk/util-user-agent-browser": "3.957.0",
+ "@aws-sdk/util-user-agent-node": "3.957.0",
+ "@smithy/config-resolver": "^4.4.5",
+ "@smithy/core": "^3.20.0",
+ "@smithy/fetch-http-handler": "^5.3.8",
+ "@smithy/hash-node": "^4.2.7",
+ "@smithy/invalid-dependency": "^4.2.7",
+ "@smithy/middleware-content-length": "^4.2.7",
+ "@smithy/middleware-endpoint": "^4.4.1",
+ "@smithy/middleware-retry": "^4.4.17",
+ "@smithy/middleware-serde": "^4.2.8",
+ "@smithy/middleware-stack": "^4.2.7",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/node-http-handler": "^4.4.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
+ "@smithy/url-parser": "^4.2.7",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.16",
+ "@smithy/util-defaults-mode-node": "^4.2.19",
+ "@smithy/util-endpoints": "^3.2.7",
+ "@smithy/util-middleware": "^4.2.7",
+ "@smithy/util-retry": "^4.2.7",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/region-config-resolver": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.957.0.tgz",
+ "integrity": "sha512-V8iY3blh8l2iaOqXWW88HbkY5jDoWjH56jonprG/cpyqqCnprvpMUZWPWYJoI8rHRf2bqzZeql1slxG6EnKI7A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/config-resolver": "^4.4.5",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/token-providers": {
+ "version": "3.958.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.958.0.tgz",
+ "integrity": "sha512-UCj7lQXODduD1myNJQkV+LYcGYJ9iiMggR8ow8Hva1g3A/Na5imNXzz6O67k7DAee0TYpy+gkNw+SizC6min8Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/nested-clients": "3.958.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/shared-ini-file-loader": "^4.4.2",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/types": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.957.0.tgz",
+ "integrity": "sha512-wzWC2Nrt859ABk6UCAVY/WYEbAd7FjkdrQL6m24+tfmWYDNRByTJ9uOgU/kw9zqLCAwb//CPvrJdhqjTznWXAg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/util-endpoints": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.957.0.tgz",
+ "integrity": "sha512-xwF9K24mZSxcxKS3UKQFeX/dPYkEps9wF1b+MGON7EvnbcucrJGyQyK1v1xFPn1aqXkBTFi+SZaMRx5E5YCVFw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/types": "^4.11.0",
+ "@smithy/url-parser": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.7",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/util-user-agent-browser": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.957.0.tgz",
+ "integrity": "sha512-exueuwxef0lUJRnGaVkNSC674eAiWU07ORhxBnevFFZEKisln+09Qrtw823iyv5I1N8T+wKfh95xvtWQrNKNQw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/types": "^4.11.0",
+ "bowser": "^2.11.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/util-user-agent-node": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.957.0.tgz",
+ "integrity": "sha512-ycbYCwqXk4gJGp0Oxkzf2KBeeGBdTxz559D41NJP8FlzSej1Gh7Rk40Zo6AyTfsNWkrl/kVi1t937OIzC5t+9Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/middleware-user-agent": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "aws-crt": ">=1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "aws-crt": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/@aws-sdk/xml-builder": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.957.0.tgz",
+ "integrity": "sha512-Ai5iiQqS8kJ5PjzMhWcLKN0G2yasAkvpnPlq2EnqlIMdB48HsizElt62qcktdxp4neRMyGkFq4NzgmDbXnhRiA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.11.0",
+ "fast-xml-parser": "5.2.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/fast-xml-parser": {
+ "version": "5.2.5",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz",
+ "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "strnum": "^2.1.0"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/@aws-sdk/client-ses/node_modules/strnum": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz",
+ "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/@aws-sdk/client-sso": {
"version": "3.839.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.839.0.tgz",
@@ -366,6 +876,286 @@
"node": ">=18.0.0"
}
},
+ "node_modules/@aws-sdk/credential-provider-login": {
+ "version": "3.962.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.962.0.tgz",
+ "integrity": "sha512-kHYH6Av2UifG3mPkpPUNRh/PuX6adaAcpmsclJdHdxlixMCRdh8GNeEihq480DC0GmfqdpoSf1w2CLmLLPIS6w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/nested-clients": "3.958.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/shared-ini-file-loader": "^4.4.2",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/core": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.957.0.tgz",
+ "integrity": "sha512-DrZgDnF1lQZv75a52nFWs6MExihJF2GZB6ETZRqr6jMwhrk2kbJPUtvgbifwcL7AYmVqHQDJBrR/MqkwwFCpiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@aws-sdk/xml-builder": "3.957.0",
+ "@smithy/core": "^3.20.0",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/signature-v4": "^5.3.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-middleware": "^4.2.7",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/middleware-host-header": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.957.0.tgz",
+ "integrity": "sha512-BBgKawVyfQZglEkNTuBBdC3azlyqNXsvvN4jPkWAiNYcY0x1BasaJFl+7u/HisfULstryweJq/dAvIZIxzlZaA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/middleware-logger": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.957.0.tgz",
+ "integrity": "sha512-w1qfKrSKHf9b5a8O76yQ1t69u6NWuBjr5kBX+jRWFx/5mu6RLpqERXRpVJxfosbep7k3B+DSB5tZMZ82GKcJtQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/middleware-recursion-detection": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.957.0.tgz",
+ "integrity": "sha512-D2H/WoxhAZNYX+IjkKTdOhOkWQaK0jjJrDBj56hKjU5c9ltQiaX/1PqJ4dfjHntEshJfu0w+E6XJ+/6A6ILBBA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@aws/lambda-invoke-store": "^0.2.2",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/middleware-user-agent": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.957.0.tgz",
+ "integrity": "sha512-50vcHu96XakQnIvlKJ1UoltrFODjsq2KvtTgHiPFteUS884lQnK5VC/8xd1Msz/1ONpLMzdCVproCQqhDTtMPQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@aws-sdk/util-endpoints": "3.957.0",
+ "@smithy/core": "^3.20.0",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/nested-clients": {
+ "version": "3.958.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.958.0.tgz",
+ "integrity": "sha512-/KuCcS8b5TpQXkYOrPLYytrgxBhv81+5pChkOlhegbeHttjM69pyUpQVJqyfDM/A7wPLnDrzCAnk4zaAOkY0Nw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.957.0",
+ "@aws-sdk/middleware-host-header": "3.957.0",
+ "@aws-sdk/middleware-logger": "3.957.0",
+ "@aws-sdk/middleware-recursion-detection": "3.957.0",
+ "@aws-sdk/middleware-user-agent": "3.957.0",
+ "@aws-sdk/region-config-resolver": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@aws-sdk/util-endpoints": "3.957.0",
+ "@aws-sdk/util-user-agent-browser": "3.957.0",
+ "@aws-sdk/util-user-agent-node": "3.957.0",
+ "@smithy/config-resolver": "^4.4.5",
+ "@smithy/core": "^3.20.0",
+ "@smithy/fetch-http-handler": "^5.3.8",
+ "@smithy/hash-node": "^4.2.7",
+ "@smithy/invalid-dependency": "^4.2.7",
+ "@smithy/middleware-content-length": "^4.2.7",
+ "@smithy/middleware-endpoint": "^4.4.1",
+ "@smithy/middleware-retry": "^4.4.17",
+ "@smithy/middleware-serde": "^4.2.8",
+ "@smithy/middleware-stack": "^4.2.7",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/node-http-handler": "^4.4.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
+ "@smithy/url-parser": "^4.2.7",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.16",
+ "@smithy/util-defaults-mode-node": "^4.2.19",
+ "@smithy/util-endpoints": "^3.2.7",
+ "@smithy/util-middleware": "^4.2.7",
+ "@smithy/util-retry": "^4.2.7",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/region-config-resolver": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.957.0.tgz",
+ "integrity": "sha512-V8iY3blh8l2iaOqXWW88HbkY5jDoWjH56jonprG/cpyqqCnprvpMUZWPWYJoI8rHRf2bqzZeql1slxG6EnKI7A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/config-resolver": "^4.4.5",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/types": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.957.0.tgz",
+ "integrity": "sha512-wzWC2Nrt859ABk6UCAVY/WYEbAd7FjkdrQL6m24+tfmWYDNRByTJ9uOgU/kw9zqLCAwb//CPvrJdhqjTznWXAg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/util-endpoints": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.957.0.tgz",
+ "integrity": "sha512-xwF9K24mZSxcxKS3UKQFeX/dPYkEps9wF1b+MGON7EvnbcucrJGyQyK1v1xFPn1aqXkBTFi+SZaMRx5E5YCVFw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/types": "^4.11.0",
+ "@smithy/url-parser": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.7",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/util-user-agent-browser": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.957.0.tgz",
+ "integrity": "sha512-exueuwxef0lUJRnGaVkNSC674eAiWU07ORhxBnevFFZEKisln+09Qrtw823iyv5I1N8T+wKfh95xvtWQrNKNQw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/types": "^4.11.0",
+ "bowser": "^2.11.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/util-user-agent-node": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.957.0.tgz",
+ "integrity": "sha512-ycbYCwqXk4gJGp0Oxkzf2KBeeGBdTxz559D41NJP8FlzSej1Gh7Rk40Zo6AyTfsNWkrl/kVi1t937OIzC5t+9Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/middleware-user-agent": "3.957.0",
+ "@aws-sdk/types": "3.957.0",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "aws-crt": ">=1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "aws-crt": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/@aws-sdk/xml-builder": {
+ "version": "3.957.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.957.0.tgz",
+ "integrity": "sha512-Ai5iiQqS8kJ5PjzMhWcLKN0G2yasAkvpnPlq2EnqlIMdB48HsizElt62qcktdxp4neRMyGkFq4NzgmDbXnhRiA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.11.0",
+ "fast-xml-parser": "5.2.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/fast-xml-parser": {
+ "version": "5.2.5",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz",
+ "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "strnum": "^2.1.0"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-login/node_modules/strnum": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz",
+ "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/@aws-sdk/credential-provider-node": {
"version": "3.839.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.839.0.tgz",
@@ -635,7 +1425,6 @@
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.821.0.tgz",
"integrity": "sha512-Znroqdai1a90TlxGaJ+FK1lwC0fHpo97Xjsp5UKGR5JODYm7f9+/fF17ebO1KdoBr/Rm0UIFiF5VmI8ts9F1eA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"@smithy/types": "^4.3.1",
"tslib": "^2.6.2"
@@ -665,7 +1454,6 @@
"resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.804.0.tgz",
"integrity": "sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -725,6 +1513,15 @@
"node": ">=18.0.0"
}
},
+ "node_modules/@aws/lambda-invoke-store": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.2.tgz",
+ "integrity": "sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/@mongodb-js/saslprep": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.3.0.tgz",
@@ -744,13 +1541,12 @@
}
},
"node_modules/@smithy/abort-controller": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.4.tgz",
- "integrity": "sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.7.tgz",
+ "integrity": "sha512-rzMY6CaKx2qxrbYbqjXWS0plqEy7LOdKHS0bg4ixJ6aoGDPNUcLWk/FRNuCILh7GKLG9TFUXYYeQQldMBBwuyw==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -758,16 +1554,16 @@
}
},
"node_modules/@smithy/config-resolver": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.4.tgz",
- "integrity": "sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==",
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.5.tgz",
+ "integrity": "sha512-HAGoUAFYsUkoSckuKbCPayECeMim8pOu+yLy1zOxt1sifzEbrsRpYa+mKcMdiHKMeiqOibyPG0sFJnmaV/OGEg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/node-config-provider": "^4.1.3",
- "@smithy/types": "^4.3.1",
- "@smithy/util-config-provider": "^4.0.0",
- "@smithy/util-middleware": "^4.0.4",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.7",
+ "@smithy/util-middleware": "^4.2.7",
"tslib": "^2.6.2"
},
"engines": {
@@ -775,20 +1571,20 @@
}
},
"node_modules/@smithy/core": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.6.0.tgz",
- "integrity": "sha512-Pgvfb+TQ4wUNLyHzvgCP4aYZMh16y7GcfF59oirRHcgGgkH1e/s9C0nv/v3WP+Quymyr5je71HeFQCwh+44XLg==",
+ "version": "3.20.0",
+ "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.20.0.tgz",
+ "integrity": "sha512-WsSHCPq/neD5G/MkK4csLI5Y5Pkd9c1NMfpYEKeghSGaD4Ja1qLIohRQf2D5c1Uy5aXp76DeKHkzWZ9KAlHroQ==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/middleware-serde": "^4.0.8",
- "@smithy/protocol-http": "^5.1.2",
- "@smithy/types": "^4.3.1",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-body-length-browser": "^4.0.0",
- "@smithy/util-middleware": "^4.0.4",
- "@smithy/util-stream": "^4.2.2",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/middleware-serde": "^4.2.8",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.7",
+ "@smithy/util-stream": "^4.5.8",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -796,16 +1592,15 @@
}
},
"node_modules/@smithy/credential-provider-imds": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.6.tgz",
- "integrity": "sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.7.tgz",
+ "integrity": "sha512-CmduWdCiILCRNbQWFR0OcZlUPVtyE49Sr8yYL0rZQ4D/wKxiNzBNS/YHemvnbkIWj623fplgkexUd/c9CAKdoA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/node-config-provider": "^4.1.3",
- "@smithy/property-provider": "^4.0.4",
- "@smithy/types": "^4.3.1",
- "@smithy/url-parser": "^4.0.4",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/types": "^4.11.0",
+ "@smithy/url-parser": "^4.2.7",
"tslib": "^2.6.2"
},
"engines": {
@@ -813,16 +1608,15 @@
}
},
"node_modules/@smithy/fetch-http-handler": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.0.4.tgz",
- "integrity": "sha512-AMtBR5pHppYMVD7z7G+OlHHAcgAN7v0kVKEpHuTO4Gb199Gowh0taYi9oDStFeUhetkeP55JLSVlTW1n9rFtUw==",
+ "version": "5.3.8",
+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.8.tgz",
+ "integrity": "sha512-h/Fi+o7mti4n8wx1SR6UHWLaakwHRx29sizvp8OOm7iqwKGFneT06GCSFhml6Bha5BT6ot5pj3CYZnCHhGC2Rg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/protocol-http": "^5.1.2",
- "@smithy/querystring-builder": "^4.0.4",
- "@smithy/types": "^4.3.1",
- "@smithy/util-base64": "^4.0.0",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/querystring-builder": "^4.2.7",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-base64": "^4.3.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -830,15 +1624,14 @@
}
},
"node_modules/@smithy/hash-node": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.4.tgz",
- "integrity": "sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.7.tgz",
+ "integrity": "sha512-PU/JWLTBCV1c8FtB8tEFnY4eV1tSfBc7bDBADHfn1K+uRbPgSJ9jnJp0hyjiFN2PMdPzxsf1Fdu0eo9fJ760Xw==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
- "@smithy/util-buffer-from": "^4.0.0",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -846,13 +1639,12 @@
}
},
"node_modules/@smithy/invalid-dependency": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.4.tgz",
- "integrity": "sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.7.tgz",
+ "integrity": "sha512-ncvgCr9a15nPlkhIUx3CU4d7E7WEuVJOV7fS7nnK2hLtPK9tYRBkMHQbhXU1VvvKeBm/O0x26OEoBq+ngFpOEQ==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -860,11 +1652,10 @@
}
},
"node_modules/@smithy/is-array-buffer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.0.0.tgz",
- "integrity": "sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz",
+ "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -873,14 +1664,13 @@
}
},
"node_modules/@smithy/middleware-content-length": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.4.tgz",
- "integrity": "sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.7.tgz",
+ "integrity": "sha512-GszfBfCcvt7kIbJ41LuNa5f0wvQCHhnGx/aDaZJCCT05Ld6x6U2s0xsc/0mBFONBZjQJp2U/0uSJ178OXOwbhg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/protocol-http": "^5.1.2",
- "@smithy/types": "^4.3.1",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -888,19 +1678,18 @@
}
},
"node_modules/@smithy/middleware-endpoint": {
- "version": "4.1.13",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.13.tgz",
- "integrity": "sha512-xg3EHV/Q5ZdAO5b0UiIMj3RIOCobuS40pBBODguUDVdko6YK6QIzCVRrHTogVuEKglBWqWenRnZ71iZnLL3ZAQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.1.tgz",
+ "integrity": "sha512-gpLspUAoe6f1M6H0u4cVuFzxZBrsGZmjx2O9SigurTx4PbntYa4AJ+o0G0oGm1L2oSX6oBhcGHwrfJHup2JnJg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/core": "^3.6.0",
- "@smithy/middleware-serde": "^4.0.8",
- "@smithy/node-config-provider": "^4.1.3",
- "@smithy/shared-ini-file-loader": "^4.0.4",
- "@smithy/types": "^4.3.1",
- "@smithy/url-parser": "^4.0.4",
- "@smithy/util-middleware": "^4.0.4",
+ "@smithy/core": "^3.20.0",
+ "@smithy/middleware-serde": "^4.2.8",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/shared-ini-file-loader": "^4.4.2",
+ "@smithy/types": "^4.11.0",
+ "@smithy/url-parser": "^4.2.7",
+ "@smithy/util-middleware": "^4.2.7",
"tslib": "^2.6.2"
},
"engines": {
@@ -908,35 +1697,33 @@
}
},
"node_modules/@smithy/middleware-retry": {
- "version": "4.1.14",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.1.14.tgz",
- "integrity": "sha512-eoXaLlDGpKvdmvt+YBfRXE7HmIEtFF+DJCbTPwuLunP0YUnrydl+C4tS+vEM0+nyxXrX3PSUFqC+lP1+EHB1Tw==",
+ "version": "4.4.17",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.17.tgz",
+ "integrity": "sha512-MqbXK6Y9uq17h+4r0ogu/sBT6V/rdV+5NvYL7ZV444BKfQygYe8wAhDrVXagVebN6w2RE0Fm245l69mOsPGZzg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/node-config-provider": "^4.1.3",
- "@smithy/protocol-http": "^5.1.2",
- "@smithy/service-error-classification": "^4.0.6",
- "@smithy/smithy-client": "^4.4.5",
- "@smithy/types": "^4.3.1",
- "@smithy/util-middleware": "^4.0.4",
- "@smithy/util-retry": "^4.0.6",
- "tslib": "^2.6.2",
- "uuid": "^9.0.1"
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/service-error-classification": "^4.2.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-middleware": "^4.2.7",
+ "@smithy/util-retry": "^4.2.7",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@smithy/middleware-serde": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.0.8.tgz",
- "integrity": "sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==",
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.8.tgz",
+ "integrity": "sha512-8rDGYen5m5+NV9eHv9ry0sqm2gI6W7mc1VSFMtn6Igo25S507/HaOX9LTHAS2/J32VXD0xSzrY0H5FJtOMS4/w==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/protocol-http": "^5.1.2",
- "@smithy/types": "^4.3.1",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -944,13 +1731,12 @@
}
},
"node_modules/@smithy/middleware-stack": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.0.4.tgz",
- "integrity": "sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.7.tgz",
+ "integrity": "sha512-bsOT0rJ+HHlZd9crHoS37mt8qRRN/h9jRve1SXUhVbkRzu0QaNYZp1i1jha4n098tsvROjcwfLlfvcFuJSXEsw==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -958,15 +1744,14 @@
}
},
"node_modules/@smithy/node-config-provider": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.1.3.tgz",
- "integrity": "sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.7.tgz",
+ "integrity": "sha512-7r58wq8sdOcrwWe+klL9y3bc4GW1gnlfnFOuL7CXa7UzfhzhxKuzNdtqgzmTV+53lEp9NXh5hY/S4UgjLOzPfw==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/property-provider": "^4.0.4",
- "@smithy/shared-ini-file-loader": "^4.0.4",
- "@smithy/types": "^4.3.1",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/shared-ini-file-loader": "^4.4.2",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -974,16 +1759,15 @@
}
},
"node_modules/@smithy/node-http-handler": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.0.6.tgz",
- "integrity": "sha512-NqbmSz7AW2rvw4kXhKGrYTiJVDHnMsFnX4i+/FzcZAfbOBauPYs2ekuECkSbtqaxETLLTu9Rl/ex6+I2BKErPA==",
+ "version": "4.4.7",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.7.tgz",
+ "integrity": "sha512-NELpdmBOO6EpZtWgQiHjoShs1kmweaiNuETUpuup+cmm/xJYjT4eUjfhrXRP4jCOaAsS3c3yPsP3B+K+/fyPCQ==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/abort-controller": "^4.0.4",
- "@smithy/protocol-http": "^5.1.2",
- "@smithy/querystring-builder": "^4.0.4",
- "@smithy/types": "^4.3.1",
+ "@smithy/abort-controller": "^4.2.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/querystring-builder": "^4.2.7",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -991,13 +1775,12 @@
}
},
"node_modules/@smithy/property-provider": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.0.4.tgz",
- "integrity": "sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.7.tgz",
+ "integrity": "sha512-jmNYKe9MGGPoSl/D7JDDs1C8b3dC8f/w78LbaVfoTtWy4xAd5dfjaFG9c9PWPihY4ggMQNQSMtzU77CNgAJwmA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1005,13 +1788,12 @@
}
},
"node_modules/@smithy/protocol-http": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.1.2.tgz",
- "integrity": "sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==",
+ "version": "5.3.7",
+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.7.tgz",
+ "integrity": "sha512-1r07pb994I20dD/c2seaZhoCuNYm0rWrvBxhCQ70brNh11M5Ml2ew6qJVo0lclB3jMIXirD4s2XRXRe7QEi0xA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1019,14 +1801,13 @@
}
},
"node_modules/@smithy/querystring-builder": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.0.4.tgz",
- "integrity": "sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.7.tgz",
+ "integrity": "sha512-eKONSywHZxK4tBxe2lXEysh8wbBdvDWiA+RIuaxZSgCMmA0zMgoDpGLJhnyj+c0leOQprVnXOmcB4m+W9Rw7sg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
- "@smithy/util-uri-escape": "^4.0.0",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-uri-escape": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1034,13 +1815,12 @@
}
},
"node_modules/@smithy/querystring-parser": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.0.4.tgz",
- "integrity": "sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.7.tgz",
+ "integrity": "sha512-3X5ZvzUHmlSTHAXFlswrS6EGt8fMSIxX/c3Rm1Pni3+wYWB6cjGocmRIoqcQF9nU5OgGmL0u7l9m44tSUpfj9w==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1048,26 +1828,24 @@
}
},
"node_modules/@smithy/service-error-classification": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.0.6.tgz",
- "integrity": "sha512-RRoTDL//7xi4tn5FrN2NzH17jbgmnKidUqd4KvquT0954/i6CXXkh1884jBiunq24g9cGtPBEXlU40W6EpNOOg==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.7.tgz",
+ "integrity": "sha512-YB7oCbukqEb2Dlh3340/8g8vNGbs/QsNNRms+gv3N2AtZz9/1vSBx6/6tpwQpZMEJFs7Uq8h4mmOn48ZZ72MkA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1"
+ "@smithy/types": "^4.11.0"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@smithy/shared-ini-file-loader": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.4.tgz",
- "integrity": "sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.2.tgz",
+ "integrity": "sha512-M7iUUff/KwfNunmrgtqBfvZSzh3bmFgv/j/t1Y1dQ+8dNo34br1cqVEqy6v0mYEgi0DkGO7Xig0AnuOaEGVlcg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1075,19 +1853,18 @@
}
},
"node_modules/@smithy/signature-v4": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.1.2.tgz",
- "integrity": "sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==",
+ "version": "5.3.7",
+ "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.7.tgz",
+ "integrity": "sha512-9oNUlqBlFZFOSdxgImA6X5GFuzE7V2H7VG/7E70cdLhidFbdtvxxt81EHgykGK5vq5D3FafH//X+Oy31j3CKOg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/is-array-buffer": "^4.0.0",
- "@smithy/protocol-http": "^5.1.2",
- "@smithy/types": "^4.3.1",
- "@smithy/util-hex-encoding": "^4.0.0",
- "@smithy/util-middleware": "^4.0.4",
- "@smithy/util-uri-escape": "^4.0.0",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/is-array-buffer": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.7",
+ "@smithy/util-uri-escape": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1095,18 +1872,17 @@
}
},
"node_modules/@smithy/smithy-client": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.4.5.tgz",
- "integrity": "sha512-+lynZjGuUFJaMdDYSTMnP/uPBBXXukVfrJlP+1U/Dp5SFTEI++w6NMga8DjOENxecOF71V9Z2DllaVDYRnGlkg==",
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.10.2.tgz",
+ "integrity": "sha512-D5z79xQWpgrGpAHb054Fn2CCTQZpog7JELbVQ6XAvXs5MNKWf28U9gzSBlJkOyMl9LA1TZEjRtwvGXfP0Sl90g==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/core": "^3.6.0",
- "@smithy/middleware-endpoint": "^4.1.13",
- "@smithy/middleware-stack": "^4.0.4",
- "@smithy/protocol-http": "^5.1.2",
- "@smithy/types": "^4.3.1",
- "@smithy/util-stream": "^4.2.2",
+ "@smithy/core": "^3.20.0",
+ "@smithy/middleware-endpoint": "^4.4.1",
+ "@smithy/middleware-stack": "^4.2.7",
+ "@smithy/protocol-http": "^5.3.7",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-stream": "^4.5.8",
"tslib": "^2.6.2"
},
"engines": {
@@ -1114,11 +1890,10 @@
}
},
"node_modules/@smithy/types": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.3.1.tgz",
- "integrity": "sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==",
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.11.0.tgz",
+ "integrity": "sha512-mlrmL0DRDVe3mNrjTcVcZEgkFmufITfUAPBEA+AHYiIeYyJebso/He1qLbP3PssRe22KUzLRpQSdBPbXdgZ2VA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1127,14 +1902,13 @@
}
},
"node_modules/@smithy/url-parser": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.0.4.tgz",
- "integrity": "sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.7.tgz",
+ "integrity": "sha512-/RLtVsRV4uY3qPWhBDsjwahAtt3x2IsMGnP5W1b2VZIe+qgCqkLxI1UOHDZp1Q1QSOrdOR32MF3Ph2JfWT1VHg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/querystring-parser": "^4.0.4",
- "@smithy/types": "^4.3.1",
+ "@smithy/querystring-parser": "^4.2.7",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1142,14 +1916,13 @@
}
},
"node_modules/@smithy/util-base64": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.0.0.tgz",
- "integrity": "sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.0.tgz",
+ "integrity": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/util-buffer-from": "^4.0.0",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1157,11 +1930,10 @@
}
},
"node_modules/@smithy/util-body-length-browser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.0.0.tgz",
- "integrity": "sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz",
+ "integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1170,11 +1942,10 @@
}
},
"node_modules/@smithy/util-body-length-node": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz",
- "integrity": "sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz",
+ "integrity": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1183,13 +1954,12 @@
}
},
"node_modules/@smithy/util-buffer-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.0.0.tgz",
- "integrity": "sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz",
+ "integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/is-array-buffer": "^4.0.0",
+ "@smithy/is-array-buffer": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1197,11 +1967,10 @@
}
},
"node_modules/@smithy/util-config-provider": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.0.0.tgz",
- "integrity": "sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz",
+ "integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1210,16 +1979,14 @@
}
},
"node_modules/@smithy/util-defaults-mode-browser": {
- "version": "4.0.21",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.21.tgz",
- "integrity": "sha512-wM0jhTytgXu3wzJoIqpbBAG5U6BwiubZ6QKzSbP7/VbmF1v96xlAbX2Am/mz0Zep0NLvLh84JT0tuZnk3wmYQA==",
+ "version": "4.3.16",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.16.tgz",
+ "integrity": "sha512-/eiSP3mzY3TsvUOYMeL4EqUX6fgUOj2eUOU4rMMgVbq67TiRLyxT7Xsjxq0bW3OwuzK009qOwF0L2OgJqperAQ==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/property-provider": "^4.0.4",
- "@smithy/smithy-client": "^4.4.5",
- "@smithy/types": "^4.3.1",
- "bowser": "^2.11.0",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1227,18 +1994,17 @@
}
},
"node_modules/@smithy/util-defaults-mode-node": {
- "version": "4.0.21",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.21.tgz",
- "integrity": "sha512-/F34zkoU0GzpUgLJydHY8Rxu9lBn8xQC/s/0M0U9lLBkYbA1htaAFjWYJzpzsbXPuri5D1H8gjp2jBum05qBrA==",
+ "version": "4.2.19",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.19.tgz",
+ "integrity": "sha512-3a4+4mhf6VycEJyHIQLypRbiwG6aJvbQAeRAVXydMmfweEPnLLabRbdyo/Pjw8Rew9vjsh5WCdhmDaHkQnhhhA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/config-resolver": "^4.1.4",
- "@smithy/credential-provider-imds": "^4.0.6",
- "@smithy/node-config-provider": "^4.1.3",
- "@smithy/property-provider": "^4.0.4",
- "@smithy/smithy-client": "^4.4.5",
- "@smithy/types": "^4.3.1",
+ "@smithy/config-resolver": "^4.4.5",
+ "@smithy/credential-provider-imds": "^4.2.7",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/property-provider": "^4.2.7",
+ "@smithy/smithy-client": "^4.10.2",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1246,14 +2012,13 @@
}
},
"node_modules/@smithy/util-endpoints": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.6.tgz",
- "integrity": "sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.7.tgz",
+ "integrity": "sha512-s4ILhyAvVqhMDYREeTS68R43B1V5aenV5q/V1QpRQJkCXib5BPRo4s7uNdzGtIKxaPHCfU/8YkvPAEvTpxgspg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/node-config-provider": "^4.1.3",
- "@smithy/types": "^4.3.1",
+ "@smithy/node-config-provider": "^4.3.7",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1261,11 +2026,10 @@
}
},
"node_modules/@smithy/util-hex-encoding": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.0.0.tgz",
- "integrity": "sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz",
+ "integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1274,13 +2038,12 @@
}
},
"node_modules/@smithy/util-middleware": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.0.4.tgz",
- "integrity": "sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.7.tgz",
+ "integrity": "sha512-i1IkpbOae6NvIKsEeLLM9/2q4X+M90KV3oCFgWQI4q0Qz+yUZvsr+gZPdAEAtFhWQhAHpTsJO8DRJPuwVyln+w==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/types": "^4.3.1",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1288,14 +2051,13 @@
}
},
"node_modules/@smithy/util-retry": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.0.6.tgz",
- "integrity": "sha512-+YekoF2CaSMv6zKrA6iI/N9yva3Gzn4L6n35Luydweu5MMPYpiGZlWqehPHDHyNbnyaYlz/WJyYAZnC+loBDZg==",
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.7.tgz",
+ "integrity": "sha512-SvDdsQyF5CIASa4EYVT02LukPHVzAgUA4kMAuZ97QJc2BpAqZfA4PINB8/KOoCXEw9tsuv/jQjMeaHFvxdLNGg==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/service-error-classification": "^4.0.6",
- "@smithy/types": "^4.3.1",
+ "@smithy/service-error-classification": "^4.2.7",
+ "@smithy/types": "^4.11.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1303,19 +2065,18 @@
}
},
"node_modules/@smithy/util-stream": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.2.2.tgz",
- "integrity": "sha512-aI+GLi7MJoVxg24/3J1ipwLoYzgkB4kUfogZfnslcYlynj3xsQ0e7vk4TnTro9hhsS5PvX1mwmkRqqHQjwcU7w==",
+ "version": "4.5.8",
+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.8.tgz",
+ "integrity": "sha512-ZnnBhTapjM0YPGUSmOs0Mcg/Gg87k503qG4zU2v/+Js2Gu+daKOJMeqcQns8ajepY8tgzzfYxl6kQyZKml6O2w==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/fetch-http-handler": "^5.0.4",
- "@smithy/node-http-handler": "^4.0.6",
- "@smithy/types": "^4.3.1",
- "@smithy/util-base64": "^4.0.0",
- "@smithy/util-buffer-from": "^4.0.0",
- "@smithy/util-hex-encoding": "^4.0.0",
- "@smithy/util-utf8": "^4.0.0",
+ "@smithy/fetch-http-handler": "^5.3.8",
+ "@smithy/node-http-handler": "^4.4.7",
+ "@smithy/types": "^4.11.0",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1323,11 +2084,10 @@
}
},
"node_modules/@smithy/util-uri-escape": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.0.0.tgz",
- "integrity": "sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz",
+ "integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
"tslib": "^2.6.2"
},
@@ -1336,13 +2096,38 @@
}
},
"node_modules/@smithy/util-utf8": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.0.0.tgz",
- "integrity": "sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-waiter": {
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.7.tgz",
+ "integrity": "sha512-vHJFXi9b7kUEpHWUCY3Twl+9NPOZvQ0SAi+Ewtn48mbiJk4JY9MZmKQjGB4SCvVb9WPiSphZJYY6RIbs+grrzw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/abort-controller": "^4.2.7",
+ "@smithy/types": "^4.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/uuid": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.0.tgz",
+ "integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==",
"license": "Apache-2.0",
- "optional": true,
"dependencies": {
- "@smithy/util-buffer-from": "^4.0.0",
"tslib": "^2.6.2"
},
"engines": {
@@ -1508,8 +2293,7 @@
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
"integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==",
- "license": "MIT",
- "optional": true
+ "license": "MIT"
},
"node_modules/bson": {
"version": "4.7.2",
@@ -2701,6 +3485,15 @@
"node": ">=12"
}
},
+ "node_modules/nodemailer": {
+ "version": "7.0.12",
+ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.12.tgz",
+ "integrity": "sha512-H+rnK5bX2Pi/6ms3sN4/jRQvYSMltV6vqup/0SFOrxYYY/qoNvhXPlYq3e+Pm9RFJRwrMGbMIwi81M4dxpomhA==",
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/numbered": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/numbered/-/numbered-1.1.0.tgz",
@@ -3375,8 +4168,7 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD",
- "optional": true
+ "license": "0BSD"
},
"node_modules/type-is": {
"version": "2.0.1",
@@ -3407,20 +4199,6 @@
"node": ">= 0.8"
}
},
- "node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "optional": true,
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
diff --git a/package.json b/package.json
index efae027..deac970 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"license": "ISC",
"description": "",
"dependencies": {
+ "@aws-sdk/client-ses": "^3.962.0",
"agenda": "^5.0.0",
"argon2": "^0.43.0",
"dotenv": "^16.5.0",
@@ -17,6 +18,7 @@
"jsonwebtoken": "^9.0.2",
"mongoose": "^8.16.1",
"node-schedule": "^2.1.1",
+ "nodemailer": "^7.0.12",
"pg": "^8.16.0",
"pg-format": "^1.0.4",
"rate-limiter-flexible": "^9.0.1",