Merge branch '380-sentry' into 'main'

Sentry

Closes #380

See merge request PronounsPage/PronounsPage!424
This commit is contained in:
Valentyne Stigloher 2024-03-07 09:45:44 +00:00
commit 551f5f12c1
35 changed files with 634 additions and 89 deletions

View File

@ -29,6 +29,12 @@ AWS_CLOUDFRONT_ID=
TURNSTILE_SITEKEY=1x00000000000000000000AA TURNSTILE_SITEKEY=1x00000000000000000000AA
TURNSTILE_SECRET=1x0000000000000000000000000000000AA TURNSTILE_SECRET=1x0000000000000000000000000000000AA
SENTRY_DSN=
SENTRY_PUBLISH_RELEASE=false
SENTRY_AUTH_TOKEN=
SENTRY_ORG=pronouns-page
SENTRY_PROJECT=pronouns-page
TWITTER_CALENDAR_CONSUMER_KEY= TWITTER_CALENDAR_CONSUMER_KEY=
TWITTER_CALENDAR_CONSUMER_SECRET= TWITTER_CALENDAR_CONSUMER_SECRET=
TWITTER_CALENDAR_ACCESS_TOKEN_KEY= TWITTER_CALENDAR_ACCESS_TOKEN_KEY=

View File

@ -167,13 +167,19 @@ For small changes, you can ask to have your branch deployed on a test server.
#### Emails #### Emails
By default, emails will be displayed in stdout without being sent. When using `NODE_ENV=development`, emails will be displayed in stdout without being sent.
It's not in an easily readable format, but for many cases good enough. It's not in an easily readable format, but for many cases good enough.
If you want to actually see the message in a mail client, If you want to actually see the message in a mail client,
you need to specify `MAILER_TRANSPORT` to use any provider you want (on production SMTP via AWS is used). you need to specify `MAILER_TRANSPORT` to use any provider you want (on production SMTP via AWS is used).
Remember to also set `MAILER_OVERWRITE` to your own address Remember to also set `MAILER_OVERWRITE` to your own address
 this way you won't accidentally send anything out to random addresses.  this way you won't accidentally send anything out to random addresses.
### Sentry
To enable sentry, you have to set the corresponding environment variables.
Remember that releases will not be published for development builds,
so to test them, you have to build a production build (`make deploy` and `nuxt start`, both with `NODE_ENV=development`).
### Troubleshooting ### Troubleshooting
#### Hot Module Replacement in Nuxt development mode #### Hot Module Replacement in Nuxt development mode

View File

@ -33,6 +33,7 @@
<script> <script>
import { mapState } from 'vuex'; import { mapState } from 'vuex';
import * as Sentry from '@sentry/vue';
export default { export default {
props: { props: {
@ -76,8 +77,8 @@ export default {
if (!user || user.username !== username) { if (!user || user.username !== username) {
this.$removeToken(username); this.$removeToken(username);
} }
} catch (e) { } catch (error) {
console.error(e); Sentry.captureException(error);
this.$removeToken(username); this.$removeToken(username);
} }
} }

View File

@ -5,6 +5,8 @@
</template> </template>
<script> <script>
import * as Sentry from '@sentry/vue';
export default { export default {
props: { props: {
pronoun: { required: true }, pronoun: { required: true },
@ -34,8 +36,8 @@ export default {
if (!pronounName.startsWith('<!doctype') && pronounName.length < 36) { if (!pronounName.startsWith('<!doctype') && pronounName.length < 36) {
this.pronounName = pronounName.toLowerCase(); this.pronounName = pronounName.toLowerCase();
} }
} catch (e) { } catch (error) {
console.error(e); Sentry.captureException(error);
} }
}, },
}; };

View File

@ -35,6 +35,7 @@
<script> <script>
import Vue from 'vue'; import Vue from 'vue';
import * as Sentry from '@sentry/vue';
import dark from '../plugins/dark.js'; import dark from '../plugins/dark.js';
import sorter from 'avris-sorter'; import sorter from 'avris-sorter';
import { sleep } from '../src/helpers.ts'; import { sleep } from '../src/helpers.ts';
@ -98,9 +99,9 @@ export default {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.$axios.$post(url, data, { ...options, timeout }) this.$axios.$post(url, data, { ...options, timeout })
.then((data) => resolve(data)) .then((data) => resolve(data))
.catch(async (e) => { .catch(async (error) => {
console.error(e); Sentry.captureException(error);
await this.$alert(this.$t(e.response?.data?.error || 'error.generic'), 'danger'); await this.$alert(this.$t(error.response?.data?.error || 'error.generic'), 'danger');
reject(); reject();
}); });
}); });

View File

@ -1062,6 +1062,10 @@ privacy:
We use <strong>Cloudflare Turnstile</strong> to filter out bots and prevent attacks. We use <strong>Cloudflare Turnstile</strong> to filter out bots and prevent attacks.
You can read their privacy policy You can read their privacy policy
{https://www.cloudflare.com/privacypolicy=<strong>here</strong>}. {https://www.cloudflare.com/privacypolicy=<strong>here</strong>}.
sentry: >
We use Sentry to monitor for errors and performance issues.
The transmitted data has no relation to your username, unless it is contained inside the visited URL,
and your IP is not stored.
logsBackups: > logsBackups: >
Logs and backups are stored for no longer than 18 months. Logs and backups are stored for no longer than 18 months.
gdpr: > gdpr: >

View File

@ -1232,6 +1232,10 @@ privacy:
We use <strong>Cloudflare Turnstile</strong> to filter out bots and prevent attacks. We use <strong>Cloudflare Turnstile</strong> to filter out bots and prevent attacks.
You can read their privacy policy You can read their privacy policy
{https://www.cloudflare.com/privacypolicy=<strong>here</strong>}. {https://www.cloudflare.com/privacypolicy=<strong>here</strong>}.
sentry: >
We use Sentry to monitor for errors and performance issues.
The transmitted data has no relation to your username, unless it is contained inside the visited URL,
and your IP is not stored.
ezoic: > ezoic: >
In order to fund the project we show ads using a third party technology called <strong>Ezoic</strong>. In order to fund the project we show ads using a third party technology called <strong>Ezoic</strong>.
You can opt-in to allow them to personalise your experience. You can opt-in to allow them to personalise your experience.

View File

@ -1,4 +1,4 @@
import './src/dotenv.js'; import './src/dotenv.ts';
import { loadSuml } from './server/loader.ts'; import { loadSuml } from './server/loader.ts';
import autoprefixer from 'autoprefixer'; import autoprefixer from 'autoprefixer';
@ -169,8 +169,8 @@ const nuxtConfig: NuxtConfig = {
{ src: '~/plugins/axios.js' }, { src: '~/plugins/axios.js' },
{ src: '~/plugins/globals.ts' }, { src: '~/plugins/globals.ts' },
{ src: '~/plugins/auth.ts' }, { src: '~/plugins/auth.ts' },
{ src: '~/plugins/datepicker.js', ssr: false }, { src: '~/plugins/datepicker.js', mode: 'client' },
{ src: '~/plugins/track.js', ssr: false }, { src: '~/plugins/track.js', mode: 'client' },
{ src: '~/plugins/browserDetect.js' }, { src: '~/plugins/browserDetect.js' },
], ],
components: true, components: true,
@ -189,6 +189,7 @@ const nuxtConfig: NuxtConfig = {
['@nuxtjs/redirect-module', { ['@nuxtjs/redirect-module', {
rules: config.redirects, rules: config.redirects,
}], }],
'@nuxtjs/sentry',
'cookie-universal-nuxt', 'cookie-universal-nuxt',
'vue-plausible', 'vue-plausible',
], ],
@ -217,12 +218,36 @@ const nuxtConfig: NuxtConfig = {
// - tecc // - tecc
enableAutoPageviews: false, enableAutoPageviews: false,
}, },
sentry: {
tracing: {
tracesSampleRate: 0.1,
},
publishRelease: {
telemetry: false,
},
config: {
beforeSend(event, hint) {
if (process.env.NODE_ENV === 'development') {
console.error(hint.originalException || hint.syntheticException);
}
// do not send user information as Sentry somehow automatically detects username, email and user id
// https://docs.sentry.io/platforms/javascript/data-management/sensitive-data/
delete event.user;
return event;
},
beforeSendTransaction(event) {
// see comment on nuxtConfig.sentry.config.beforeSend
delete event.user;
return event;
},
},
},
publicRuntimeConfig: { publicRuntimeConfig: {
...config, ...config,
plausible: { plausible: {
domain: process.env.PLAUSIBLE_DOMAIN || translations.domain, domain: process.env.PLAUSIBLE_DOMAIN || translations.domain,
apiHost: process.env.PLAUSIBLE_API_HOST, apiHost: process.env.PLAUSIBLE_API_HOST,
enableAutoPageviews: false, // see previous comment enableAutoPageviews: false, // see comment on nuxtConfig.plausible.enableAutoPageviews
}, },
}, },
watchers: { watchers: {
@ -485,6 +510,12 @@ const nuxtConfig: NuxtConfig = {
}); });
}, },
}, },
listen(_server, { port }) {
if (version) {
process.stderr.write(`[${new Date().toISOString()}] ` +
`Listening on port ${port} with version ${version}`);
}
},
}, },
}; };

View File

@ -83,6 +83,8 @@
"@fortawesome/fontawesome-pro": "git+ssh://git@gitlab.com:Avris/FontAwesomePro.git", "@fortawesome/fontawesome-pro": "git+ssh://git@gitlab.com:Avris/FontAwesomePro.git",
"@nuxt/types": "2.17.2", "@nuxt/types": "2.17.2",
"@nuxt/typescript-build": "^3.0.2", "@nuxt/typescript-build": "^3.0.2",
"@nuxtjs/sentry": "^8.0.7",
"@sentry/webpack-plugin": "^2.14.2",
"@stylistic/eslint-plugin": "^1.5.4", "@stylistic/eslint-plugin": "^1.5.4",
"@types/autoprefixer": "^10.2.0", "@types/autoprefixer": "^10.2.0",
"@types/cookie-parser": "^1.4.6", "@types/cookie-parser": "^1.4.6",

View File

@ -1,3 +1,5 @@
import * as Sentry from '@sentry/vue';
function defaultHandler({ plausible, to }) { function defaultHandler({ plausible, to }) {
console.debug('[analytics] Tracking default handler: %O', to); console.debug('[analytics] Tracking default handler: %O', to);
plausible.trackPageview({ plausible.trackPageview({
@ -66,8 +68,8 @@ export const plugin = function ({ app }) {
to: new URL(to.fullPath, window.location.href), to: new URL(to.fullPath, window.location.href),
from: new URL(from.fullPath, window.location.href), from: new URL(from.fullPath, window.location.href),
}); });
} catch (e) { } catch (error) {
console.error('Error whilst trying to handle navigation: %O', e); Sentry.captureException(error);
} }
}); });
}; };

View File

@ -8,8 +8,8 @@
<p class="small"> <p class="small">
<em> <em>
<T>terms.lastUpdate</T><T>quotation.colon</T> <T>terms.lastUpdate</T><T>quotation.colon</T>
2023-09-19 2024-03-03
(Publift) (Sentry)
</em> </em>
</p> </p>
@ -29,6 +29,7 @@
<p><T>privacy.content.cookies</T></p> <p><T>privacy.content.cookies</T></p>
<p><T>privacy.content.plausible</T></p> <p><T>privacy.content.plausible</T></p>
<p><T>privacy.content.turnstile</T></p> <p><T>privacy.content.turnstile</T></p>
<p><T>privacy.content.sentry</T></p>
<p v-if="$config.ads && $config.ads.enabled"> <p v-if="$config.ads && $config.ads.enabled">
<T>privacy.content.publift</T> <T>privacy.content.publift</T>
<span data-fuse-privacy-tool></span> <span data-fuse-privacy-tool></span>

View File

@ -1,4 +1,4 @@
import '../src/dotenv.js'; import './setup.ts';
import dbConnection from './db.ts'; import dbConnection from './db.ts';
import SQL from 'sql-template-strings'; import SQL from 'sql-template-strings';

View File

@ -1,6 +1,7 @@
import SQL from 'sql-template-strings'; import SQL from 'sql-template-strings';
import { ulid } from 'ulid'; import { ulid } from 'ulid';
import type { Request } from 'express'; import type { Request } from 'express';
import * as Sentry from '@sentry/node';
export default async ( export default async (
req: Pick<Request, 'db' | 'user' | 'rawUser'>, req: Pick<Request, 'db' | 'user' | 'rawUser'>,
@ -12,7 +13,7 @@ export default async (
await req.db.get(SQL`INSERT INTO audit_log (id, userId, username, event, payload) VALUES ( await req.db.get(SQL`INSERT INTO audit_log (id, userId, username, event, payload) VALUES (
${ulid()}, ${user.id}, ${user.username}, ${event}, ${payload ? JSON.stringify(payload) : null} ${ulid()}, ${user.id}, ${user.username}, ${event}, ${payload ? JSON.stringify(payload) : null}
)`); )`);
} catch (e) { } catch (error) {
console.error(e); Sentry.captureException(error);
} }
}; };

View File

@ -1,4 +1,4 @@
import '../src/dotenv.js'; import './setup.ts';
import Pageres from 'pageres'; import Pageres from 'pageres';
import fs from 'fs'; import fs from 'fs';

View File

@ -1,9 +1,10 @@
import '../src/dotenv.js'; import './setup.ts';
import Twitter from 'twitter'; import Twitter from 'twitter';
import Mastodon from 'mastodon'; import Mastodon from 'mastodon';
import fetch from 'node-fetch'; import fetch from 'node-fetch';
import fs from 'fs'; import fs from 'fs';
import * as Sentry from '@sentry/node';
import buildLocaleList from '../src/buildLocaleList.ts'; import buildLocaleList from '../src/buildLocaleList.ts';
const __dirname = new URL('.', import.meta.url).pathname; const __dirname = new URL('.', import.meta.url).pathname;
@ -28,7 +29,7 @@ const publishers = {
return tweetResponse.id_str; return tweetResponse.id_str;
} catch (error) { } catch (error) {
console.error(error); Sentry.captureException(error);
} }
}, },
async mastodon(tweet, image, previousId, locale) { async mastodon(tweet, image, previousId, locale) {
@ -47,7 +48,7 @@ const publishers = {
console.log(mediaResponse); console.log(mediaResponse);
mediaIds.push(mediaResponse.data.id); mediaIds.push(mediaResponse.data.id);
} catch (error) { } catch (error) {
console.error(error); Sentry.captureException(error);
} }
} }
@ -62,7 +63,7 @@ const publishers = {
console.log(tweetResponse.data); console.log(tweetResponse.data);
return tweetResponse.data.id; return tweetResponse.data.id;
} catch (error) { } catch (error) {
console.error(error); Sentry.captureException(error);
} }
}, },
}; };
@ -106,8 +107,8 @@ const lastPostId = {};
console.log(postId); console.log(postId);
lastPostId[publisher] = postId; lastPostId[publisher] = postId;
} }
} catch (e) { } catch (error) {
console.error(e); Sentry.captureException(error);
} }
} }
})(); })();

View File

@ -1,6 +1,7 @@
import '../src/dotenv.js'; import './setup.ts';
import Pageres from 'pageres'; import Pageres from 'pageres';
import * as Sentry from '@sentry/node';
import isHighLoadTime from './overload.js'; import isHighLoadTime from './overload.js';
import dbConnection from './db.ts'; import dbConnection from './db.ts';
import allLocales from '../locale/locales.ts'; import allLocales from '../locale/locales.ts';
@ -58,8 +59,8 @@ const shoot = async (db, mode) => {
const locale = domainLocaleMap[domain]; const locale = domainLocaleMap[domain];
results[`${locale}/${username.replace(/[^A-Za-z0-9.-]/g, '_')}`] = buffer; results[`${locale}/${username.replace(/[^A-Za-z0-9.-]/g, '_')}`] = buffer;
} }
} catch (e) { } catch (error) {
console.error(e); Sentry.captureException(error);
return; return;
} }

View File

@ -1,4 +1,6 @@
import '../src/dotenv.js'; import './setup.ts';
import * as Sentry from '@sentry/node';
import dbConnection from './db.ts'; import dbConnection from './db.ts';
import mailer from '../src/mailer.ts'; import mailer from '../src/mailer.ts';
@ -52,8 +54,8 @@ async function warnInactive(db) {
continue; continue;
} }
mailer(userRefreshed.email, 'inactivityWarning', { username: userRefreshed.username }); mailer(userRefreshed.email, 'inactivityWarning', { username: userRefreshed.username });
} catch (e) { } catch (error) {
console.error(e); Sentry.captureException(error);
} }
await sleep(3000); await sleep(3000);
} }

View File

@ -1,4 +1,4 @@
import '../src/dotenv.js'; import './setup.ts';
import dbConnection from './db.ts'; import dbConnection from './db.ts';
import awsConfig from './aws.js'; import awsConfig from './aws.js';

View File

@ -1,7 +1,9 @@
import '../src/dotenv.js'; import './setup.ts';
import express from 'express'; import express from 'express';
import type { Request, Response, NextFunction } from 'express'; import type { Request, Response, NextFunction } from 'express';
import * as Sentry from '@sentry/node';
import type { StartSpanOptions } from '@sentry/types';
import authenticate from '../src/authenticate.ts'; import authenticate from '../src/authenticate.ts';
import dbConnection from './db.ts'; import dbConnection from './db.ts';
import type { Database, SQLQuery } from './db.ts'; import type { Database, SQLQuery } from './db.ts';
@ -45,6 +47,9 @@ const MemoryStore = memorystore(session);
const app = express(); const app = express();
app.enable('trust proxy'); app.enable('trust proxy');
app.use(Sentry.Handlers.requestHandler());
app.use(Sentry.Handlers.tracingHandler());
app.use(express.json({ app.use(express.json({
verify: (req, res, buf) => { verify: (req, res, buf) => {
if (buf.includes(Buffer.from('narodowcy.net', 'utf-8'))) { if (buf.includes(Buffer.from('narodowcy.net', 'utf-8'))) {
@ -83,21 +88,33 @@ export class LazyDatabase implements Database {
} }
} }
buildSpanOptions(sql: SQLQuery): StartSpanOptions {
return {
name: typeof sql === 'string' ? sql : sql.sql,
op: 'db',
attributes: {
'db.system': 'sqlite',
},
};
}
async get<T = unknown>(sql: SQLQuery, ...args: unknown[]): Promise<T | undefined> { async get<T = unknown>(sql: SQLQuery, ...args: unknown[]): Promise<T | undefined> {
await this.init(); await this.init();
return this.db!.get(sql, ...args); return Sentry.startSpan(this.buildSpanOptions(sql), () => this.db!.get(sql, ...args));
} }
async all<T = unknown>(sql: SQLQuery, ...args: unknown[]): Promise<T[]> { async all<T = unknown>(sql: SQLQuery, ...args: unknown[]): Promise<T[]> {
await this.init(); await this.init();
return this.db!.all(sql, ...args); return Sentry.startSpan(this.buildSpanOptions(sql), () => this.db!.all(sql, ...args));
} }
async close(): Promise<void> { async close(): Promise<void> {
if (this.db !== null) { if (this.db !== null) {
try { try {
await this.db.close(); await this.db.close();
} catch {} } catch (error) {
Sentry.captureException(error);
}
} }
} }
} }
@ -152,6 +169,8 @@ app.use(calendarRoute);
app.use(translationsRoute); app.use(translationsRoute);
app.use(subscriptionRoute); app.use(subscriptionRoute);
app.use(Sentry.Handlers.errorHandler());
app.use((err: unknown, req: Request, res: Response, _next: NextFunction) => { app.use((err: unknown, req: Request, res: Response, _next: NextFunction) => {
console.error(formatError(err, req)); console.error(formatError(err, req));
res.status(500).send('Unexpected server error'); res.status(500).send('Unexpected server error');

View File

@ -1,7 +1,8 @@
import '../src/dotenv.js'; import './setup.ts';
import fetch from 'node-fetch'; import fetch from 'node-fetch';
import { JSDOM } from 'jsdom'; import { JSDOM } from 'jsdom';
import * as Sentry from '@sentry/node';
import { Day } from '../src/calendar/helpers.js'; import { Day } from '../src/calendar/helpers.js';
import fs from 'fs'; import fs from 'fs';
import mailer from '../src/mailer.ts'; import mailer from '../src/mailer.ts';
@ -81,7 +82,7 @@ const fetchEvents = async () => {
}), }),
(error, value) => { (error, value) => {
if (error) { if (error) {
console.error(error); Sentry.captureException(error);
return; return;
} }

View File

@ -1,4 +1,4 @@
import '../src/dotenv.js'; import './setup.ts';
import dbConnection from './db.ts'; import dbConnection from './db.ts';
import mailer from '../src/mailer.ts'; import mailer from '../src/mailer.ts';

View File

@ -1,4 +1,5 @@
import { Router } from 'express'; import { Router } from 'express';
import * as Sentry from '@sentry/node';
import { handleErrorAsync, clearLinkedText } from '../../src/helpers.ts'; import { handleErrorAsync, clearLinkedText } from '../../src/helpers.ts';
import { createEvents } from 'ics'; import { createEvents } from 'ics';
import { calendar } from '../../src/calendar/calendar.js'; import { calendar } from '../../src/calendar/calendar.js';
@ -39,7 +40,7 @@ const renderEvents = (yearEvents, res, onlyFirstDays = false, calNameExtra = '')
events, events,
(error, value) => { (error, value) => {
if (error) { if (error) {
console.error(error); Sentry.captureException(error);
return res.status(500).json({ error: 'Unexpected server error' }); return res.status(500).json({ error: 'Unexpected server error' });
} }

View File

@ -2,6 +2,7 @@ import { Router } from 'express';
import SQL from 'sql-template-strings'; import SQL from 'sql-template-strings';
import md5 from 'js-md5'; import md5 from 'js-md5';
import { ulid } from 'ulid'; import { ulid } from 'ulid';
import * as Sentry from '@sentry/node';
import avatar from '../avatar.ts'; import avatar from '../avatar.ts';
import { handleErrorAsync, now, isValidLink } from '../../src/helpers.ts'; import { handleErrorAsync, now, isValidLink } from '../../src/helpers.ts';
import { caches } from '../../src/cache.js'; import { caches } from '../../src/cache.js';
@ -985,7 +986,7 @@ router.get('/profile/export', handleErrorAsync(async (req, res) => {
flag: data.Body.toString('base64'), flag: data.Body.toString('base64'),
}; };
} catch (error) { } catch (error) {
console.error('Error fetching object from S3:', error); Sentry.captureException(error);
} }
} }

12
server/setup.ts Normal file
View File

@ -0,0 +1,12 @@
import * as Sentry from '@sentry/node';
import '../src/dotenv.ts';
Sentry.init({
dsn: process.env.SENTRY_DSN,
tracesSampleRate: 1.0,
beforeSend(event, hint) {
console.error(hint.originalException || hint.syntheticException);
return event;
},
});

View File

@ -1,4 +1,4 @@
import '../src/dotenv.js'; import './setup.ts';
import dbConnection from './db.ts'; import dbConnection from './db.ts';
import { calculateStats } from '../src/stats.ts'; import { calculateStats } from '../src/stats.ts';

View File

@ -1,4 +1,4 @@
import '../src/dotenv.js'; import './setup.ts';
import dbConnection from './db.ts'; import dbConnection from './db.ts';
import SQL from 'sql-template-strings'; import SQL from 'sql-template-strings';

View File

@ -1,4 +1,4 @@
import '../src/dotenv.js'; import './setup.ts';
import dbConnection from './db.ts'; import dbConnection from './db.ts';

View File

@ -1,4 +1,4 @@
import '../src/dotenv.js'; import './setup.ts';
import { decodeTime } from 'ulid'; import { decodeTime } from 'ulid';
import dbConnection from './db.ts'; import dbConnection from './db.ts';
import SQL from 'sql-template-strings'; import SQL from 'sql-template-strings';

View File

@ -2,6 +2,7 @@ import md5 from 'js-md5';
import { Base64 } from 'js-base64'; import { Base64 } from 'js-base64';
import _ from 'lodash'; import _ from 'lodash';
import jwt from 'jsonwebtoken'; import jwt from 'jsonwebtoken';
import * as Sentry from '@sentry/browser';
import type { Request, Response, NextFunction } from 'express'; import type { Request, Response, NextFunction } from 'express';
import type { JwtPayload } from 'jsonwebtoken'; import type { JwtPayload } from 'jsonwebtoken';
import type { User } from './user.ts'; import type { User } from './user.ts';
@ -475,8 +476,8 @@ export const parseUserJwt = (token: string): string | JwtPayload | null => {
audience: process.env.ALL_LOCALES_URLS!.split(','), audience: process.env.ALL_LOCALES_URLS!.split(','),
issuer: process.env.ALL_LOCALES_URLS!.split(','), issuer: process.env.ALL_LOCALES_URLS!.split(','),
}); });
} catch (e) { } catch (error) {
console.error(e); Sentry.captureException(error);
return null; return null;
} }
}; };

View File

@ -1,6 +1,7 @@
import jwt from 'jsonwebtoken'; import jwt from 'jsonwebtoken';
import fs from 'fs'; import fs from 'fs';
import type { JwtPayload } from 'jsonwebtoken'; import type { JwtPayload } from 'jsonwebtoken';
import * as Sentry from '@sentry/node';
const __dirname = new URL('.', import.meta.url).pathname; const __dirname = new URL('.', import.meta.url).pathname;
@ -29,8 +30,8 @@ class Jwt {
audience: process.env.ALL_LOCALES_URLS!.split(','), audience: process.env.ALL_LOCALES_URLS!.split(','),
issuer: process.env.ALL_LOCALES_URLS!.split(','), issuer: process.env.ALL_LOCALES_URLS!.split(','),
}); });
} catch (e) { } catch (error) {
console.error(e); Sentry.captureException(error);
} }
} }
} }

View File

@ -1,6 +1,7 @@
import nodemailer from 'nodemailer'; import nodemailer from 'nodemailer';
import fs from 'fs'; import fs from 'fs';
import Suml from 'suml'; import Suml from 'suml';
import * as Sentry from '@sentry/node';
import type StreamTransport from 'nodemailer/lib/stream-transport/index.d.ts'; import type StreamTransport from 'nodemailer/lib/stream-transport/index.d.ts';
import type { Readable } from 'stream'; import type { Readable } from 'stream';
@ -43,7 +44,7 @@ const sendEmail = (
} }
} }
if (err) { if (err) {
console.error(err); Sentry.captureException(err);
} }
}); });
}; };

View File

@ -1,3 +1,5 @@
import * as Sentry from '@sentry/browser';
import { deepGet } from './helpers.ts'; import { deepGet } from './helpers.ts';
import { listMissingTranslations } from './missingTranslations.ts'; import { listMissingTranslations } from './missingTranslations.ts';
@ -20,7 +22,7 @@ export class Translator {
const value = deepGet(translations, key); const value = deepGet(translations, key);
if (value === undefined) { if (value === undefined) {
if (warn) { if (warn) {
console.error(`Cannot find translation: ${key}`); Sentry.captureMessage(`Cannot find translation: ${key}`, 'warning');
} }
if (!base && useFallback) { if (!base && useFallback) {
return this.get(key, warn, true); return this.get(key, warn, true);

View File

@ -19,6 +19,7 @@
"types": [ "types": [
"@nuxt/types", "@nuxt/types",
"@nuxt/typescript-build", "@nuxt/typescript-build",
"@nuxtjs/sentry",
"@types/node" "@types/node"
] ]
}, },

514
yarn.lock
View File

@ -7,6 +7,14 @@
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
"@ampproject/remapping@^2.1.0":
version "2.3.0"
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
dependencies:
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.24"
"@ampproject/remapping@^2.2.0": "@ampproject/remapping@^2.2.0":
version "2.2.1" version "2.2.1"
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
@ -23,7 +31,7 @@
"@babel/highlight" "^7.22.10" "@babel/highlight" "^7.22.10"
chalk "^2.4.2" chalk "^2.4.2"
"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.8.3": "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.8.3":
version "7.23.5" version "7.23.5"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
@ -41,6 +49,27 @@
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
"@babel/core@7.18.5":
version "7.18.5"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.5.tgz#c597fa680e58d571c28dda9827669c78cdd7f000"
integrity sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==
dependencies:
"@ampproject/remapping" "^2.1.0"
"@babel/code-frame" "^7.16.7"
"@babel/generator" "^7.18.2"
"@babel/helper-compilation-targets" "^7.18.2"
"@babel/helper-module-transforms" "^7.18.0"
"@babel/helpers" "^7.18.2"
"@babel/parser" "^7.18.5"
"@babel/template" "^7.16.7"
"@babel/traverse" "^7.18.5"
"@babel/types" "^7.18.4"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
json5 "^2.2.1"
semver "^6.3.0"
"@babel/core@^7.11.6", "@babel/core@^7.12.3": "@babel/core@^7.11.6", "@babel/core@^7.12.3":
version "7.23.6" version "7.23.6"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4"
@ -83,6 +112,16 @@
json5 "^2.2.3" json5 "^2.2.3"
semver "^6.3.1" semver "^6.3.1"
"@babel/generator@^7.18.2", "@babel/generator@^7.23.6", "@babel/generator@^7.7.2":
version "7.23.6"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
dependencies:
"@babel/types" "^7.23.6"
"@jridgewell/gen-mapping" "^0.3.2"
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
"@babel/generator@^7.23.5": "@babel/generator@^7.23.5":
version "7.23.5" version "7.23.5"
resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755"
@ -93,16 +132,6 @@
"@jridgewell/trace-mapping" "^0.3.17" "@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1" jsesc "^2.5.1"
"@babel/generator@^7.23.6", "@babel/generator@^7.7.2":
version "7.23.6"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
dependencies:
"@babel/types" "^7.23.6"
"@jridgewell/gen-mapping" "^0.3.2"
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5":
version "7.22.5" version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
@ -117,6 +146,17 @@
dependencies: dependencies:
"@babel/types" "^7.22.15" "@babel/types" "^7.22.15"
"@babel/helper-compilation-targets@^7.18.2", "@babel/helper-compilation-targets@^7.23.6":
version "7.23.6"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
dependencies:
"@babel/compat-data" "^7.23.5"
"@babel/helper-validator-option" "^7.23.5"
browserslist "^4.22.2"
lru-cache "^5.1.1"
semver "^6.3.1"
"@babel/helper-compilation-targets@^7.22.15": "@babel/helper-compilation-targets@^7.22.15":
version "7.22.15" version "7.22.15"
resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52"
@ -139,17 +179,6 @@
lru-cache "^5.1.1" lru-cache "^5.1.1"
semver "^6.3.1" semver "^6.3.1"
"@babel/helper-compilation-targets@^7.23.6":
version "7.23.6"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
dependencies:
"@babel/compat-data" "^7.23.5"
"@babel/helper-validator-option" "^7.23.5"
browserslist "^4.22.2"
lru-cache "^5.1.1"
semver "^6.3.1"
"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0":
version "7.22.10" version "7.22.10"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz#dd2612d59eac45588021ac3d6fa976d08f4e95a3" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz#dd2612d59eac45588021ac3d6fa976d08f4e95a3"
@ -270,7 +299,7 @@
dependencies: dependencies:
"@babel/types" "^7.22.15" "@babel/types" "^7.22.15"
"@babel/helper-module-transforms@^7.23.3": "@babel/helper-module-transforms@^7.18.0", "@babel/helper-module-transforms@^7.23.3":
version "7.23.3" version "7.23.3"
resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
@ -380,6 +409,15 @@
"@babel/template" "^7.22.15" "@babel/template" "^7.22.15"
"@babel/types" "^7.22.19" "@babel/types" "^7.22.19"
"@babel/helpers@^7.18.2":
version "7.24.0"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b"
integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==
dependencies:
"@babel/template" "^7.24.0"
"@babel/traverse" "^7.24.0"
"@babel/types" "^7.24.0"
"@babel/helpers@^7.23.5": "@babel/helpers@^7.23.5":
version "7.23.5" version "7.23.5"
resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e"
@ -426,6 +464,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55"
integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ== integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==
"@babel/parser@^7.18.5", "@babel/parser@^7.24.0":
version "7.24.0"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac"
integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==
"@babel/parser@^7.22.15", "@babel/parser@^7.23.5": "@babel/parser@^7.22.15", "@babel/parser@^7.23.5":
version "7.23.5" version "7.23.5"
resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563"
@ -1190,6 +1233,15 @@
dependencies: dependencies:
regenerator-runtime "^0.14.0" regenerator-runtime "^0.14.0"
"@babel/template@^7.16.7", "@babel/template@^7.24.0":
version "7.24.0"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50"
integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==
dependencies:
"@babel/code-frame" "^7.23.5"
"@babel/parser" "^7.24.0"
"@babel/types" "^7.24.0"
"@babel/template@^7.22.15", "@babel/template@^7.3.3": "@babel/template@^7.22.15", "@babel/template@^7.3.3":
version "7.22.15" version "7.22.15"
resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
@ -1208,6 +1260,22 @@
"@babel/parser" "^7.22.5" "@babel/parser" "^7.22.5"
"@babel/types" "^7.22.5" "@babel/types" "^7.22.5"
"@babel/traverse@^7.18.5", "@babel/traverse@^7.24.0":
version "7.24.0"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e"
integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==
dependencies:
"@babel/code-frame" "^7.23.5"
"@babel/generator" "^7.23.6"
"@babel/helper-environment-visitor" "^7.22.20"
"@babel/helper-function-name" "^7.23.0"
"@babel/helper-hoist-variables" "^7.22.5"
"@babel/helper-split-export-declaration" "^7.22.6"
"@babel/parser" "^7.24.0"
"@babel/types" "^7.24.0"
debug "^4.3.1"
globals "^11.1.0"
"@babel/traverse@^7.23.5": "@babel/traverse@^7.23.5":
version "7.23.5" version "7.23.5"
resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec"
@ -1249,6 +1317,15 @@
"@babel/helper-validator-identifier" "^7.22.20" "@babel/helper-validator-identifier" "^7.22.20"
to-fast-properties "^2.0.0" to-fast-properties "^2.0.0"
"@babel/types@^7.18.4", "@babel/types@^7.24.0":
version "7.24.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf"
integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==
dependencies:
"@babel/helper-string-parser" "^7.23.4"
"@babel/helper-validator-identifier" "^7.22.20"
to-fast-properties "^2.0.0"
"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.23.0", "@babel/types@^7.23.5": "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.23.0", "@babel/types@^7.23.5":
version "7.23.5" version "7.23.5"
resolved "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" resolved "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602"
@ -1824,6 +1901,15 @@
"@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/trace-mapping" "^0.3.9"
"@jridgewell/gen-mapping@^0.3.5":
version "0.3.5"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
dependencies:
"@jridgewell/set-array" "^1.2.1"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.24"
"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
version "3.1.1" version "3.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
@ -1834,6 +1920,11 @@
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
"@jridgewell/set-array@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
"@jridgewell/source-map@^0.3.3": "@jridgewell/source-map@^0.3.3":
version "0.3.5" version "0.3.5"
resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91"
@ -1842,7 +1933,7 @@
"@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/trace-mapping" "^0.3.9"
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14":
version "1.4.15" version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
@ -1871,6 +1962,14 @@
"@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14" "@jridgewell/sourcemap-codec" "^1.4.14"
"@jridgewell/trace-mapping@^0.3.24":
version "0.3.25"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
dependencies:
"@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14"
"@mapbox/node-pre-gyp@^1.0.0": "@mapbox/node-pre-gyp@^1.0.0":
version "1.0.11" version "1.0.11"
resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa"
@ -2309,6 +2408,24 @@
resolved "https://registry.yarnpkg.com/@nuxtjs/redirect-module/-/redirect-module-0.3.1.tgz#90a6986882337401cb0576cdf9479d4e3b552cce" resolved "https://registry.yarnpkg.com/@nuxtjs/redirect-module/-/redirect-module-0.3.1.tgz#90a6986882337401cb0576cdf9479d4e3b552cce"
integrity sha512-yL2unrYfUSqs+4cUtkQvEQMsuTeCOlQd+Y5sTqMZzWBadF8h01tCVDG95zmOTNIiCupb+sQho2Tixwl1f826aw== integrity sha512-yL2unrYfUSqs+4cUtkQvEQMsuTeCOlQd+Y5sTqMZzWBadF8h01tCVDG95zmOTNIiCupb+sQho2Tixwl1f826aw==
"@nuxtjs/sentry@^8.0.7":
version "8.0.7"
resolved "https://registry.yarnpkg.com/@nuxtjs/sentry/-/sentry-8.0.7.tgz#46c5cc5d43a652e7afb1b5ba6c3bdbb148be9bde"
integrity sha512-i+j7dYuoDAanQdS18/zFlrGj5qVIVUKWWy4jcrEtkr8wV15+es0oWDvdlEMtMBWgDHdh9AKste0XOjNgtBx/9A==
dependencies:
"@sentry/core" "^7.100.0"
"@sentry/integrations" "^7.100.0"
"@sentry/node" "^7.100.0"
"@sentry/utils" "^7.100.0"
"@sentry/vue" "^7.100.0"
consola "^3.2.3"
defu "^6.1.4"
hash-sum "^2.0.0"
jiti "^1.21.0"
lodash.mergewith "^4.6.2"
mlly "^1.5.0"
pathe "^1.1.2"
"@nuxtjs/youch@^4.2.3": "@nuxtjs/youch@^4.2.3":
version "4.2.3" version "4.2.3"
resolved "https://registry.yarnpkg.com/@nuxtjs/youch/-/youch-4.2.3.tgz#36f8b22df5a0efaa81373109851e1d857aca6bed" resolved "https://registry.yarnpkg.com/@nuxtjs/youch/-/youch-4.2.3.tgz#36f8b22df5a0efaa81373109851e1d857aca6bed"
@ -2331,6 +2448,189 @@
cookie-parser "^1.4.5" cookie-parser "^1.4.5"
csurf "^1.11.0" csurf "^1.11.0"
"@sentry-internal/feedback@7.105.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-7.105.0.tgz#f2a25b55e5368509cfd540c21e74503568492057"
integrity sha512-17doUQFKYgLfG7EmZXjZQ7HR/aBzuLDd+GVaCNthUPyiz/tltV7EFECDWwHpXqzQgYRgroSbY8PruMVujFGUUw==
dependencies:
"@sentry/core" "7.105.0"
"@sentry/types" "7.105.0"
"@sentry/utils" "7.105.0"
"@sentry-internal/replay-canvas@7.105.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-7.105.0.tgz#fed7d67d976837ef7c1b72a6db461179703fa6f5"
integrity sha512-XMBdkjIDhap5Gwrub5wlUJhuUVJM4aL4lZV8KcxJZZSXgXsnyGYbEh9SPZOHO05jtbxTxVeL3Pik5qtYjdGnPA==
dependencies:
"@sentry/core" "7.105.0"
"@sentry/replay" "7.105.0"
"@sentry/types" "7.105.0"
"@sentry/utils" "7.105.0"
"@sentry-internal/tracing@7.105.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.105.0.tgz#9cb06f8281454343215cfe4b119c8198f032ec72"
integrity sha512-b+AFYB7Bc9vmyxl2jbmuT4esX5G0oPfpz35A0sxFzmJIhvMg1YMDNio2c81BtKN+VSPORCnKMLhfk3kyKKvWMQ==
dependencies:
"@sentry/core" "7.105.0"
"@sentry/types" "7.105.0"
"@sentry/utils" "7.105.0"
"@sentry/babel-plugin-component-annotate@2.14.2":
version "2.14.2"
resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.14.2.tgz#d756bed93495e97a5a2aad56e2a6dc5020305adc"
integrity sha512-mFBVnIZmdMrpxo61rG5yf0WFt5VrRpy8cpIpJtT3mYkX9vDmcUZaZaD1ctv73iZF3QwaieVdn05Na5mWzZ8h/A==
"@sentry/browser@7.105.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.105.0.tgz#3eb56785cfc1cf58528b29ea954b73093e6f9481"
integrity sha512-OlYJzsZG109T1VpZ7O7KXf9IXCUUpp41lkkQM7ICBOBsfiHRUKmV5piTGCG5UgAvyb/gI/I1uQQtO4jthcHKEA==
dependencies:
"@sentry-internal/feedback" "7.105.0"
"@sentry-internal/replay-canvas" "7.105.0"
"@sentry-internal/tracing" "7.105.0"
"@sentry/core" "7.105.0"
"@sentry/replay" "7.105.0"
"@sentry/types" "7.105.0"
"@sentry/utils" "7.105.0"
"@sentry/bundler-plugin-core@2.14.2":
version "2.14.2"
resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.14.2.tgz#6750c46fa4836b46ea48556b19f5e6789a428a47"
integrity sha512-HgOFWYdq87lSmeVW1w8K2Vf2DGzRPvKzHTajZYLTPlrZ1jbajq9vwuqhrJ9AnDkjl0mjyzSPEy3ZTeG1Z7uRNA==
dependencies:
"@babel/core" "7.18.5"
"@sentry/babel-plugin-component-annotate" "2.14.2"
"@sentry/cli" "^2.22.3"
dotenv "^16.3.1"
find-up "5.0.0"
glob "9.3.2"
magic-string "0.27.0"
unplugin "1.0.1"
"@sentry/cli-darwin@2.29.1":
version "2.29.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.29.1.tgz#09f84f2af156bac446733117b48f5d743d90467f"
integrity sha512-FfYkME4stq6q1sWWsxFAjTa1pxc+GV+HTHYcnajqU+X0rQReoOvFvi00AHua1qKy8+lH5/RgEvMJcDBdoa0h3A==
"@sentry/cli-linux-arm64@2.29.1":
version "2.29.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.29.1.tgz#5ecc844aa50178f7a6ab31eb28deea0fea7f5119"
integrity sha512-xcwNMJDC10kbi7T1kXRtZCMfgBtD3qLRgYEHJR0UuTONF+pF80uacdde+7oABW+rA3jy2G+4+cR5pN9M2x8wGQ==
"@sentry/cli-linux-arm@2.29.1":
version "2.29.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.29.1.tgz#54d418fff574faf6bd23b57d5a6df62f637e36d6"
integrity sha512-lqOsmAVVgRYZzNyGQA1jnmALx0LnZ/Z7zc8/2TFrQYT7FUps5FP3yDDKlsUTaB8Z8A0++k7AqFgwlIeJw7+mPQ==
"@sentry/cli-linux-i686@2.29.1":
version "2.29.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.29.1.tgz#d4131f36effc51b12b2f1bbef6c03b8361fac877"
integrity sha512-yOe7YEx42vl0Q8MgkbQmLbRe2KjijjMP+l9DYAfbOJHdTJ+3tNfBcRqFXsVNiobGxUeaVE5oDkOJ+7iGGgM2HA==
"@sentry/cli-linux-x64@2.29.1":
version "2.29.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.29.1.tgz#922277cacba03fc7d8634b0efc3257c99a622e11"
integrity sha512-fzKh/lRwzZSb+QIebuWN9qXXABGarsL9V2xONGwWv202AueK0WFxr6/ADsE7OlmM/4cDby5Sd+oMKos2eeVcVA==
"@sentry/cli-win32-i686@2.29.1":
version "2.29.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.29.1.tgz#93bc1b88832b498537da94a7cf8f3a688ce635b2"
integrity sha512-qdzg2nCSLfMgwhH7HLb6nPngJgbDvcOfDPtF+Y7axoe18iiQW0Ju7M9/e30t8vaOcUz9ZowQgFvxdgYlHJ3jMw==
"@sentry/cli-win32-x64@2.29.1":
version "2.29.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.29.1.tgz#1bc0a746f3a94f7ed21108095e9cb5c9f585b7ad"
integrity sha512-CtGuRmwJ06WVMyVOq/Oa0l/1fI7rSAxcAlCzVAvj1p09aLXAGObGXmljXUeQ1jxE/Ll4yRAo9TjA8Y+vxPtkJw==
"@sentry/cli@^2.22.3":
version "2.29.1"
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.29.1.tgz#1089aabbdd2b5c34263f1de7e89bbed5b7dc06ef"
integrity sha512-STtuGm8vdR4ifR3I6mFmt9y7Dk9QzeOvpyXEG5H7dkFDSvU7cepkYAlli5QiZDzECngxGx/uLAzZzFKSATF1Qw==
dependencies:
https-proxy-agent "^5.0.0"
node-fetch "^2.6.7"
progress "^2.0.3"
proxy-from-env "^1.1.0"
which "^2.0.2"
optionalDependencies:
"@sentry/cli-darwin" "2.29.1"
"@sentry/cli-linux-arm" "2.29.1"
"@sentry/cli-linux-arm64" "2.29.1"
"@sentry/cli-linux-i686" "2.29.1"
"@sentry/cli-linux-x64" "2.29.1"
"@sentry/cli-win32-i686" "2.29.1"
"@sentry/cli-win32-x64" "2.29.1"
"@sentry/core@7.105.0", "@sentry/core@^7.100.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.105.0.tgz#89db519dd9aa7326de63a7eaccf861de3769ab1c"
integrity sha512-5xsaTG6jZincTeJUmZomlv20mVRZUEF1U/g89lmrSOybyk2+opEnB1JeBn4ODwnvmSik8r2QLr6/RiYlaxRJCg==
dependencies:
"@sentry/types" "7.105.0"
"@sentry/utils" "7.105.0"
"@sentry/integrations@^7.100.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.105.0.tgz#8953bd310d8681f9a29f918269b98640ab302abe"
integrity sha512-AgzecTkF0o+C4svbroMGA+cW5LRnfFSoJnzF5ltUB67hnX906amlwbOvdkKD3MugYO02nRSjF/eEi26E1HACMA==
dependencies:
"@sentry/core" "7.105.0"
"@sentry/types" "7.105.0"
"@sentry/utils" "7.105.0"
localforage "^1.8.1"
"@sentry/node@^7.100.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.105.0.tgz#cfe8e5602dff2cc754a95412f44c9ca8156422ff"
integrity sha512-b0QwZ7vT4hcJi6LmNRh3dcaYpLtXnkYXkL0rfhMb8hN8sUx8zuOWFMI7j0cfAloVThUeJVwGyv9dERfzGS2r2w==
dependencies:
"@sentry-internal/tracing" "7.105.0"
"@sentry/core" "7.105.0"
"@sentry/types" "7.105.0"
"@sentry/utils" "7.105.0"
"@sentry/replay@7.105.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.105.0.tgz#61784e3e88afa66a0d9b1b9d222153ab54ea4bd0"
integrity sha512-hZD2m6fNL9gorUOaaEpqxeH7zNP4y2Ej0TdieM1HMQ2q9Zrm9yOzk9/7ALfbRLIZFRMFTqo9vvVztLs3E+Hx+g==
dependencies:
"@sentry-internal/tracing" "7.105.0"
"@sentry/core" "7.105.0"
"@sentry/types" "7.105.0"
"@sentry/utils" "7.105.0"
"@sentry/types@7.105.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.105.0.tgz#51dadb7ad650e883459acf18df2ecbb5b4b6e5c2"
integrity sha512-80o0KMVM+X2Ym9hoQxvJetkJJwkpCg7o6tHHFXI+Rp7fawc2iCMTa0IRQMUiSkFvntQLYIdDoNNuKdzz2PbQGA==
"@sentry/utils@7.105.0", "@sentry/utils@^7.100.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.105.0.tgz#727187d252b97cb9e6c78bcdd0e9a1d14e60f313"
integrity sha512-YVAV0c2KLM8+VZCicQ/E/P2+J9Vs0hGhrXwV7w6ZEAtvxrg4oF270toL1WRhvcaf8JO4J1v4V+LuU6Txs4uEeQ==
dependencies:
"@sentry/types" "7.105.0"
"@sentry/vue@^7.100.0":
version "7.105.0"
resolved "https://registry.yarnpkg.com/@sentry/vue/-/vue-7.105.0.tgz#37655b96db8acb65309d8462d8c3d26cf000932d"
integrity sha512-QWUWAwCFruw75aqsExHKZ9HWtFyFRo4+8UsCiXUWeMpcpQu+mZ4VzHbTxNBZKmSTA0jYa/tTpYXkfI5ozM+y4A==
dependencies:
"@sentry/browser" "7.105.0"
"@sentry/core" "7.105.0"
"@sentry/types" "7.105.0"
"@sentry/utils" "7.105.0"
"@sentry/webpack-plugin@^2.14.2":
version "2.14.2"
resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.14.2.tgz#4b3af44e98b967ea0730681f80b08c9f3660ad58"
integrity sha512-BEWF5qerGG/xX0ixEOCYh9gCkc+FHDzXxRMCFkM8yQNGH361ELF578KtuoZxXDy0kWa9QGZxSoP6/HZSnJEF9A==
dependencies:
"@sentry/bundler-plugin-core" "2.14.2"
unplugin "1.0.1"
uuid "^9.0.0"
"@sinclair/typebox@^0.27.8": "@sinclair/typebox@^0.27.8":
version "0.27.8" version "0.27.8"
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
@ -3372,7 +3672,7 @@ acorn@^8.0.4, acorn@^8.1.0, acorn@^8.8.2:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
acorn@^8.11.3, acorn@^8.4.1, acorn@^8.5.0: acorn@^8.11.3, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.8.1:
version "8.11.3" version "8.11.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
@ -4887,6 +5187,11 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
convert-source-map@^1.7.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
convert-source-map@^2.0.0: convert-source-map@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
@ -5576,6 +5881,11 @@ defu@^6.0.0, defu@^6.1.2:
resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c" resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c"
integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ== integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==
defu@^6.1.4:
version "6.1.4"
resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479"
integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==
delayed-stream@~1.0.0: delayed-stream@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@ -6789,6 +7099,14 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.3.1:
make-dir "^3.0.2" make-dir "^3.0.2"
pkg-dir "^4.1.0" pkg-dir "^4.1.0"
find-up@5.0.0, find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
dependencies:
locate-path "^6.0.0"
path-exists "^4.0.0"
find-up@^1.0.0: find-up@^1.0.0:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
@ -6812,14 +7130,6 @@ find-up@^4.0.0, find-up@^4.1.0:
locate-path "^5.0.0" locate-path "^5.0.0"
path-exists "^4.0.0" path-exists "^4.0.0"
find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
dependencies:
locate-path "^6.0.0"
path-exists "^4.0.0"
flat-cache@^3.0.4: flat-cache@^3.0.4:
version "3.2.0" version "3.2.0"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
@ -7263,6 +7573,16 @@ glob-to-regexp@^0.4.1:
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
glob@9.3.2:
version "9.3.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.2.tgz#8528522e003819e63d11c979b30896e0eaf52eda"
integrity sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA==
dependencies:
fs.realpath "^1.0.0"
minimatch "^7.4.1"
minipass "^4.2.4"
path-scurry "^1.6.1"
glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0:
version "7.2.3" version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
@ -7837,6 +8157,11 @@ ignore@^5.2.0, ignore@^5.2.4:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
immediate@~3.0.5:
version "3.0.6"
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
import-fresh@^3.1.0, import-fresh@^3.2.1: import-fresh@^3.1.0, import-fresh@^3.2.1:
version "3.3.0" version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@ -8797,7 +9122,7 @@ jiti@^1.16.2:
resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.3.tgz#ef554f76465b3c2b222dc077834a71f0d4a37569" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.3.tgz#ef554f76465b3c2b222dc077834a71f0d4a37569"
integrity sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w== integrity sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==
jiti@^1.20.0: jiti@^1.20.0, jiti@^1.21.0:
version "1.21.0" version "1.21.0"
resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d"
integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==
@ -8931,7 +9256,7 @@ json5@^1.0.1, json5@^1.0.2:
dependencies: dependencies:
minimist "^1.2.0" minimist "^1.2.0"
json5@^2.1.2, json5@^2.2.3: json5@^2.1.2, json5@^2.2.1, json5@^2.2.3:
version "2.2.3" version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
@ -8946,6 +9271,11 @@ jsonc-eslint-parser@^2.0.4:
espree "^9.0.0" espree "^9.0.0"
semver "^7.3.5" semver "^7.3.5"
jsonc-parser@^3.2.0:
version "3.2.1"
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a"
integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==
jsonfile@^4.0.0: jsonfile@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@ -9115,6 +9445,13 @@ levn@^0.4.1:
prelude-ls "^1.2.1" prelude-ls "^1.2.1"
type-check "~0.4.0" type-check "~0.4.0"
lie@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e"
integrity sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==
dependencies:
immediate "~3.0.5"
lilconfig@^2.0.3, lilconfig@^2.1.0: lilconfig@^2.0.3, lilconfig@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
@ -9171,6 +9508,13 @@ loader-utils@^2.0.0, loader-utils@^2.0.4:
emojis-list "^3.0.0" emojis-list "^3.0.0"
json5 "^2.1.2" json5 "^2.1.2"
localforage@^1.8.1:
version "1.10.0"
resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz#5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4"
integrity sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==
dependencies:
lie "3.1.1"
locate-path@^3.0.0: locate-path@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
@ -9253,6 +9597,11 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
lodash.mergewith@^4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55"
integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==
lodash.once@^4.0.0: lodash.once@^4.0.0:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
@ -9343,11 +9692,23 @@ lru-cache@^6.0.0:
dependencies: dependencies:
yallist "^4.0.0" yallist "^4.0.0"
"lru-cache@^9.1.1 || ^10.0.0":
version "10.2.0"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3"
integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==
luxon@^1.28.1: luxon@^1.28.1:
version "1.28.1" version "1.28.1"
resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.1.tgz#528cdf3624a54506d710290a2341aa8e6e6c61b0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.1.tgz#528cdf3624a54506d710290a2341aa8e6e6c61b0"
integrity sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw== integrity sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==
magic-string@0.27.0:
version "0.27.0"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3"
integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.13"
make-dir@^1.0.0: make-dir@^1.0.0:
version "1.3.0" version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@ -9709,6 +10070,13 @@ minimatch@^5.0.1:
dependencies: dependencies:
brace-expansion "^2.0.1" brace-expansion "^2.0.1"
minimatch@^7.4.1:
version "7.4.6"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb"
integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==
dependencies:
brace-expansion "^2.0.1"
minimatch@~3.0.4: minimatch@~3.0.4:
version "3.0.8" version "3.0.8"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1"
@ -9767,11 +10135,21 @@ minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3:
dependencies: dependencies:
yallist "^4.0.0" yallist "^4.0.0"
minipass@^4.2.4:
version "4.2.8"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a"
integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==
minipass@^5.0.0: minipass@^5.0.0:
version "5.0.0" version "5.0.0"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
version "7.0.4"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
minizlib@^2.0.0, minizlib@^2.1.1: minizlib@^2.0.0, minizlib@^2.1.1:
version "2.1.2" version "2.1.2"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
@ -9821,6 +10199,16 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
mlly@^1.2.0, mlly@^1.5.0:
version "1.6.1"
resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.6.1.tgz#0983067dc3366d6314fc5e12712884e6978d028f"
integrity sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==
dependencies:
acorn "^8.11.3"
pathe "^1.1.2"
pkg-types "^1.0.3"
ufo "^1.3.2"
modify-filename@^1.1.0: modify-filename@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/modify-filename/-/modify-filename-1.1.0.tgz#9a2dec83806fbb2d975f22beec859ca26b393aa1" resolved "https://registry.yarnpkg.com/modify-filename/-/modify-filename-1.1.0.tgz#9a2dec83806fbb2d975f22beec859ca26b393aa1"
@ -10685,6 +11073,14 @@ path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-scurry@^1.6.1:
version "1.10.1"
resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698"
integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==
dependencies:
lru-cache "^9.1.1 || ^10.0.0"
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
path-to-regexp@0.1.7: path-to-regexp@0.1.7:
version "0.1.7" version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
@ -10704,6 +11100,11 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
pathe@^1.1.0, pathe@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec"
integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==
pbkdf2@^3.0.3: pbkdf2@^3.0.3:
version "3.1.2" version "3.1.2"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
@ -10791,6 +11192,15 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0:
dependencies: dependencies:
find-up "^4.0.0" find-up "^4.0.0"
pkg-types@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868"
integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==
dependencies:
jsonc-parser "^3.2.0"
mlly "^1.2.0"
pathe "^1.1.0"
"plausible-api@https://github.com/avo7/plausible-api.git#main": "plausible-api@https://github.com/avo7/plausible-api.git#main":
version "1.0.1" version "1.0.1"
resolved "https://github.com/avo7/plausible-api.git#0bb79ad1d26754a71b3ec1351255dbf5a32e6e2a" resolved "https://github.com/avo7/plausible-api.git#0bb79ad1d26754a71b3ec1351255dbf5a32e6e2a"
@ -11652,7 +12062,7 @@ process@^0.11.10:
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
progress@^2.0.1: progress@^2.0.1, progress@^2.0.3:
version "2.0.3" version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@ -11705,7 +12115,7 @@ proxy-addr@~2.0.7:
forwarded "0.2.0" forwarded "0.2.0"
ipaddr.js "1.9.1" ipaddr.js "1.9.1"
proxy-from-env@^1.0.0: proxy-from-env@^1.0.0, proxy-from-env@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
@ -13819,6 +14229,11 @@ ufo@^1.3.1:
resolved "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" resolved "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496"
integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==
ufo@^1.3.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.4.0.tgz#39845b31be81b4f319ab1d99fd20c56cac528d32"
integrity sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==
uglify-js@^3.5.1: uglify-js@^3.5.1:
version "3.17.4" version "3.17.4"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
@ -13931,6 +14346,16 @@ unpipe@1.0.0, unpipe@~1.0.0:
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
unplugin@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.0.1.tgz#83b528b981cdcea1cad422a12cd02e695195ef3f"
integrity sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==
dependencies:
acorn "^8.8.1"
chokidar "^3.5.3"
webpack-sources "^3.2.3"
webpack-virtual-modules "^0.5.0"
unset-value@^1.0.0: unset-value@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
@ -14110,6 +14535,11 @@ uuid@^8.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
uuid@^9.0.0:
version "9.0.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
v8-compile-cache-lib@^3.0.1: v8-compile-cache-lib@^3.0.1:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
@ -14420,6 +14850,16 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-
source-list-map "^2.0.0" source-list-map "^2.0.0"
source-map "~0.6.1" source-map "~0.6.1"
webpack-sources@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
webpack-virtual-modules@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c"
integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==
webpack@^4.47.0: webpack@^4.47.0:
version "4.47.0" version "4.47.0"
resolved "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz#8b8a02152d7076aeb03b61b47dad2eeed9810ebc" resolved "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz#8b8a02152d7076aeb03b61b47dad2eeed9810ebc"