From 296c8fd46e217607073f909e4537140a466cd862 Mon Sep 17 00:00:00 2001 From: Arno Kaimbacher Date: Tue, 23 Apr 2024 19:36:45 +0200 Subject: [PATCH] - added own provider for drive methods - renamed middleware Role and Can to role_middleware and can_middleware - added some typing for inertia vue3 components - npm updates --- .adonisrc.json | 75 - .editorconfig | 2 +- adonisrc.ts | 4 +- ...rsController.ts => AdminuserController.ts} | 3 +- app/Controllers/Http/Api/UserController.ts | 2 +- app/Controllers/Http/Auth/AuthController.ts | 2 +- app/Controllers/Http/Auth/UserController.ts | 4 +- .../Http/Submitter/DatasetController.ts | 64 +- app/Exceptions/Handler.ts | 71 +- app/Middleware/{Can.ts => can_middleware.ts} | 0 .../{Role.ts => role_middleware.ts} | 0 app/Models/File.ts | 5 +- app/Models/User.ts | 17 +- .../TwoFactorAuthProvider.ts | 0 app/services/drive.ts | 13 + commands/IndexDatasets.ts | 39 +- commands/index_test.ts | 18 +- config/drive.ts | 6 +- config/inertia.ts | 18 +- config/oai.ts | 4 +- package-lock.json | 2467 +++++++++-------- package.json | 5 +- providers/HashDriver/index.ts | 16 +- providers/{AppProvider.ts => app_provider.ts} | 0 providers/drive/drivers/local.ts | 133 + providers/drive/exceptions/index.ts | 73 + providers/drive/path_prefixer/index.ts | 96 + providers/drive/provider/drive_provider.ts | 62 + providers/drive/src/drive_manager.ts | 154 + providers/drive/src/iterable_array.ts | 68 + providers/drive/src/types/define_config.ts | 5 + providers/drive/src/types/drive.ts | 176 ++ ...erProvider.ts => token_worker_provider.ts} | 0 public/assets/manifest.json | 14 +- resources/js/Components/Admin/Pagination.vue | 129 +- resources/js/Components/AsideMenuItem.vue | 4 +- resources/js/Components/AsideMenuLayer.vue | 2 +- .../js/Components/FormValidationErrors.vue | 2 +- resources/js/Components/Header.vue | 8 +- resources/js/Components/Map/Control.ts | 9 +- resources/js/Components/NavBar.vue | 10 +- resources/js/Components/NavBarItem.vue | 2 +- resources/js/Components/NavBarMenu.vue | 4 +- resources/js/Components/OverlayLayer.vue | 4 +- resources/js/Components/SectionFullScreen.vue | 4 +- resources/js/Components/TableKeywords.vue | 4 +- resources/js/Components/TablePersons.vue | 4 +- .../js/Components/TableSampleClients.vue | 4 +- resources/js/Layouts/LayoutAuthenticated.vue | 4 +- resources/js/Layouts/LayoutGuest.vue | 2 +- resources/js/Pages/Admin/Role/Create.vue | 6 +- resources/js/Pages/Admin/Settings.vue | 2 +- resources/js/Pages/Errors/ServerError.vue | 60 + resources/js/Pages/Errors/not_found.vue | 7 + resources/js/Stores/main.ts | 2 +- resources/js/Stores/map.service.ts | 24 +- .../js/Stores/{style.ts => style.service.ts} | 50 +- resources/js/{app.js => app.ts} | 38 +- resources/js/styles.js | 53 +- .../js/tsconfig.vue.json | 16 +- src/extensions.ts | 30 +- start/env.ts | 7 +- start/kernel.ts | 9 +- start/routes.ts | 18 +- tsconfig.json | 15 +- webpack.config.cjs | 12 +- webpack.config_a.cjs | 267 -- 67 files changed, 2515 insertions(+), 1913 deletions(-) delete mode 100644 .adonisrc.json rename app/Controllers/Http/Admin/{UsersController.ts => AdminuserController.ts} (99%) rename app/Middleware/{Can.ts => can_middleware.ts} (100%) rename app/Middleware/{Role.ts => role_middleware.ts} (100%) rename app/{Services => services}/TwoFactorAuthProvider.ts (100%) create mode 100644 app/services/drive.ts rename providers/{AppProvider.ts => app_provider.ts} (100%) create mode 100644 providers/drive/drivers/local.ts create mode 100644 providers/drive/exceptions/index.ts create mode 100644 providers/drive/path_prefixer/index.ts create mode 100644 providers/drive/provider/drive_provider.ts create mode 100644 providers/drive/src/drive_manager.ts create mode 100644 providers/drive/src/iterable_array.ts create mode 100644 providers/drive/src/types/define_config.ts create mode 100644 providers/drive/src/types/drive.ts rename providers/{TokenWorkerProvider.ts => token_worker_provider.ts} (100%) create mode 100644 resources/js/Pages/Errors/ServerError.vue create mode 100644 resources/js/Pages/Errors/not_found.vue rename resources/js/Stores/{style.ts => style.service.ts} (53%) rename resources/js/{app.js => app.ts} (74%) rename tsconfig.vue.json => resources/js/tsconfig.vue.json (64%) delete mode 100644 webpack.config_a.cjs diff --git a/.adonisrc.json b/.adonisrc.json deleted file mode 100644 index e9f3462..0000000 --- a/.adonisrc.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "typescript": true, - "commands": [ - "./commands", - "@adonisjs/core/build/commands/index.js", - "@adonisjs/repl/build/commands", - "@eidellev/inertia-adonisjs/build/commands", - "@adonisjs/lucid/build/commands" - ], - "exceptionHandlerNamespace": "App/Exceptions/Handler", - "aliases": { - "App": "app", - "Config": "config", - "Database": "database", - "Contracts": "contracts" - }, - "preloads": [ - "./start/routes", - "./start/kernel", - { - "file": "./start/inertia", - "environment": [ - "web" - ] - }, - { - "file": "./start/validator", - "environment": [ - "web" - ] - } - ], - "providers": [ - "./providers/AppProvider", - "@adonisjs/core", - "@adonisjs/session", - "@adonisjs/view", - "@adonisjs/shield", - "@eidellev/inertia-adonisjs", - "@adonisjs/lucid", - "@adonisjs/auth", - "@eidellev/adonis-stardust", - "./providers/QueryBuilderProvider", - "./providers/TokenWorkerProvider", - "@adonisjs/redis", - "./providers/DoiProvider" - ], - "metaFiles": [ - { - "pattern": "public/**", - "reloadServer": false - }, - { - "pattern": "resources/views/**/*.edge", - "reloadServer": false - } - ], - "aceProviders": [ - "@adonisjs/repl" - ], - "tests": { - "suites": [ - { - "name": "functional", - "files": [ - "tests/functional/**/*.spec(.ts|.js)" - ], - "timeout": 60000 - } - ] - }, - "testProviders": [ - "@japa/preset-adonis/TestsProvider" - ] -} diff --git a/.editorconfig b/.editorconfig index 5ea5f4e..09cd80b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,7 +2,7 @@ root = true [*] indent_style = space -indent_size = 2 +indent_size = 4 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true diff --git a/adonisrc.ts b/adonisrc.ts index f756c7b..2bd7c48 100644 --- a/adonisrc.ts +++ b/adonisrc.ts @@ -57,6 +57,7 @@ export default defineConfig({ () => import('@adonisjs/shield/shield_provider'), // () => import('@eidellev/inertia-adonisjs'), // () => import('@adonisjs/inertia/inertia_provider'), + () => import('#providers/app_provider'), () => import('#providers/inertia_provider'), () => import('@adonisjs/lucid/database_provider'), () => import('@adonisjs/auth/auth_provider'), @@ -66,8 +67,9 @@ export default defineConfig({ () => import('@adonisjs/static/static_provider'), () => import('#providers/stardust_provider'), () => import('#providers/query_builder_provider'), - () => import('#providers/TokenWorkerProvider'), + () => import('#providers/token_worker_provider'), () => import('#providers/validator_provider'), + () => import('#providers/drive/provider/drive_provider') ], metaFiles: [ { diff --git a/app/Controllers/Http/Admin/UsersController.ts b/app/Controllers/Http/Admin/AdminuserController.ts similarity index 99% rename from app/Controllers/Http/Admin/UsersController.ts rename to app/Controllers/Http/Admin/AdminuserController.ts index 2866ef9..49e86ba 100644 --- a/app/Controllers/Http/Admin/UsersController.ts +++ b/app/Controllers/Http/Admin/AdminuserController.ts @@ -8,7 +8,8 @@ import UpdateUserValidator from '#app/Validators/UpdateUserValidator'; // import Hash from '@ioc:Adonis/Core/Hash'; // import { schema, rules } from '@ioc:Adonis/Core/Validator'; -export default class AdminUserController { +export default class AdminuserController { + public async index({ auth, request, inertia }: HttpContext) { const page = request.input('page', 1); // const limit = 10 diff --git a/app/Controllers/Http/Api/UserController.ts b/app/Controllers/Http/Api/UserController.ts index cab89d5..481acc3 100644 --- a/app/Controllers/Http/Api/UserController.ts +++ b/app/Controllers/Http/Api/UserController.ts @@ -1,7 +1,7 @@ import type { HttpContext } from '@adonisjs/core/http'; // import TotpSecret from 'App/Models/TotpSecret'; import User from '#app/Models/User'; -import TwoFactorAuthProvider from '#app/Services/TwoFactorAuthProvider'; +import TwoFactorAuthProvider from '#app/services/TwoFactorAuthProvider'; import { StatusCodes } from 'http-status-codes'; import { InvalidArgumentException } from 'node-exceptions'; import { TotpState } from '#contracts/enums'; diff --git a/app/Controllers/Http/Auth/AuthController.ts b/app/Controllers/Http/Auth/AuthController.ts index 84c3757..485c24f 100644 --- a/app/Controllers/Http/Auth/AuthController.ts +++ b/app/Controllers/Http/Auth/AuthController.ts @@ -4,7 +4,7 @@ import User from '#models/User'; // import InvalidCredentialException from 'App/Exceptions/InvalidCredentialException'; import AuthValidator from '#app/Validators/AuthValidator'; -import TwoFactorAuthProvider from '#app/Services/TwoFactorAuthProvider'; +import TwoFactorAuthProvider from '#app/services/TwoFactorAuthProvider'; // import { Authenticator } from '@adonisjs/auth'; // import { LoginState } from 'Contracts/enums'; // import { StatusCodes } from 'http-status-codes'; diff --git a/app/Controllers/Http/Auth/UserController.ts b/app/Controllers/Http/Auth/UserController.ts index 4c5dadb..1bf3a61 100644 --- a/app/Controllers/Http/Auth/UserController.ts +++ b/app/Controllers/Http/Auth/UserController.ts @@ -1,7 +1,7 @@ import type { HttpContext } from '@adonisjs/core/http'; import User from '#app/Models/User'; // import { RenderResponse } from '@ioc:EidelLev/Inertia'; -import TwoFactorAuthProvider from '#app/Services/TwoFactorAuthProvider'; +import TwoFactorAuthProvider from '#app/services/TwoFactorAuthProvider'; import hash from '@adonisjs/core/services/hash'; import { schema, rules } from '@adonisjs/validator'; @@ -88,7 +88,7 @@ export default class UserController { } public async disableTwoFactorAuthentication({ auth, response, session }: HttpContext): Promise { - const user = auth?.user; + const user = auth.user; user.twoFactorSecret = null; user.twoFactorRecoveryCodes = null; diff --git a/app/Controllers/Http/Submitter/DatasetController.ts b/app/Controllers/Http/Submitter/DatasetController.ts index 1dffa59..127c7b7 100644 --- a/app/Controllers/Http/Submitter/DatasetController.ts +++ b/app/Controllers/Http/Submitter/DatasetController.ts @@ -9,11 +9,11 @@ import Language from '#app/Models/Language'; import Coverage from '#app/Models/Coverage'; import Collection from '#app/Models/Collection'; import { schema, rules } from '@adonisjs/validator'; -import { CustomMessages } from "@adonisjs/validator/types"; +import { CustomMessages } from '@adonisjs/validator/types'; import dayjs from 'dayjs'; import Person from '#app/Models/Person'; import db from '@adonisjs/lucid/services/db'; -import { TransactionClientContract } from "@adonisjs/lucid/types/database"; +import { TransactionClientContract } from '@adonisjs/lucid/types/database'; import Subject from '#app/Models/Subject'; import CreateDatasetValidator from '#app/Validators/CreateDatasetValidator'; import UpdateDatasetValidator from '#app/Validators/UpdateDatasetValidator'; @@ -27,14 +27,15 @@ import { DatasetTypes, SubjectTypes, } from '#contracts/enums'; -import { ModelQueryBuilderContract } from "@adonisjs/lucid/types/model"; +import { ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; import DatasetReference from '#app/Models/DatasetReference'; import { cuid } from '@adonisjs/core/helpers'; import File from '#app/Models/File'; import ClamScan from 'clamscan'; import { ValidationException } from '@adonisjs/validator'; // import Drive from '@ioc:Adonis/Core/Drive'; -import { Exception } from "@adonisjs/core/exceptions"; +import drive from '#services/drive'; +import { Exception } from '@adonisjs/core/exceptions'; import { MultipartFile } from '@adonisjs/core/types/bodyparser'; import * as crypto from 'crypto'; import app from '@adonisjs/core/services/app'; @@ -428,7 +429,7 @@ export default class DatasetController { } // save data files - const uploadedFiles: MultipartFile[] = request.files('files'); + const uploadedFiles: MultipartFile[] = request.files('files'); for (const [index, file] of uploadedFiles.entries()) { try { await this.scanFileForViruses(file.tmpPath); //, 'gitea.lan', 3310); @@ -439,19 +440,16 @@ export default class DatasetController { } // clientName: 'Gehaltsschema.png' // extname: 'png' - // fieldName: 'file' + // fieldName: 'file' // const fileName = `file-${this.generateRandomString(32)}.${file.extname}`; const fileName = this.generateFilename(file.extname as string); const mimeType = file.headers['content-type'] || 'application/octet-stream'; // Fallback to a default MIME type const datasetFolder = `files/${dataset.id}`; // const size = file.size; - await file.move( - app.makePath( datasetFolder), - { - name: fileName, - overwrite: true, // overwrite in case of conflict - }, - ); + await file.move(app.makePath(datasetFolder), { + name: fileName, + overwrite: true, // overwrite in case of conflict + }); // save file metadata into db const newFile = new File(); newFile.pathName = `${datasetFolder}/${fileName}`; @@ -468,7 +466,10 @@ export default class DatasetController { } private generateRandomString(length: number): string { - return crypto.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length); + return crypto + .randomBytes(Math.ceil(length / 2)) + .toString('hex') + .slice(0, length); } private generateFilename(extension: string): string { @@ -477,9 +478,9 @@ export default class DatasetController { const randomString3 = this.generateRandomString(4); const randomString4 = this.generateRandomString(4); const randomString5 = this.generateRandomString(12); - + return `file-${randomString1}-${randomString2}-${randomString3}-${randomString4}-${randomString5}.${extension}`; - } + } private async scanFileForViruses(filePath: string | undefined, host?: string, port?: number): Promise { // const clamscan = await (new ClamScan().init()); @@ -660,7 +661,7 @@ export default class DatasetController { }); try { - await request.validate({ + await request.validate({ schema: newSchema, // reporter: validator.reporters.vanilla, }); @@ -919,11 +920,7 @@ export default class DatasetController { // move to disk: const fileName = `file-${cuid()}.${fileData.extname}`; const datasetFolder = `files/${dataset.id}`; - await fileData.moveToDisk( - datasetFolder, - { name: fileName, overwrite: true }, - 'local' - ); + await fileData.moveToDisk(datasetFolder, { name: fileName, overwrite: true }, 'local'); // let path = coverImage.filePath; //save to db: @@ -1047,21 +1044,25 @@ export default class DatasetController { } } const datasetFolder = `files/${params.id}`; - const folderExists = await Drive.exists(datasetFolder); + const folderExists = await drive.exists(datasetFolder); if (folderExists) { - const folderContents = await Drive.list(datasetFolder).toArray(); + const dirListing = drive.list(datasetFolder); + const folderContents = await dirListing.toArray(); if (folderContents.length === 0) { - await Drive.delete(datasetFolder); + await drive.delete(datasetFolder); } // delete dataset wirh relation in db await dataset.delete(); session.flash({ message: 'You have deleted 1 dataset!' }); return response.redirect().toRoute('dataset.list'); } else { - session.flash({ - warning: `You cannot delete this dataset! Invalid server_state: "${dataset.server_state}"!`, - }); - return response.status(400).redirect().back(); + // session.flash({ + // warning: `You cannot delete this dataset! Invalid server_state: "${dataset.server_state}"!`, + // }); + return response + .flash({ warning: `You cannot delete this dataset! Dataset folder "${datasetFolder}" doesn't exist!` }) + .redirect() + .back(); } } } catch (error) { @@ -1070,10 +1071,7 @@ export default class DatasetController { throw error; } else if (error instanceof Exception) { // General exception handling - return response - .flash('errors', { error: error.message }) - .redirect() - .back(); + return response.flash('errors', { error: error.message }).redirect().back(); } else { session.flash({ error: 'An error occurred while deleting the dataset.' }); return response.redirect().back(); diff --git a/app/Exceptions/Handler.ts b/app/Exceptions/Handler.ts index 10e6744..b3dbb0e 100644 --- a/app/Exceptions/Handler.ts +++ b/app/Exceptions/Handler.ts @@ -29,28 +29,38 @@ export default class HttpExceptionHandler extends ExceptionHandler { * codes. You might want to enable them in production only, but feel * free to enable them in development as well. */ - protected renderStatusPages = true; - - // protected statusPages = { - // '401,403': 'errors/unauthorized', - // '404': 'errors/not-found', - // '500..599': 'errors/server-error', - // }; + protected renderStatusPages = true; //app.inProduction; /** * Status pages is a collection of error code range and a callback * to return the HTML contents to send as a response. */ + // protected statusPages: Record = { + // '401..403': (error, { view }) => { + // return view.render('./errors/unauthorized', { error }); + // }, + // '404': (error, { view }) => { + // return view.render('./errors/not-found', { error }); + // }, + // '500..599': (error, { view }) => { + // return view.render('./errors/server-error', { error }); + // }, + // }; protected statusPages: Record = { - '401..403': (error, { view }) => { - return view.render('./errors/unauthorized', { error }); + '404': (error, { inertia }) => { + return inertia.render('Errors/ServerError', { + error: error.message, + code: error.status, + }); }, - '404': (error, { view }) => { - return view.render('./errors/not-found', { error }); - }, - '500..599': (error, { view }) => { - return view.render('./errors/server-error', { error }); + '401..403': async (error, { inertia }) => { + // session.flash('errors', error.message); + return inertia.render('Errors/ServerError', { + error: error.message, + code: error.status, + }); }, + '500..599': (error, { inertia }) => inertia.render('Errors/ServerError', { error: error.message, code: error.status }), }; // constructor() { @@ -58,7 +68,7 @@ export default class HttpExceptionHandler extends ExceptionHandler { // } public async handle(error: any, ctx: HttpContext) { - const { response, request, session } = ctx; + // const { response, request, session, inertia } = ctx; /** * Handle failed authentication attempt @@ -75,17 +85,26 @@ export default class HttpExceptionHandler extends ExceptionHandler { // https://github.com/inertiajs/inertia-laravel/issues/56 // let test = response.getStatus(); //200 // let header = request.header('X-Inertia'); // true - if (request.header('X-Inertia') && [500, 503, 404, 403, 401, 200].includes(response.getStatus())) { - // session.flash('errors', error.messages.errors); - session.flash('errors', error.messages); - return response.redirect().back(); - // return inertia.render('Error', { - // status: response.getStatus(), - // message: error.message, - // }); - // ->toResponse($request) - // ->setStatusCode($response->status()); - } + // if (request.header('X-Inertia') && [500, 503, 404, 403, 401, 200].includes(response.getStatus())) { + // // session.flash('errors', error.messages.errors); + // session.flash('errors', error.messages); + // return response.redirect().back(); + // // return inertia.render('errors/server_error', { + // // return inertia.render('errors/server_error', { + // // // status: response.getStatus(), + // // error: error, + // // }); + // // ->toResponse($request) + // // ->setStatusCode($response->status()); + // } + // Dynamically change the error templates based on the absence of X-Inertia header + // if (!ctx.request.header('X-Inertia')) { + // this.statusPages = { + // '401..403': (error, { view }) => view.render('./errors/unauthorized', { error }), + // '404': (error, { view }) => view.render('./errors/not-found', { error }), + // '500..599': (error, { view }) => view.render('./errors/server-error', { error }), + // }; + // } /** * Forward rest of the exceptions to the parent class diff --git a/app/Middleware/Can.ts b/app/Middleware/can_middleware.ts similarity index 100% rename from app/Middleware/Can.ts rename to app/Middleware/can_middleware.ts diff --git a/app/Middleware/Role.ts b/app/Middleware/role_middleware.ts similarity index 100% rename from app/Middleware/Role.ts rename to app/Middleware/role_middleware.ts diff --git a/app/Models/File.ts b/app/Models/File.ts index 406725c..72418ef 100644 --- a/app/Models/File.ts +++ b/app/Models/File.ts @@ -7,7 +7,8 @@ import BaseModel from './BaseModel.js'; import * as fs from 'fs'; import crypto from 'crypto'; // import Drive from '@ioc:Adonis/Core/Drive'; -import Drive from '@adonisjs/drive'; +// import Drive from '@adonisjs/drive'; +import drive from '#services/drive'; import type { HasMany } from "@adonisjs/lucid/types/relations"; import type { BelongsTo } from "@adonisjs/lucid/types/relations"; @@ -164,7 +165,7 @@ export default class File extends BaseModel { public async delete() { if (this.pathName) { // Delete file from additional storage - await Drive.delete(this.pathName); + await drive.delete(this.pathName); } // Call the original delete method of the BaseModel to remove the record from the database diff --git a/app/Models/User.ts b/app/Models/User.ts index 1239bbb..4ebd4ff 100644 --- a/app/Models/User.ts +++ b/app/Models/User.ts @@ -1,10 +1,9 @@ import { DateTime } from 'luxon'; -import { withAuthFinder } from '@adonisjs/auth'; -import { column, beforeSave, manyToMany, hasMany } from '@adonisjs/lucid/orm'; +import { withAuthFinder } from '@adonisjs/auth/mixins/lucid' +import { column, manyToMany, hasMany } from '@adonisjs/lucid/orm'; import hash from '@adonisjs/core/services/hash'; import Role from './Role.js'; import db from '@adonisjs/lucid/services/db'; -// import Config from '@ioc:Adonis/Core/Config'; import config from '@adonisjs/core/services/config'; import Dataset from './Dataset.js'; import BaseModel from './BaseModel.js'; @@ -84,12 +83,12 @@ export default class User extends compose(BaseModel, AuthFinder) { // }) // public totp_secret: HasOne; - @beforeSave() - public static async hashPassword(user: User) { - if (user.$dirty.password) { - user.password = await hash.use('laravel').make(user.password); - } - } + // @beforeSave() + // public static async hashPassword(user: User) { + // if (user.$dirty.password) { + // user.password = await hash.use('laravel').make(user.password); + // } + // } public get isTwoFactorEnabled(): boolean { return Boolean(this?.twoFactorSecret && this.state == TotpState.STATE_ENABLED); diff --git a/app/Services/TwoFactorAuthProvider.ts b/app/services/TwoFactorAuthProvider.ts similarity index 100% rename from app/Services/TwoFactorAuthProvider.ts rename to app/services/TwoFactorAuthProvider.ts diff --git a/app/services/drive.ts b/app/services/drive.ts new file mode 100644 index 0000000..0aa58b2 --- /dev/null +++ b/app/services/drive.ts @@ -0,0 +1,13 @@ +// import app from './app.js'; +import DriveManager from "#providers/drive/src/drive_manager"; +import app from "@adonisjs/core/services/app"; + +let drive: DriveManager; +/** + * Returns a singleton instance of the router class from + * the container + */ +await app.booted(async () => { + drive = await app.container.make(DriveManager); +}); +export { drive as default }; \ No newline at end of file diff --git a/commands/IndexDatasets.ts b/commands/IndexDatasets.ts index a87edfd..8d2273e 100644 --- a/commands/IndexDatasets.ts +++ b/commands/IndexDatasets.ts @@ -9,26 +9,33 @@ import { Client } from '@opensearch-project/opensearch'; import { getDomain } from '#app/Utils/utility-functions'; import { BaseCommand, flags } from '@adonisjs/core/ace'; import { CommandOptions } from '@adonisjs/core/types/ace'; +import env from '#start/env'; +// import db from '@adonisjs/lucid/services/db'; +// import { default as Dataset } from '#app/Models/Dataset'; -const opensearchNode = process.env.OPENSEARCH_HOST || 'localhost'; +const opensearchNode = env.get('OPENSEARCH_HOST', 'localhost'); const client = new Client({ node: `http://${opensearchNode}` }); // replace with your OpenSearch endpoint export default class IndexDatasets extends BaseCommand { static commandName = 'index:datasets'; static description = 'Index datasets based on publish_id'; + public static needsApplication = true; + @flags.number({ alias: 'p' }) public publish_id: number; - static options: CommandOptions = { - loadApp: true, + public static options: CommandOptions = { + startApp: true, staysAlive: false, }; + async run() { this.logger.info('Hello world!'); - const { default: Dataset } = await import('#app/Models/Dataset'); - const datasets = await Dataset.query().where('server_state', 'published').exec(); //this.getDatasets(); + // const { default: Dataset } = await import('#app/Models/Dataset'); + // const datasets = await Dataset.query().where('server_state', 'published').exec(); //this.getDatasets(); + const datasets = await this.getDatasets(); const proc = readFileSync('public/assets2/solr.sef.json'); const index_name = 'tethys-records'; @@ -40,15 +47,19 @@ export default class IndexDatasets extends BaseCommand { } } - // private async getDatasets(): Promise { - // // const { default: Dataset } = await import('#app/Models/Dataset'); - // // const Dataset = (await import('#app/Models/Dataset')).default - // const query = Dataset.query().where('server_state', 'published'); - // if (this.publish_id) { - // query.where('publish_id', this.publish_id); - // } - // return await query; - // } + private async getDatasets(): Promise { + // const { default: Dataset } = await import('#app/Models/Dataset'); + // const Dataset = (await import('#app/Models/Dataset')).default + // const Dataset = ( + // await this.app.container.make('#app/Models/Dataset') + // ).default; + // const query: ModelQueryBuilder = db.from(Dataset); + const query = Dataset.query().preload('xmlCache').where('server_state', 'published'); + if (this.publish_id) { + query.where('publish_id', this.publish_id); + } + return await query.exec(); + } private async indexDocument(dataset: Dataset, index_name: string, proc: Buffer): Promise { try { diff --git a/commands/index_test.ts b/commands/index_test.ts index 67519fb..2c84d9d 100644 --- a/commands/index_test.ts +++ b/commands/index_test.ts @@ -1,13 +1,13 @@ -import { BaseCommand } from '@adonisjs/core/ace' -import type { CommandOptions } from '@adonisjs/core/types/ace' +import { BaseCommand } from '@adonisjs/core/ace'; +import type { CommandOptions } from '@adonisjs/core/types/ace'; export default class IndexTest extends BaseCommand { - static commandName = 'index:test' - static description = '' + static commandName = 'index:test'; + static description = ''; - static options: CommandOptions = {} + static options: CommandOptions = {}; - async run() { - this.logger.info('Hello world from "IndexTest"') - } -} \ No newline at end of file + async run() { + this.logger.info('Hello world from "IndexTest"'); + } +} diff --git a/config/drive.ts b/config/drive.ts index 54afb27..5679c62 100644 --- a/config/drive.ts +++ b/config/drive.ts @@ -4,10 +4,10 @@ * Feel free to let us know via PR, if you find something broken in this config * file. */ - +import { defineConfig } from '#providers/drive/src/types/define_config'; import env from '#start/env'; // import { driveConfig } from '@adonisjs/core/build/config'; -import { driveConfig } from "@adonisjs/drive/build/config.js"; +// import { driveConfig } from "@adonisjs/drive/build/config.js"; // import Application from '@ioc:Adonis/Core/Application'; /* @@ -19,7 +19,7 @@ import { driveConfig } from "@adonisjs/drive/build/config.js"; | defined inside the `contracts` directory. | */ -export default driveConfig({ +export default defineConfig({ /* |-------------------------------------------------------------------------- | Default disk diff --git a/config/inertia.ts b/config/inertia.ts index dcfa86d..16f6dc0 100644 --- a/config/inertia.ts +++ b/config/inertia.ts @@ -11,22 +11,22 @@ export default defineConfig({ * Data that should be shared with all rendered pages */ sharedData: { - errors: (ctx) => ctx.session.flashMessages.get('errors'), + errors: (ctx) => ctx.session?.flashMessages.get('errors'), user_id: (ctx) => { - return ctx.session.flashMessages.get('user_id'); + return ctx.session?.flashMessages.get('user_id'); }, flash: (ctx) => { return { - message: ctx.session.flashMessages.get('message'), - warning: ctx.session.flashMessages.get('warning'), + message: ctx.session?.flashMessages.get('message'), + warning: ctx.session?.flashMessages.get('warning'), }; }, // params: ({ params }) => params, authUser: async ({ auth }: HttpContext) => { - if (auth.user) { + if (auth?.user) { await auth.user.load('roles'); return auth.user; // { @@ -38,6 +38,14 @@ export default defineConfig({ } }, }, + + /** + * Options for the server-side rendering + */ + ssr: { + enabled: false, + entrypoint: 'inertia/app/ssr.ts', + }, }); // import { InertiaConfig } from '@ioc:EidelLev/Inertia'; diff --git a/config/oai.ts b/config/oai.ts index b63ee99..22574bf 100644 --- a/config/oai.ts +++ b/config/oai.ts @@ -7,8 +7,8 @@ interface OaiConfig { } const config: OaiConfig = { max: { - listidentifiers: parseInt(env.get('OAI_LIST_SIZE', 100), 10), - listrecords: parseInt(env.get('OAI_LIST_SIZE', 100), 10), + listidentifiers: env.get('OAI_LIST_SIZE', 100), + listrecords: env.get('OAI_LIST_SIZE', 100), }, workspacePath: 'workspace', redis: { diff --git a/package-lock.json b/package-lock.json index 1ae4fad..02344d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,6 +34,7 @@ "dayjs": "^1.11.7", "edge.js": "^6.0.1", "focus-trap": "^7.5.4", + "fs-extra": "^11.2.0", "http-status-codes": "^2.2.0", "leaflet": "^1.9.3", "luxon": "^3.2.1", @@ -86,7 +87,7 @@ "naive-ui": "^2.35.0", "numeral": "^2.0.6", "pinia": "^2.0.30", - "pino-pretty": "^10.3.1", + "pino-pretty": "^11.0.0", "postcss-loader": "^7.3.0", "prettier": "^3.0.0", "supertest": "^6.3.3", @@ -180,44 +181,44 @@ } }, "node_modules/@adonisjs/assembler": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-7.2.3.tgz", - "integrity": "sha512-+qmqukeksDs08YYuydmroNX/HqLUXNC9odgdkfFSA0ivNcMWDjOp+jQYHECHwNqQfVOeSL+MLu/UQvJMq2mg4A==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-7.5.1.tgz", + "integrity": "sha512-ggVicFJWOpGKl+Aye1qx/3Z6lkwxj3z7Em0zqgBD+iukjYLUYfVo0J8+7h44cI5+h49rT6xwlbhPKqV2QlDjtw==", "devOptional": true, "dependencies": { - "@adonisjs/env": "^5.0.1", - "@antfu/install-pkg": "^0.3.1", - "@poppinss/chokidar-ts": "^4.1.3", - "@poppinss/cliui": "^6.3.0", - "@poppinss/hooks": "^7.2.2", - "@poppinss/utils": "^6.7.2", - "cpy": "^11.0.0", - "dedent": "^1.5.1", + "@adonisjs/env": "^6.0.0", + "@antfu/install-pkg": "^0.3.2", + "@poppinss/chokidar-ts": "^4.1.4", + "@poppinss/cliui": "^6.4.1", + "@poppinss/hooks": "^7.2.3", + "@poppinss/utils": "^6.7.3", + "cpy": "^11.0.1", + "dedent": "^1.5.3", "execa": "^8.0.1", "fast-glob": "^3.3.2", - "get-port": "^7.0.0", + "get-port": "^7.1.0", "junk": "^4.0.1", - "picomatch": "^3.0.1", + "picomatch": "^4.0.2", "pretty-hrtime": "^1.0.3", "slash": "^5.1.0", - "ts-morph": "^21.0.1" + "ts-morph": "^22.0.0" }, "engines": { - "node": ">=18.16.0" + "node": ">=20.6.0" }, "peerDependencies": { "typescript": "^4.0.0 || ^5.0.0" } }, "node_modules/@adonisjs/assembler/node_modules/@adonisjs/env": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-5.0.1.tgz", - "integrity": "sha512-jka5D+LHjG0Cuy1IpuOv7NfO5Pu4SZ41UzX5csPeXzBIWyuD9as+HphxctHZpsD2KZ97EuSbVJv6zzxJfZ4Edg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-6.0.1.tgz", + "integrity": "sha512-oET3fKhgrz4j7qRIMb3oEWb4AZfUIOAT9whaBiX0YYrxG0um5GlP4/tE6Tm0EDM2JK5D+0atdL/VIv32MFDq0Q==", "devOptional": true, "dependencies": { - "@poppinss/utils": "^6.7.1", + "@poppinss/utils": "^6.7.3", "@poppinss/validator-lite": "^1.0.3", - "dotenv": "^16.3.2", + "dotenv": "^16.4.5", "split-lines": "^3.0.0" }, "engines": { @@ -225,23 +226,23 @@ } }, "node_modules/@adonisjs/auth": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-9.1.1.tgz", - "integrity": "sha512-gusUQT/9xWYZvdOzHQeqFlI1WDsxi0DIHxjkCNcExwLHpCwBvJ2+VItQ5+dBx5Aryi7Szm2C4od/vg08f//A5g==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-9.2.0.tgz", + "integrity": "sha512-t3XQibKzyQU+FTodpwc6wEBBk5PRfxvVi8uKKqjHzEiijIcsMMnmQdKPMztUdxS3HlbdaZvAvPUHFSBx+KMfpg==", "dependencies": { - "@adonisjs/presets": "^2.2.3", + "@adonisjs/presets": "^2.4.0", "basic-auth": "^2.0.1" }, "engines": { "node": ">=18.16.0" }, "peerDependencies": { - "@adonisjs/core": "^6.2.1", - "@adonisjs/lucid": "^20.1.0", - "@adonisjs/session": "^7.1.1", - "@japa/api-client": "^2.0.2", - "@japa/browser-client": "^2.0.2", - "@japa/plugin-adonisjs": "^3.0.0" + "@adonisjs/core": "^6.5.0", + "@adonisjs/lucid": "^20.5.1", + "@adonisjs/session": "^7.3.0", + "@japa/api-client": "^2.0.3", + "@japa/browser-client": "^2.0.3", + "@japa/plugin-adonisjs": "^3.0.1" }, "peerDependenciesMeta": { "@adonisjs/lucid": { @@ -305,27 +306,27 @@ } }, "node_modules/@adonisjs/core": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-6.3.1.tgz", - "integrity": "sha512-ob4GDlGfou8wycfkwqX3ZQYkrQPBy9TcLbDaJMwC/6rkck/gPVaxaYxeB5VmQGPE1e2+CsuykdF6fJH4DrLQ9Q==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-6.8.0.tgz", + "integrity": "sha512-aIdnmAk19i1xThRQPF1qAaI2xDoSH9TBZnQS1BhbaCZ8Dy8w98uszVLPzh+Bq0LWGZDU0KGE1Q1HfoC2vGEcAw==", "dependencies": { "@adonisjs/ace": "^13.0.0", - "@adonisjs/application": "^8.1.0", - "@adonisjs/bodyparser": "^10.0.1", - "@adonisjs/config": "^5.0.1", - "@adonisjs/encryption": "^6.0.1", - "@adonisjs/env": "^5.0.1", - "@adonisjs/events": "^9.0.1", - "@adonisjs/fold": "^10.0.1", - "@adonisjs/hash": "^9.0.1", - "@adonisjs/http-server": "^7.1.0", - "@adonisjs/logger": "^6.0.2", + "@adonisjs/application": "^8.2.2", + "@adonisjs/bodyparser": "^10.0.2", + "@adonisjs/config": "^5.0.2", + "@adonisjs/encryption": "^6.0.2", + "@adonisjs/env": "^6.0.1", + "@adonisjs/events": "^9.0.2", + "@adonisjs/fold": "^10.1.2", + "@adonisjs/hash": "^9.0.3", + "@adonisjs/http-server": "^7.2.2", + "@adonisjs/logger": "^6.0.3", "@adonisjs/repl": "^4.0.1", - "@antfu/install-pkg": "^0.3.1", + "@antfu/install-pkg": "^0.3.2", "@paralleldrive/cuid2": "^2.2.2", - "@poppinss/macroable": "^1.0.1", - "@poppinss/utils": "^6.7.2", - "@sindresorhus/is": "^6.1.0", + "@poppinss/macroable": "^1.0.2", + "@poppinss/utils": "^6.7.3", + "@sindresorhus/is": "^6.2.0", "@types/he": "^1.2.3", "he": "^1.2.0", "parse-imports": "^1.1.2", @@ -341,9 +342,9 @@ "node": ">=20.6.0" }, "peerDependencies": { - "@adonisjs/assembler": "^7.1.0", - "@vinejs/vine": "^1.7.0", - "argon2": "^0.31.1", + "@adonisjs/assembler": "^7.5.0", + "@vinejs/vine": "^2.0.0", + "argon2": "^0.31.2 || ^0.40.0", "bcrypt": "^5.1.1", "edge.js": "^6.0.1" }, @@ -366,13 +367,13 @@ } }, "node_modules/@adonisjs/core/node_modules/@adonisjs/application": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-8.1.0.tgz", - "integrity": "sha512-Y1O2o+21ffdp6z4WnM0FIMZu+RqwaY+zVmV7a4nOGx/X634dxuDNQ28xV+gWyFA7xBojD0QPYI2FAnKrzxsVDw==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-8.2.2.tgz", + "integrity": "sha512-A9coHoflCXsIy7C1hXPXu1/i3haeH22M7jtXhANcsHfQm0VChA+jcfR5kLxFseuCWdgy+APTUHvjqpBscTXdsg==", "dependencies": { - "@poppinss/hooks": "^7.2.2", - "@poppinss/macroable": "^1.0.1", - "@poppinss/utils": "^6.7.1", + "@poppinss/hooks": "^7.2.3", + "@poppinss/macroable": "^1.0.2", + "@poppinss/utils": "^6.7.3", "glob-parent": "^6.0.2", "tempura": "^0.4.0" }, @@ -385,20 +386,20 @@ } }, "node_modules/@adonisjs/core/node_modules/@adonisjs/bodyparser": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-10.0.1.tgz", - "integrity": "sha512-Q5NvSjqSt8yNN/CObu7pRDgMRpFVnPHL1CReBK1Y9ZdPpSCJ+/n/GpOYsUh+ChhFMjRNdFy4rDk3RJ2QUOTHIQ==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-10.0.2.tgz", + "integrity": "sha512-dkbn+DK5B1dODTwk5367gHPhaD4ZIoGon/jvq47iX2cnHjk3a0SyQrBEjoFhnrNkVOJZ76I3OJ3oixqgMcE+yA==", "dependencies": { "@paralleldrive/cuid2": "^2.2.2", - "@poppinss/macroable": "^1.0.1", + "@poppinss/macroable": "^1.0.2", "@poppinss/multiparty": "^2.0.1", - "@poppinss/utils": "^6.7.1", - "@types/qs": "^6.9.11", + "@poppinss/utils": "^6.7.3", + "@types/qs": "^6.9.15", "bytes": "^3.1.2", "file-type": "^19.0.0", "inflation": "^2.1.0", "media-typer": "^1.1.0", - "qs": "^6.11.1", + "qs": "^6.12.1", "raw-body": "^2.5.2" }, "engines": { @@ -409,35 +410,35 @@ } }, "node_modules/@adonisjs/core/node_modules/@adonisjs/config": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-5.0.1.tgz", - "integrity": "sha512-hyednyDBGsoBthbcf7S8r8M68tS8Y7rnIBPIZKHhQikXOXgf/E9IkQWgWjJR9+ODbaiMY69roJYR5L9dElre7w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-5.0.2.tgz", + "integrity": "sha512-NXjFqDHNGRTZ1EnA4zr20GFEt7qw/JvZ4ZV8/PzFyVc7dPoFprpoyE3bw7kmlKHhcQdBbF7YXCGB4q+HQUnqiQ==", "dependencies": { - "@poppinss/utils": "^6.7.1" + "@poppinss/utils": "^6.7.3" }, "engines": { "node": ">=18.16.0" } }, "node_modules/@adonisjs/core/node_modules/@adonisjs/encryption": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@adonisjs/encryption/-/encryption-6.0.1.tgz", - "integrity": "sha512-9Vz2xU8cryCvRgQDri+4khZIeRDM6yJFe35PdR6xyhgQaT91Qn7fJ2oAcg3yVuNp3WKxg6PTRcxva+ZTfdP3SA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@adonisjs/encryption/-/encryption-6.0.2.tgz", + "integrity": "sha512-37XqVPsZi6zXMbC0Me1/qlcTP0uE+KAtYOFx7D7Tvtz377NL/6gqxqgpW/BopgOSD+CVDXjzO/Wx3M2UrbkJRQ==", "dependencies": { - "@poppinss/utils": "^6.7.1" + "@poppinss/utils": "^6.7.3" }, "engines": { "node": ">=18.16.0" } }, "node_modules/@adonisjs/core/node_modules/@adonisjs/env": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-5.0.1.tgz", - "integrity": "sha512-jka5D+LHjG0Cuy1IpuOv7NfO5Pu4SZ41UzX5csPeXzBIWyuD9as+HphxctHZpsD2KZ97EuSbVJv6zzxJfZ4Edg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-6.0.1.tgz", + "integrity": "sha512-oET3fKhgrz4j7qRIMb3oEWb4AZfUIOAT9whaBiX0YYrxG0um5GlP4/tE6Tm0EDM2JK5D+0atdL/VIv32MFDq0Q==", "dependencies": { - "@poppinss/utils": "^6.7.1", + "@poppinss/utils": "^6.7.3", "@poppinss/validator-lite": "^1.0.3", - "dotenv": "^16.3.2", + "dotenv": "^16.4.5", "split-lines": "^3.0.0" }, "engines": { @@ -445,13 +446,13 @@ } }, "node_modules/@adonisjs/core/node_modules/@adonisjs/events": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-9.0.1.tgz", - "integrity": "sha512-1tOwBrwrJLE7zLB+/KzbAzBUq8IeQMLdqUFVC0d5A+Bq0ko/kn4O2xoRAybhrG9NHxQtFoSrOx+Ynb/8d+YffQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-9.0.2.tgz", + "integrity": "sha512-qZn2e9V9C8tF4MNqEWv5JGxMG7gcHSJM8RncGpjuJ4cwFwd2jF4xrN6wkCprTVwoyZSxNS0Cp9NkAonySjG5vg==", "dependencies": { - "@poppinss/utils": "^6.7.1", - "@sindresorhus/is": "^6.1.0", - "emittery": "^1.0.1" + "@poppinss/utils": "^6.7.3", + "@sindresorhus/is": "^6.2.0", + "emittery": "^1.0.3" }, "engines": { "node": ">=18.16.0" @@ -462,38 +463,38 @@ } }, "node_modules/@adonisjs/core/node_modules/@adonisjs/fold": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-10.0.1.tgz", - "integrity": "sha512-3SqwopxFtvy3WDs1Z3ZOdjS1M3JfTX8r0dCEQ+ascXhiLYwmv0LCoCY3vcmwVL+wpuyOG1qkKWkjZP1sB3+/bA==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-10.1.2.tgz", + "integrity": "sha512-zNlPUpX0HdNLP9lateEqQ+frO+u0Ecs1OW3eS+8CbPTKgfPP1fFP9cZeuYFJK0FwQIFdP1rLVkpUBZAR//5Bfw==", "dependencies": { - "@poppinss/utils": "^6.7.1" + "@poppinss/utils": "^6.7.3" }, "engines": { "node": ">=18.16.0" } }, "node_modules/@adonisjs/core/node_modules/@adonisjs/http-server": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-7.1.0.tgz", - "integrity": "sha512-oJBaPWo5CoopWpd62uVqylNePvF6s9qDuXqRl4av1cc3TY8+WIuFsXDrHwZDfISx/gOV/SeVAmnMvAh43nV/XA==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-7.2.2.tgz", + "integrity": "sha512-w8NafZy+27gaVSEE494KbLoGRdCBy9y7V5/666ZLCzl4uKBWuzv2FQorQkGoUss1dAdREtRqkUvMbKF1LrAK3Q==", "dependencies": { "@paralleldrive/cuid2": "^2.2.2", - "@poppinss/macroable": "^1.0.1", + "@poppinss/macroable": "^1.0.2", "@poppinss/matchit": "^3.1.2", - "@poppinss/middleware": "^3.2.2", - "@poppinss/utils": "^6.7.1", - "@sindresorhus/is": "^6.1.0", + "@poppinss/middleware": "^3.2.3", + "@poppinss/utils": "^6.7.3", + "@sindresorhus/is": "^6.2.0", "accepts": "^1.3.8", "content-disposition": "^0.5.4", "cookie": "^0.6.0", "destroy": "^1.2.0", - "encodeurl": "^1.0.2", + "encodeurl": "^2.0.0", "etag": "^1.8.1", "fresh": "^0.5.2", "mime-types": "^2.1.35", "on-finished": "^2.4.1", "proxy-addr": "^2.0.7", - "qs": "^6.11.2", + "qs": "^6.12.1", "tmp-cache": "^1.1.0", "type-is": "^1.6.18", "vary": "^1.1.2", @@ -511,13 +512,13 @@ } }, "node_modules/@adonisjs/core/node_modules/@adonisjs/logger": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-6.0.2.tgz", - "integrity": "sha512-F0bvZbuVYbjf47tQRoTvNuns1sKZ8LX6G3FqP4TGiOK67yNTnLRBbmVu8DnpEKn6i2WjVlxOpNe9HIbpbm5MPw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-6.0.3.tgz", + "integrity": "sha512-CKxIpWBEX/e6duRE6qq8GJ90NQC8q26Q0aSuj+bUO6X4mgcgawxhciJTfpxmJNj9KEUmNAeHOn0hSpTITdk8Lg==", "dependencies": { - "@poppinss/utils": "^6.7.1", + "@poppinss/utils": "^6.7.3", "abstract-logging": "^2.0.1", - "pino": "^8.17.2" + "pino": "^8.20.0" }, "engines": { "node": ">=18.16.0" @@ -531,6 +532,14 @@ "node": ">= 0.6" } }, + "node_modules/@adonisjs/core/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/@adonisjs/core/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -551,14 +560,14 @@ } }, "node_modules/@adonisjs/core/node_modules/pino": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.19.0.tgz", - "integrity": "sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.20.0.tgz", + "integrity": "sha512-uhIfMj5TVp+WynVASaVEJFTncTUe4dHBq6CWplu/vBgvGHhvBvQfxz+vcOrnnBQdORH3izaGEurLfNlq3YxdFQ==", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.1.0", + "pino-abstract-transport": "^1.1.0", "pino-std-serializers": "^6.0.0", "process-warning": "^3.0.0", "quick-format-unescaped": "^4.0.3", @@ -577,9 +586,9 @@ "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" }, "node_modules/@adonisjs/core/node_modules/sonic-boom": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.0.tgz", - "integrity": "sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", "dependencies": { "atomic-sleep": "^1.0.0" } @@ -636,6 +645,19 @@ "truncatise": "0.0.8" } }, + "node_modules/@adonisjs/drive/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@adonisjs/drive/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -793,18 +815,18 @@ } }, "node_modules/@adonisjs/hash": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-9.0.1.tgz", - "integrity": "sha512-K1jHQWr7ovXf6zHoo+70fmAt33op50GVygZd6ilvyQfCCEPx3lRqGoxqmRdgzDW5eCAfxCwy+nH7zxf8BhX4GQ==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-9.0.3.tgz", + "integrity": "sha512-03TWe0moQ+bSA3YNzL0kSXxaMGlT5owLgOtPy1UgPN3TN2mDnThI0futh2xSUZZxnLqIy7ghlvn4VfuSWDhqPQ==", "dependencies": { "@phc/format": "^1.0.0", - "@poppinss/utils": "^6.7.1" + "@poppinss/utils": "^6.7.3" }, "engines": { - "node": ">=18.16.0" + "node": ">=20.6.0" }, "peerDependencies": { - "argon2": "^0.31.2", + "argon2": "^0.31.2 || ^0.40.0", "bcrypt": "^5.1.1" }, "peerDependenciesMeta": { @@ -884,14 +906,15 @@ } }, "node_modules/@adonisjs/inertia": { - "version": "1.0.0-19", - "resolved": "https://registry.npmjs.org/@adonisjs/inertia/-/inertia-1.0.0-19.tgz", - "integrity": "sha512-P/09btPJQasjme0SpH1Q34H0ZrcoOacyIukm3iiRBGx60e5roS/zLHP+9ggiyw7TvxJ6ptKscsVMJYzkH3lS6A==", + "version": "1.0.0-25", + "resolved": "https://registry.npmjs.org/@adonisjs/inertia/-/inertia-1.0.0-25.tgz", + "integrity": "sha512-jf9sjpMibx4PdFYpdnNT4cqsjU5ICaHAGlGEt5Wq1vKqYZ/Qnt+kAVsTWf+K6qBVVfIXL+EtIgNz65VFlLE1dw==", "dependencies": { "@poppinss/utils": "^6.7.2", + "@tuyau/utils": "^0.0.1", "crc-32": "^1.2.2", "edge-error": "^4.0.1", - "html-entities": "^2.4.0", + "html-entities": "^2.5.2", "locate-path": "^7.2.0", "qs": "^6.11.2" }, @@ -901,7 +924,7 @@ "peerDependencies": { "@adonisjs/core": "^6.2.0", "@adonisjs/session": "^7.0.0", - "@adonisjs/vite": "^3.0.0-6", + "@adonisjs/vite": "^3.0.0-8", "@japa/api-client": "^2.0.0", "edge.js": "^6.0.0" }, @@ -958,9 +981,9 @@ } }, "node_modules/@adonisjs/lucid": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-20.4.0.tgz", - "integrity": "sha512-q4gwLeQ4ryWTLhqOUCdDUT5D1MHiErfG9EAQw1sTQYuEzFBo4lu31cq59DWPdL6cuId9ucZ8CMQPiYEEPuAakg==", + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-20.5.1.tgz", + "integrity": "sha512-PXzeRTbkPFhf5ttRv6LbKYbtXXWrYUWxrVmXecHvNbrKZSlP7XQOm45Pgk75lStAXBkEqxgvlC9PRHgM+Bdrog==", "dependencies": { "@adonisjs/presets": "^2.2.5", "@faker-js/faker": "^8.4.1", @@ -995,15 +1018,15 @@ } }, "node_modules/@adonisjs/presets": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@adonisjs/presets/-/presets-2.2.5.tgz", - "integrity": "sha512-VgVU0b4WkRAAvn4GKlDAicfneu9s1StcviF5JbTwFkvzrz2AR3RIPzES2DeLvQTYXRq67RIxJWyGEKlJN7WTwA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@adonisjs/presets/-/presets-2.4.0.tgz", + "integrity": "sha512-pgv0dxWCg9ktbPBHCBxVnxP8DXYV6xgDWWwctcjGuXCFAkP1BN5CamTfAiQFftF4Je0G7giyK9jz/TOoBurG0g==", "dependencies": { - "@poppinss/utils": "^6.7.1" + "@poppinss/utils": "^6.7.3" }, "peerDependencies": { - "@adonisjs/assembler": "^7.0.0", - "@adonisjs/core": "^6.2.0" + "@adonisjs/assembler": "^7.4.0", + "@adonisjs/core": "^6.5.0" }, "peerDependenciesMeta": { "@adonisjs/assembler": { @@ -1087,21 +1110,22 @@ } }, "node_modules/@adonisjs/session": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@adonisjs/session/-/session-7.1.1.tgz", - "integrity": "sha512-rv5lF6uEaAT3kujAEbwpVJuTfPcskjXlM8bt8OV2V6eGMQHGVczV3bErvQjW5ouHqyZiotKkCV2+7roGJdDaWw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@adonisjs/session/-/session-7.4.0.tgz", + "integrity": "sha512-RPlCZhTbIM5qrbH/c0tYrZlXPHknwdV3wNzI0yYr9Nsj9JCNMzAMPe8k8c+is1hp0wLNbVM+TdNsDPpSlRhk4A==", "dependencies": { - "@poppinss/utils": "^6.7.1" + "@poppinss/macroable": "^1.0.2", + "@poppinss/utils": "^6.7.3" }, "engines": { "node": ">=18.16.0" }, "peerDependencies": { - "@adonisjs/core": "^6.2.0", - "@adonisjs/redis": "^8.0.0", - "@japa/api-client": "^2.0.2", - "@japa/browser-client": "^2.0.2", - "edge.js": "^6.0.1" + "@adonisjs/core": "^6.6.0", + "@adonisjs/redis": "^8.0.1", + "@japa/api-client": "^2.0.3", + "@japa/browser-client": "^2.0.3", + "edge.js": "^6.0.2" }, "peerDependenciesMeta": { "@adonisjs/redis": { @@ -1190,9 +1214,9 @@ } }, "node_modules/@adonisjs/vite": { - "version": "3.0.0-8", - "resolved": "https://registry.npmjs.org/@adonisjs/vite/-/vite-3.0.0-8.tgz", - "integrity": "sha512-CMDBS93s+TwPmAmN1Wsm35duEkcO8baUSkeNPwsXz/OdEP4POMQa+LvUWkqGs+oCxKL/Rhq/w3rJIA/zwX0StQ==", + "version": "3.0.0-11", + "resolved": "https://registry.npmjs.org/@adonisjs/vite/-/vite-3.0.0-11.tgz", + "integrity": "sha512-//Rukit5+XFU+K6TMhoCeRvByhovdWfMV5fro+mQ5GPNibbn111+Dhwkeo8xnc7XNFkp+nw7UM250g94hiOCSQ==", "peer": true, "dependencies": { "@poppinss/utils": "^6.7.2", @@ -1244,9 +1268,9 @@ } }, "node_modules/@antfu/install-pkg": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.3.1.tgz", - "integrity": "sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.3.2.tgz", + "integrity": "sha512-FFYqME8+UHlPnRlX/vn+8cTD4Wo/nG/lzRxpABs3XANBmdJdNImVz3QvjNAE/W3PSCNbG387FOz8o5WelnWOlg==", "dependencies": { "execa": "^8.0.1" }, @@ -1263,42 +1287,42 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", + "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -1324,14 +1348,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", "dev": true, "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -1388,9 +1412,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", - "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", + "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -1398,7 +1422,7 @@ "@babel/helper-function-name": "^7.23.0", "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -1508,12 +1532,12 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1577,13 +1601,13 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { @@ -1630,9 +1654,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1671,13 +1695,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", "dev": true, "dependencies": { "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", + "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0" }, "engines": { @@ -1685,23 +1709,24 @@ } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1709,13 +1734,29 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz", + "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1725,14 +1766,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/plugin-transform-optional-chaining": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -1742,13 +1783,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1775,14 +1816,14 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.0.tgz", - "integrity": "sha512-LiT1RqZWeij7X+wGxCoYh3/3b8nVOX6/7BZ9wiQgAIyjoeQWdROaodJCgT+dwtbjHaz0r7bEbHJzjSbVfcOyjQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.1.tgz", + "integrity": "sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.0", + "@babel/helper-create-class-features-plugin": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-decorators": "^7.24.0" + "@babel/plugin-syntax-decorators": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -1843,9 +1884,9 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.0.tgz", - "integrity": "sha512-MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.1.tgz", + "integrity": "sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" @@ -1882,12 +1923,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1897,12 +1938,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -1936,12 +1977,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2053,12 +2094,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2084,12 +2125,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2099,13 +2140,13 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-remap-async-to-generator": "^7.22.20", "@babel/plugin-syntax-async-generators": "^7.8.4" }, @@ -2117,13 +2158,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { @@ -2134,12 +2175,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2149,12 +2190,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", + "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2164,13 +2205,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2180,13 +2221,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -2197,17 +2238,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", + "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -2219,13 +2260,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2235,12 +2276,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", + "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2250,13 +2291,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2266,12 +2307,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2281,12 +2322,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -2297,13 +2338,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", "dev": true, "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2313,12 +2354,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -2329,12 +2370,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { @@ -2345,14 +2386,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2362,12 +2403,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -2378,12 +2419,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2393,12 +2434,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -2409,12 +2450,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2424,13 +2465,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2440,13 +2481,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-simple-access": "^7.22.5" }, "engines": { @@ -2457,14 +2498,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", - "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { @@ -2475,13 +2516,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2507,12 +2548,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2522,12 +2563,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -2538,12 +2579,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -2554,16 +2595,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", - "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", + "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/plugin-transform-parameters": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -2573,13 +2613,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -2589,12 +2629,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -2605,12 +2645,12 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", + "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -2622,12 +2662,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", + "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2637,13 +2677,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2653,14 +2693,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", + "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -2671,12 +2711,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2686,12 +2726,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "regenerator-transform": "^0.15.2" }, "engines": { @@ -2702,12 +2742,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2717,16 +2757,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", - "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", + "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-module-imports": "^7.24.3", "@babel/helper-plugin-utils": "^7.24.0", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "engines": { @@ -2746,12 +2786,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2761,12 +2801,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { @@ -2777,12 +2817,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2792,12 +2832,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2807,12 +2847,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", + "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2822,15 +2862,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", - "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz", + "integrity": "sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-typescript": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -2840,12 +2880,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2855,13 +2895,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2871,13 +2911,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2887,13 +2927,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" @@ -2903,26 +2943,27 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", - "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz", + "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", + "@babel/compat-data": "^7.24.4", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -2934,58 +2975,58 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.4", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.4", + "@babel/plugin-transform-classes": "^7.24.1", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.1", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.24.0", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.1", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.1", + "@babel/plugin-transform-parameters": "^7.24.1", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.1", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.1", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -3020,16 +3061,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz", + "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-syntax-jsx": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-typescript": "^7.24.1" }, "engines": { "node": ">=6.9.0" @@ -3045,9 +3086,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -3071,18 +3112,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", "@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/parser": "^7.24.1", "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" @@ -3182,9 +3223,9 @@ "dev": true }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", "cpu": [ "ppc64" ], @@ -3198,9 +3239,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", "cpu": [ "arm" ], @@ -3214,9 +3255,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", "cpu": [ "arm64" ], @@ -3230,9 +3271,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", "cpu": [ "x64" ], @@ -3246,9 +3287,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", "cpu": [ "arm64" ], @@ -3262,9 +3303,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", "cpu": [ "x64" ], @@ -3278,9 +3319,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", "cpu": [ "arm64" ], @@ -3294,9 +3335,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", "cpu": [ "x64" ], @@ -3310,9 +3351,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", "cpu": [ "arm" ], @@ -3326,9 +3367,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", "cpu": [ "arm64" ], @@ -3342,9 +3383,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", "cpu": [ "ia32" ], @@ -3358,9 +3399,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", "cpu": [ "loong64" ], @@ -3374,9 +3415,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", "cpu": [ "mips64el" ], @@ -3390,9 +3431,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", "cpu": [ "ppc64" ], @@ -3406,9 +3447,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", "cpu": [ "riscv64" ], @@ -3422,9 +3463,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", "cpu": [ "s390x" ], @@ -3438,9 +3479,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", "cpu": [ "x64" ], @@ -3454,9 +3495,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", "cpu": [ "x64" ], @@ -3470,9 +3511,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", "cpu": [ "x64" ], @@ -3486,9 +3527,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", "cpu": [ "x64" ], @@ -3502,9 +3543,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", "cpu": [ "arm64" ], @@ -3518,9 +3559,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", "cpu": [ "ia32" ], @@ -3534,9 +3575,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", "cpu": [ "x64" ], @@ -3648,14 +3689,14 @@ } }, "node_modules/@fontsource/archivo-black": { - "version": "5.0.19", - "resolved": "https://registry.npmjs.org/@fontsource/archivo-black/-/archivo-black-5.0.19.tgz", - "integrity": "sha512-fIFWXrUHlel/cVEuhMOhhASC3T1fwqDt/dYhJoX11nX7ihFVhWgCo6Wj0EVPL/XACpJSqc46fOMxF/refusG8g==" + "version": "5.0.20", + "resolved": "https://registry.npmjs.org/@fontsource/archivo-black/-/archivo-black-5.0.20.tgz", + "integrity": "sha512-/S16rZqO2l3mOQO2KFO/na2SxWWnwKLG/yx+8jdTJxVWQsvI1ELvHdsaR7VNx6JvG9KMI0xkJ2GgYMX4gA72Vw==" }, "node_modules/@fontsource/inter": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.0.17.tgz", - "integrity": "sha512-2meBGx1kt7u5LwzGc5Sz5rka6ZDrydg6nT3x6Wkt310vHXUchIywrO8pooWMzZdHYcyFY/cv4lEpJZgMD94bCg==" + "version": "5.0.18", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.0.18.tgz", + "integrity": "sha512-YCsoYPTcs713sI7tLtxaPrIhXAXvEetGg5Ry02ivA8qUOb3fQHojbK/X9HLD5OOKvFUNR2Ynkwb1kR1hVKQHpw==" }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", @@ -3685,15 +3726,15 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@inertiajs/core": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.0.15.tgz", - "integrity": "sha512-7h73+manxkpXdSPlVa2uSjo10AbSS0z9Q1jV7r/otqHfTYCNp7JJxHUX4QpKq/3Z88U8bDUe1RRix1o76pyd5Q==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.0.16.tgz", + "integrity": "sha512-j0nS1KwNv2aNSC10u3qfOswhSMcHSURypPlVSimyRrxKSdrLRmPidow06avunkLU6T7nI9oDXt71WOeO3wCLQg==", "dependencies": { "axios": "^1.6.0", "deepmerge": "^4.0.0", @@ -3702,11 +3743,11 @@ } }, "node_modules/@inertiajs/core/node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -3722,11 +3763,11 @@ } }, "node_modules/@inertiajs/vue3": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.0.15.tgz", - "integrity": "sha512-9Im1DAei5OrMDGu3XkVBE45hb5KEyujqGq9D3eE/Va1/NMHF76+SpGUQc+A5cJcBDjo3JG31Fl2R4li7WiIecw==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.0.16.tgz", + "integrity": "sha512-tHQYk9djAVRiXhJKv5T5uB15YmT/0w1iCKl0iiChRfmWtwNkUonezbtb1kHzmsLa3MJtKYaDKPEJh/X1Xfqmvg==", "dependencies": { - "@inertiajs/core": "1.0.15", + "@inertiajs/core": "1.0.16", "lodash.clonedeep": "^4.5.0", "lodash.isequal": "^4.5.0" }, @@ -3836,17 +3877,17 @@ } }, "node_modules/@japa/core": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@japa/core/-/core-9.0.0.tgz", - "integrity": "sha512-BQiS8rd1qiSkz+uTsx+Bfsp+FVeoKpJXMtUse4XDt2cUfDdCnvYkvRnqmR/F/u8ttt71sZ4mHKizGa1Q5MG3DQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@japa/core/-/core-9.0.1.tgz", + "integrity": "sha512-snngJNbvYC92nn+dB69DT2iyosWZLXPRnOp8NJnVEeotkkKAWSmcDqBKw9qq2+MVdshwClvKFVXTxko4MtmlEQ==", "devOptional": true, "dependencies": { - "@poppinss/cliui": "^6.2.2", - "@poppinss/hooks": "^7.2.2", - "@poppinss/macroable": "^1.0.1", + "@poppinss/cliui": "^6.4.1", + "@poppinss/hooks": "^7.2.3", + "@poppinss/macroable": "^1.0.2", "async-retry": "^1.3.3", - "emittery": "^1.0.1", - "string-width": "^7.0.0", + "emittery": "^1.0.3", + "string-width": "^7.1.0", "time-span": "^5.1.0" }, "engines": { @@ -3854,13 +3895,14 @@ } }, "node_modules/@japa/errors-printer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@japa/errors-printer/-/errors-printer-3.0.2.tgz", - "integrity": "sha512-8U4d8umhyg3YNAzQaJoHSULjFdEp/c+xGBwZgpMgIIYvhy3NKU0KvE3TfVAjfKcO8zaLuvh72NlnLSfyP3ooqw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@japa/errors-printer/-/errors-printer-3.0.4.tgz", + "integrity": "sha512-gqBWkc8X6n5y91HH7H8fXyfe3rKV1+YeMNgE/+CY6hXf0/BS7J55s/QldosKEV2ZiWj/WmE6UPZiFH8W873fGw==", "devOptional": true, "dependencies": { - "@poppinss/colors": "^4.1.2", + "@poppinss/colors": "^4.1.3", "jest-diff": "^29.7.0", + "supports-color": "^9.4.0", "youch": "^3.3.3", "youch-terminal": "^2.2.3" }, @@ -3869,19 +3911,19 @@ } }, "node_modules/@japa/plugin-adonisjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@japa/plugin-adonisjs/-/plugin-adonisjs-3.0.0.tgz", - "integrity": "sha512-gw92tnOlNeVuZoI/ysX/AW9AZdACd5cm50Jpa+dUPQ7VJU7J7PQCNGhp3FF98h7czdGvw8KJvszr/grr3SENEA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@japa/plugin-adonisjs/-/plugin-adonisjs-3.0.1.tgz", + "integrity": "sha512-xUZOzfBXSz2sWRoQT+qs+6LZBtWWE+cCBZ3j9ckz6+nPw3VI0nV6yLaX+oud3AY8Zb+BH+pErABBhaovZYv9dA==", "devOptional": true, "engines": { "node": ">=18.16.0" }, "peerDependencies": { - "@adonisjs/core": "^6.2.0", - "@japa/api-client": "^2.0.2", - "@japa/browser-client": "^2.0.2", - "@japa/runner": "^3.1.1", - "playwright": "^1.40.1" + "@adonisjs/core": "^6.5.0", + "@japa/api-client": "^2.0.3", + "@japa/browser-client": "^2.0.3", + "@japa/runner": "^3.1.2", + "playwright": "^1.42.1" }, "peerDependenciesMeta": { "@japa/api-client": { @@ -3896,21 +3938,22 @@ } }, "node_modules/@japa/runner": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@japa/runner/-/runner-3.1.1.tgz", - "integrity": "sha512-DWy16uw2naDMitXGNN0ULURLaVIQY/VBVtxw7rpdA8QL1Q2nCaaqJXufHqS8kO1ZRd0bOtFHMgx2/eYvxkmapA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@japa/runner/-/runner-3.1.4.tgz", + "integrity": "sha512-ShaVZLdYq3GbFwyNiqQMCfdEoNq9vgYC0P6Z9gflqPcSUfOmN5jeJTLrLpChCBM5Sx9kYuAm5Bh6cqv1ZrArkQ==", "devOptional": true, "dependencies": { - "@japa/core": "^9.0.0", - "@japa/errors-printer": "^3.0.2", - "@poppinss/colors": "^4.1.2", - "@poppinss/hooks": "^7.2.2", + "@japa/core": "^9.0.1", + "@japa/errors-printer": "^3.0.4", + "@poppinss/colors": "^4.1.3", + "@poppinss/hooks": "^7.2.3", "fast-glob": "^3.3.2", "find-cache-dir": "^5.0.0", "getopts": "^2.3.0", "ms": "^2.1.3", "serialize-error": "^11.0.3", - "slash": "^5.1.0" + "slash": "^5.1.0", + "supports-color": "^9.4.0" }, "engines": { "node": ">=18.16.0" @@ -4076,9 +4119,9 @@ "dev": true }, "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", "dev": true }, "node_modules/@lukeed/ms": { @@ -4253,9 +4296,9 @@ } }, "node_modules/@opensearch-project/opensearch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@opensearch-project/opensearch/-/opensearch-2.6.0.tgz", - "integrity": "sha512-zgDSa/qUpoEwA+Nxjtv0qtln63M+hS4SVO94R9XjwzJAoqsUiNMjjzF6D6Djq/xJMgCzIYjvBZ5vUlB8/kXwjQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@opensearch-project/opensearch/-/opensearch-2.7.0.tgz", + "integrity": "sha512-ee4XEU0CSwbThGgKcROmQPwG48QjMaMJzJdgUaGqeIeni7YMJqlZ6g4pbPD7iDE19Y1e2/OEzeW54DE/Fyky2g==", "dependencies": { "aws4": "^1.11.0", "debug": "^4.3.1", @@ -4307,15 +4350,15 @@ } }, "node_modules/@poppinss/chokidar-ts": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@poppinss/chokidar-ts/-/chokidar-ts-4.1.3.tgz", - "integrity": "sha512-v5Tx0mxt1fX6+acYKm1ZUhFMlGdcKgO1C8wSPRO/X44LjE0PduHGDDq6ePBrMDyg+EKnUUt3DcU9APRri7zEcA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@poppinss/chokidar-ts/-/chokidar-ts-4.1.4.tgz", + "integrity": "sha512-iX+QSNOo2PAvkv+8ggBkCyv2gZHskJemtsl1PcEbjM7dJOf+n4LSPHAqj4+B0raqZHznXFhKKoQfN1a9j/YuUg==", "devOptional": true, "dependencies": { - "chokidar": "^3.5.3", - "emittery": "^1.0.1", + "chokidar": "^3.6.0", + "emittery": "^1.0.3", "memoize": "^10.0.0", - "picomatch": "^3.0.1", + "picomatch": "^4.0.2", "slash": "^5.1.0" }, "engines": { @@ -4326,13 +4369,13 @@ } }, "node_modules/@poppinss/cliui": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@poppinss/cliui/-/cliui-6.4.0.tgz", - "integrity": "sha512-8exOqpXxjQfJeHORAkbqzsQL2ybjKh22PD2UUq2poBemhxCH5KEe6qqu5nKc4KM3lhXc8QizlPMDxOIP+Pyt/w==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@poppinss/cliui/-/cliui-6.4.1.tgz", + "integrity": "sha512-tdV3QpAfrPFRLPOh98F8QxWBvwYF3ziWGGtpVqfZtFNTFkC7nQnVQlUW55UtQ7rkeMmFohxfDI+2JNWScGJ1jQ==", "dependencies": { - "@poppinss/colors": "^4.1.2", + "@poppinss/colors": "^4.1.3", "cli-boxes": "^3.0.0", - "cli-table3": "^0.6.3", + "cli-table3": "^0.6.4", "cli-truncate": "^4.0.0", "log-update": "^6.0.0", "pretty-hrtime": "^1.0.3", @@ -4346,9 +4389,9 @@ } }, "node_modules/@poppinss/colors": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.2.tgz", - "integrity": "sha512-+qLfhQrdLa7RqJNZmGIc1ERVz2JtMD3kLI41tNfKhQBZt0wiWoYMhP/Tv+eopPnMy3NwANWgDSbqsi+teY1oig==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.3.tgz", + "integrity": "sha512-A0FjJ6x14donWDN3bHAFFjJaPWTwM2PgWT834+bPKVK6Xukf25CscoRqCPYI939a8yuJFX9PYWWnVbUVI0E2Cg==", "dependencies": { "kleur": "^4.1.5" }, @@ -4365,9 +4408,9 @@ } }, "node_modules/@poppinss/hooks": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-7.2.2.tgz", - "integrity": "sha512-EDivPMt9sAUV5kNhH2bvtVjuLvHhQ6SKVP19OjvvcyRalqAa6KqCItJ2qeU8A93s0cr1a28Sytu+KSwsmOY8pg==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-7.2.3.tgz", + "integrity": "sha512-+B7YSazGaCMcoUubwEkCTnpAvJ+Fv7tqgtpu7cm9qt1adEjmXDmaiG76loEnmxAkyHrbZJ5xHGNSD0NwMhLcnA==", "engines": { "node": ">=18.16.0" } @@ -4381,9 +4424,9 @@ } }, "node_modules/@poppinss/macroable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@poppinss/macroable/-/macroable-1.0.1.tgz", - "integrity": "sha512-bO3+rnqGhE+gdx4DOyYjY9jCm2+c5Ncyl2Gmst0w271rIFnsB00btonpdmAqvFNzS8rcas+APGm+47fYMmkpQA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/macroable/-/macroable-1.0.2.tgz", + "integrity": "sha512-xhhEcEvhQC8mP5oOr5hbE4CmUgmw/IPV1jhpGg2xSkzoFrt9i8YVqBQt9744EFesi5F7pBheWozg63RUBM/5JA==", "engines": { "node": ">=18.16.0" } @@ -4402,9 +4445,9 @@ } }, "node_modules/@poppinss/middleware": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@poppinss/middleware/-/middleware-3.2.2.tgz", - "integrity": "sha512-73AJXODpZcfpO3b9Fr4SQNksXtATpUpCAnKgIUVDfZqAsS1gzLGhDfYo/Qi44hH29P8q28MXqmaoYY2oTpdZFQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@poppinss/middleware/-/middleware-3.2.3.tgz", + "integrity": "sha512-orhgQQ99xB4WS0Ln0X89UTlSkFIVT9zfkyvuWsaCb/9wTa0leDf+2GlFi1nVVT0Xdd2i51CXYYAMQkWM4yAp3Q==", "engines": { "node": ">=18.16.0" } @@ -4439,12 +4482,12 @@ ] }, "node_modules/@poppinss/prompts": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-3.1.2.tgz", - "integrity": "sha512-wjAWTZkZz2kH5dVGbEPx9IRxJcIy6Nzn614TdGsn2kzeMI5woPaKWKxrLEQfK/teIxUrOVUmbjcorDohBkIjiw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-3.1.3.tgz", + "integrity": "sha512-lNAcOcvB7YhfaWYIsu8tatF9V61A0SEu8PGpGx9RqTVmImKhLT0AAcRPr/5z4UQMl7SIf5REQKMJhHK50xakYQ==", "dependencies": { - "@poppinss/colors": "^4.1.2", - "@poppinss/utils": "^6.7.0", + "@poppinss/colors": "^4.1.3", + "@poppinss/utils": "^6.7.3", "enquirer": "^2.4.1" }, "engines": { @@ -4452,16 +4495,16 @@ } }, "node_modules/@poppinss/utils": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-6.7.2.tgz", - "integrity": "sha512-C7K0gy7nW0XzlWcuVrSqT1nLQBAddhpgbnvHtYtxFYkS/BdJKzeVz771c80yhLcmrqXoGqZZgjdC7y6Me1L4Tg==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-6.7.3.tgz", + "integrity": "sha512-zQnhVG4Q+n6+V1vrL/TF1Oy8ZcVVGUs49Sj5OBgoari/q42UiG/rht1DRvoeWd9bT1BBDwxO2vcfxj6C0u/Dgg==", "dependencies": { "@lukeed/ms": "^2.0.2", "@types/bytes": "^3.1.4", "@types/pluralize": "^0.0.33", "bytes": "^3.1.2", "case-anything": "^2.1.13", - "flattie": "^1.1.0", + "flattie": "^1.1.1", "pluralize": "^8.0.0", "safe-stable-stringify": "^2.4.3", "secure-json-parse": "^2.7.0", @@ -4540,9 +4583,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.1.tgz", + "integrity": "sha512-92/y0TqNLRYOTXpm6Z7mnpvKAG9P7qmK7yJeRJSdzElNCUnsgbpAsGqerUboYRIQKzgfq4pWu9xVkgpWLfmNsw==", "cpu": [ "arm" ], @@ -4553,9 +4596,9 @@ "peer": true }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.1.tgz", + "integrity": "sha512-ttWB6ZCfRLuDIUiE0yiu5gcqOsYjA5F7kEV1ggHMj20FwLZ8A1FMeahZJFl/pnOmcnD2QL0z4AcDuo27utGU8A==", "cpu": [ "arm64" ], @@ -4566,9 +4609,9 @@ "peer": true }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.1.tgz", + "integrity": "sha512-QLDvPLetbqjHojTGFw9+nuSP3YY/iz2k1cep6crYlr97sS+ZJ0W43b8Z0zC00+lnFZj6JSNxiA4DjboNQMuh1A==", "cpu": [ "arm64" ], @@ -4579,9 +4622,9 @@ "peer": true }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.1.tgz", + "integrity": "sha512-TAUK/D8khRrRIa1KwRzo8JNKk3tcqaeXWdtsiLgA8zmACWwlWLjPCJ4DULGHQrMkeBjp1Cd3Yuwx04lZgFx5Vg==", "cpu": [ "x64" ], @@ -4592,9 +4635,22 @@ "peer": true }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.1.tgz", + "integrity": "sha512-KO+WGZjrh6zyFTD1alIFkfdtxf8B4BC+hqd3kBZHscPLvE5FR/6QKsyuCT0JlERxxYBSUKNUQ/UHyX5uwO1x2A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.1.tgz", + "integrity": "sha512-NqxbllzIB1WoAo4ThUXVtd21iiM5IHMTTXmXySKBLVcZvkU0HIZmatlP7hLzb5yQubcmdIeWmncd2NdsjocEiw==", "cpu": [ "arm" ], @@ -4605,9 +4661,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.1.tgz", + "integrity": "sha512-snma5NvV8y7IECQ5rq0sr0f3UUu+92NVmG/913JXJMcXo84h9ak9TA5UI9Cl2XRM9j3m37QwDBtEYnJzRkSmxA==", "cpu": [ "arm64" ], @@ -4618,9 +4674,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.1.tgz", + "integrity": "sha512-KOvqGprlD84ueivhCi2flvcUwDRD20mAsE3vxQNVEI2Di9tnPGAfEu6UcrSPZbM+jG2w1oSr43hrPo0RNg6GGg==", "cpu": [ "arm64" ], @@ -4630,10 +4686,23 @@ ], "peer": true }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.1.tgz", + "integrity": "sha512-/gsNwtiGLqYwN4vP+EIdUC6Q6LTlpupWqokqIndvZcjn9ig/5P01WyaYCU2wvfL/2Z82jp5kX8c1mDBOvCP3zg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.1.tgz", + "integrity": "sha512-uU8zuGkQfGqfD9w6VRJZI4IuG4JIfNxxJgEmLMAmPVHREKGsxFVfgHy5c6CexQF2vOfgjB33OsET3Vdn2lln9A==", "cpu": [ "riscv64" ], @@ -4643,10 +4712,23 @@ ], "peer": true }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.1.tgz", + "integrity": "sha512-lsjLtDgtcGFEuBP6yrXwkRN5/wKlvUZtfbKZZu0yaoNpiBL4epgnO21osAALIspVRnl4qZgyLFd8xjCYYWgwfw==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.1.tgz", + "integrity": "sha512-N2ZizKhUryqqrMfdCnjhJhZRgv61C6gK+hwVtCIKC8ts8J+go+vqENnGexwg21nHIOvLN5mBM8a7DI2vlyIOPg==", "cpu": [ "x64" ], @@ -4657,9 +4739,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.1.tgz", + "integrity": "sha512-5ICeMxqg66FrOA2AbnBQ2TJVxfvZsKLxmof0ibvPLaYtbsJqnTUtJOofgWb46Gjd4uZcA4rdsp4JCxegzQPqCg==", "cpu": [ "x64" ], @@ -4670,9 +4752,9 @@ "peer": true }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.1.tgz", + "integrity": "sha512-1vIP6Ce02L+qWD7uZYRiFiuAJo3m9kARatWmFSnss0gZnVj2Id7OPUU9gm49JPGasgcR3xMqiH3fqBJ8t00yVg==", "cpu": [ "arm64" ], @@ -4683,9 +4765,9 @@ "peer": true }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.1.tgz", + "integrity": "sha512-Y3M92DcVsT6LoP+wrKpoUWPaazaP1fzbNkp0a0ZSj5Y//+pQVfVe/tQdsYQQy7dwXR30ZfALUIc9PCh9Izir6w==", "cpu": [ "ia32" ], @@ -4696,9 +4778,9 @@ "peer": true }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.1.tgz", + "integrity": "sha512-x0fvpHMuF7fK5r8oZxSi8VYXkrVmRgubXpO/wcf15Lk3xZ4Jvvh5oG+u7Su1776A7XzVKZhD2eRc4t7H50gL3w==", "cpu": [ "x64" ], @@ -4726,9 +4808,9 @@ } }, "node_modules/@swc/core": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.8.tgz", - "integrity": "sha512-uY2RSJcFPgNOEg12RQZL197LZX+MunGiKxsbxmh22VfVxrOYGRvh4mPANFlrD1yb38CgmW1wI6YgIi8LkIwmWg==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.16.tgz", + "integrity": "sha512-Xaf+UBvW6JNuV131uvSNyMXHn+bh6LyKN4tbv7tOUFQpXyz/t9YWRE04emtlUW9Y0qrm/GKFCbY8n3z6BpZbTA==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -4743,16 +4825,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.4.8", - "@swc/core-darwin-x64": "1.4.8", - "@swc/core-linux-arm-gnueabihf": "1.4.8", - "@swc/core-linux-arm64-gnu": "1.4.8", - "@swc/core-linux-arm64-musl": "1.4.8", - "@swc/core-linux-x64-gnu": "1.4.8", - "@swc/core-linux-x64-musl": "1.4.8", - "@swc/core-win32-arm64-msvc": "1.4.8", - "@swc/core-win32-ia32-msvc": "1.4.8", - "@swc/core-win32-x64-msvc": "1.4.8" + "@swc/core-darwin-arm64": "1.4.16", + "@swc/core-darwin-x64": "1.4.16", + "@swc/core-linux-arm-gnueabihf": "1.4.16", + "@swc/core-linux-arm64-gnu": "1.4.16", + "@swc/core-linux-arm64-musl": "1.4.16", + "@swc/core-linux-x64-gnu": "1.4.16", + "@swc/core-linux-x64-musl": "1.4.16", + "@swc/core-win32-arm64-msvc": "1.4.16", + "@swc/core-win32-ia32-msvc": "1.4.16", + "@swc/core-win32-x64-msvc": "1.4.16" }, "peerDependencies": { "@swc/helpers": "^0.5.0" @@ -4764,9 +4846,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.8.tgz", - "integrity": "sha512-hhQCffRTgzpTIbngSnC30vV6IJVTI9FFBF954WEsshsecVoCGFiMwazBbrkLG+RwXENTrMhgeREEFh6R3KRgKQ==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.16.tgz", + "integrity": "sha512-UOCcH1GvjRnnM/LWT6VCGpIk0OhHRq6v1U6QXuPt5wVsgXnXQwnf5k3sG5Cm56hQHDvhRPY6HCsHi/p0oek8oQ==", "cpu": [ "arm64" ], @@ -4780,9 +4862,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.8.tgz", - "integrity": "sha512-P3ZBw8Jr8rKhY/J8d+6WqWriqngGTgHwtFeJ8MIakQJTbdYbFgXSZxcvDiERg3psbGeFXaUaPI0GO6BXv9k/OQ==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.16.tgz", + "integrity": "sha512-t3bgqFoYLWvyVtVL6KkFNCINEoOrIlyggT/kJRgi1y0aXSr0oVgcrQ4ezJpdeahZZ4N+Q6vT3ffM30yIunELNA==", "cpu": [ "x64" ], @@ -4796,9 +4878,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.8.tgz", - "integrity": "sha512-PP9JIJt19bUWhAGcQW6qMwTjZOcMyzkvZa0/LWSlDm0ORYVLmDXUoeQbGD3e0Zju9UiZxyulnpjEN0ZihJgPTA==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.16.tgz", + "integrity": "sha512-DvHuwvEF86YvSd0lwnzVcjOTZ0jcxewIbsN0vc/0fqm9qBdMMjr9ox6VCam1n3yYeRtj4VFgrjeNFksqbUejdQ==", "cpu": [ "arm" ], @@ -4812,9 +4894,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.8.tgz", - "integrity": "sha512-HvEWnwKHkoVUr5iftWirTApFJ13hGzhAY2CMw4lz9lur2m+zhPviRRED0FCI6T95Knpv7+8eUOr98Z7ctrG6DQ==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.16.tgz", + "integrity": "sha512-9Uu5YlPbyCvbidjKtYEsPpyZlu16roOZ5c2tP1vHfnU9bgf5Tz5q5VovSduNxPHx+ed2iC1b1URODHvDzbbDuQ==", "cpu": [ "arm64" ], @@ -4828,9 +4910,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.8.tgz", - "integrity": "sha512-kY8+qa7k/dEeBq9p0Hrta18QnJPpsiJvDQSLNaTIFpdM3aEM9zbkshWz8gaX5VVGUEALowCBUWqmzO4VaqM+2w==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.16.tgz", + "integrity": "sha512-/YZq/qB1CHpeoL0eMzyqK5/tYZn/rzKoCYDviFU4uduSUIJsDJQuQA/skdqUzqbheOXKAd4mnJ1hT04RbJ8FPQ==", "cpu": [ "arm64" ], @@ -4844,9 +4926,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.8.tgz", - "integrity": "sha512-0WWyIw432wpO/zeGblwq4f2YWam4pn8Z/Ig4KzHMgthR/KmiLU3f0Z7eo45eVmq5vcU7Os1zi/Zb65OOt09q/w==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.16.tgz", + "integrity": "sha512-UUjaW5VTngZYDcA8yQlrFmqs1tLi1TxbKlnaJwoNhel9zRQ0yG1YEVGrzTvv4YApSuIiDK18t+Ip927bwucuVQ==", "cpu": [ "x64" ], @@ -4860,9 +4942,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.8.tgz", - "integrity": "sha512-p4yxvVS05rBNCrBaSTa20KK88vOwtg8ifTW7ec/yoab0bD5EwzzB8KbDmLLxE6uziFa0sdjF0dfRDwSZPex37Q==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.16.tgz", + "integrity": "sha512-aFhxPifevDTwEDKPi4eRYWzC0p/WYJeiFkkpNU5Uc7a7M5iMWPAbPFUbHesdlb9Jfqs5c07oyz86u+/HySBNPQ==", "cpu": [ "x64" ], @@ -4876,9 +4958,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.8.tgz", - "integrity": "sha512-jKuXihxAaqUnbFfvPxtmxjdJfs87F1GdBf33il+VUmSyWCP4BE6vW+/ReDAe8sRNsKyrZ3UH1vI5q1n64csBUA==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.16.tgz", + "integrity": "sha512-bTD43MbhIHL2s5QgCwyleaGwl96Gk/scF2TaVKdUe4QlJCDV/YK9h5oIBAp63ckHtE8GHlH4c8dZNBiAXn4Org==", "cpu": [ "arm64" ], @@ -4892,9 +4974,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.8.tgz", - "integrity": "sha512-O0wT4AGHrX8aBeH6c2ADMHgagAJc5Kf6W48U5moyYDAkkVnKvtSc4kGhjWhe1Yl0sI0cpYh2In2FxvYsb44eWw==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.16.tgz", + "integrity": "sha512-/lmZeAN/qV5XbK2SEvi8e2RkIg8FQNYiSA8y2/Zb4gTUMKVO5JMLH0BSWMiIKMstKDPDSxMWgwJaQHF8UMyPmQ==", "cpu": [ "ia32" ], @@ -4908,9 +4990,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.8.tgz", - "integrity": "sha512-C2AYc3A2o+ECciqsJWRgIpp83Vk5EaRzHe7ed/xOWzVd0MsWR+fweEsyOjlmzHfpUxJSi46Ak3/BIZJlhZbXbg==", + "version": "1.4.16", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.16.tgz", + "integrity": "sha512-BPAfFfODWXtUu6SwaTTftDHvcbDyWBSI/oanUeRbQR5vVWkXoQ3cxLTsDluc3H74IqXS5z1Uyoe0vNo2hB1opA==", "cpu": [ "x64" ], @@ -4930,10 +5012,13 @@ "dev": true }, "node_modules/@swc/types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", - "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", + "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } }, "node_modules/@symfony/webpack-encore": { "version": "4.6.1", @@ -5185,9 +5270,9 @@ } }, "node_modules/@ts-morph/common": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.22.0.tgz", - "integrity": "sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.23.0.tgz", + "integrity": "sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==", "devOptional": true, "dependencies": { "fast-glob": "^3.3.2", @@ -5206,9 +5291,9 @@ } }, "node_modules/@ts-morph/common/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "devOptional": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -5236,9 +5321,9 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true }, "node_modules/@tsconfig/node12": { @@ -5259,6 +5344,11 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, + "node_modules/@tuyau/utils": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@tuyau/utils/-/utils-0.0.1.tgz", + "integrity": "sha512-Vi2uT9yuy0jZkaW0c1nMgja266DcIoF+/UK0HGMlTH/FUrmKiQLtu64PKBKZtibkezN4nlw3po4SZKvH37SklA==" + }, "node_modules/@types/bcryptjs": { "version": "2.4.6", "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.6.tgz", @@ -5318,9 +5408,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", - "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", "dev": true, "peer": true, "dependencies": { @@ -5358,9 +5448,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.43", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", - "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", "dev": true, "dependencies": { "@types/node": "*", @@ -5450,9 +5540,9 @@ "dev": true }, "node_modules/@types/leaflet": { - "version": "1.9.8", - "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.8.tgz", - "integrity": "sha512-EXdsL4EhoUtGm2GC2ZYtXn+Fzc6pluVgagvo2VC1RHWToLGlTRwVYoDpqS/7QXa01rmDyBjJk3Catpf60VMkwg==", + "version": "1.9.11", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.11.tgz", + "integrity": "sha512-Cwqw9h+1LVnsuOutOSNHlIE1DBQ9U/0CCLfAkwtkgggrYRwf7SUlyZM0LQzngpwKyvFQbPLCf6hNMzly56pGZw==", "dev": true, "dependencies": { "@types/geojson": "*" @@ -5491,9 +5581,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", - "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dependencies": { "undici-types": "~5.26.4" } @@ -5571,9 +5661,9 @@ } }, "node_modules/@types/qs": { - "version": "6.9.12", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", - "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==" + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" }, "node_modules/@types/range-parser": { "version": "1.2.7", @@ -5613,14 +5703,14 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/sockjs": { @@ -5936,49 +6026,49 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz", - "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.23.tgz", + "integrity": "sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==", "dependencies": { - "@babel/parser": "^7.23.9", - "@vue/shared": "3.4.21", + "@babel/parser": "^7.24.1", + "@vue/shared": "3.4.23", "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", - "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.23.tgz", + "integrity": "sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==", "dependencies": { - "@vue/compiler-core": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-core": "3.4.23", + "@vue/shared": "3.4.23" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz", - "integrity": "sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.23.tgz", + "integrity": "sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==", "dependencies": { - "@babel/parser": "^7.23.9", - "@vue/compiler-core": "3.4.21", - "@vue/compiler-dom": "3.4.21", - "@vue/compiler-ssr": "3.4.21", - "@vue/shared": "3.4.21", + "@babel/parser": "^7.24.1", + "@vue/compiler-core": "3.4.23", + "@vue/compiler-dom": "3.4.23", + "@vue/compiler-ssr": "3.4.23", + "@vue/shared": "3.4.23", "estree-walker": "^2.0.2", - "magic-string": "^0.30.7", - "postcss": "^8.4.35", - "source-map-js": "^1.0.2" + "magic-string": "^0.30.8", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz", - "integrity": "sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.23.tgz", + "integrity": "sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==", "dependencies": { - "@vue/compiler-dom": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-dom": "3.4.23", + "@vue/shared": "3.4.23" } }, "node_modules/@vue/devtools-api": { @@ -5988,48 +6078,48 @@ "dev": true }, "node_modules/@vue/reactivity": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.21.tgz", - "integrity": "sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.23.tgz", + "integrity": "sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==", "dependencies": { - "@vue/shared": "3.4.21" + "@vue/shared": "3.4.23" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.21.tgz", - "integrity": "sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.23.tgz", + "integrity": "sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==", "dependencies": { - "@vue/reactivity": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/reactivity": "3.4.23", + "@vue/shared": "3.4.23" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz", - "integrity": "sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.23.tgz", + "integrity": "sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==", "dependencies": { - "@vue/runtime-core": "3.4.21", - "@vue/shared": "3.4.21", + "@vue/runtime-core": "3.4.23", + "@vue/shared": "3.4.23", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.21.tgz", - "integrity": "sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.23.tgz", + "integrity": "sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==", "dependencies": { - "@vue/compiler-ssr": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-ssr": "3.4.23", + "@vue/shared": "3.4.23" }, "peerDependencies": { - "vue": "3.4.21" + "vue": "3.4.23" } }, "node_modules/@vue/shared": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz", - "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==" + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.23.tgz", + "integrity": "sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==" }, "node_modules/@vue/tsconfig": { "version": "0.4.0", @@ -6444,12 +6534,9 @@ } }, "node_modules/ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", - "dependencies": { - "type-fest": "^3.0.0" - }, + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", "engines": { "node": ">=14.16" }, @@ -6641,9 +6728,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.18", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", - "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "dev": true, "funding": [ { @@ -6661,7 +6748,7 @@ ], "dependencies": { "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001591", + "caniuse-lite": "^1.0.30001599", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -6747,57 +6834,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", + "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@babel/helper-define-polyfill-provider": "^0.6.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -6890,12 +6945,15 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "devOptional": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/body-parser": { @@ -7049,14 +7107,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "devOptional": true }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -7144,9 +7194,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001597", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", - "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", + "version": "1.0.30001612", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz", + "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==", "dev": true, "funding": [ { @@ -7317,11 +7367,11 @@ } }, "node_modules/clamscan": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clamscan/-/clamscan-2.1.2.tgz", - "integrity": "sha512-pcovgLHcrg3l/mI51Kuk0kN++07pSZdBTskISw0UFvsm8UXda8oNCm0eLeODxFg85Mz+k+TtSS9+XPlriJ8/Fg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/clamscan/-/clamscan-2.2.1.tgz", + "integrity": "sha512-ureXxucH9MfkhyR4nsJMWPnwq/mKlSYHB5RtkuqWltgSF06kET/C36iAeJuGiGXIWc1bi1FMMoptysHLkIRA/g==", "engines": { - "node": ">=12.0.0" + "node": ">=16.0.0" } }, "node_modules/classnames": { @@ -7397,9 +7447,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", + "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", "dependencies": { "string-width": "^4.2.0" }, @@ -7560,9 +7610,9 @@ "peer": true }, "node_modules/code-block-writer": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-12.0.0.tgz", - "integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.1.tgz", + "integrity": "sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==", "devOptional": true }, "node_modules/color-convert": { @@ -7819,12 +7869,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", - "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "version": "3.37.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz", + "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==", "dev": true, "dependencies": { - "browserslist": "^4.22.3" + "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", @@ -7933,9 +7983,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", - "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" @@ -7945,16 +7995,16 @@ } }, "node_modules/css-loader": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", - "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.4", - "postcss-modules-scope": "^3.1.1", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.5.4" @@ -8123,12 +8173,12 @@ } }, "node_modules/cssnano": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.0.tgz", - "integrity": "sha512-e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", "dev": true, "dependencies": { - "cssnano-preset-default": "^6.1.0", + "cssnano-preset-default": "^6.1.2", "lilconfig": "^3.1.1" }, "engines": { @@ -8143,13 +8193,13 @@ } }, "node_modules/cssnano-preset-default": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.0.tgz", - "integrity": "sha512-4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", "dev": true, "dependencies": { "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.1.1", + "css-declaration-sorter": "^7.2.0", "cssnano-utils": "^4.0.2", "postcss-calc": "^9.0.1", "postcss-colormin": "^6.1.0", @@ -8158,12 +8208,12 @@ "postcss-discard-duplicates": "^6.0.3", "postcss-discard-empty": "^6.0.3", "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.4", - "postcss-merge-rules": "^6.1.0", - "postcss-minify-font-values": "^6.0.3", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", "postcss-minify-gradients": "^6.0.3", "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.3", + "postcss-minify-selectors": "^6.0.4", "postcss-normalize-charset": "^6.0.2", "postcss-normalize-display-values": "^6.0.2", "postcss-normalize-positions": "^6.0.2", @@ -8177,7 +8227,7 @@ "postcss-reduce-initial": "^6.1.0", "postcss-reduce-transforms": "^6.0.2", "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.3" + "postcss-unique-selectors": "^6.0.4" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -8315,9 +8365,9 @@ } }, "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "devOptional": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" @@ -8601,9 +8651,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "engines": { "node": ">=8" } @@ -8807,9 +8857,9 @@ } }, "node_modules/dotenv-webpack": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-8.0.1.tgz", - "integrity": "sha512-CdrgfhZOnx4uB18SgaoP9XHRN2v48BbjuXQsZY5ixs5A8579NxQkmMxRtI7aTwSiSQcM2ao12Fdu+L3ZS3bG4w==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-8.1.0.tgz", + "integrity": "sha512-owK1JcsPkIobeqjVrk6h7jPED/W6ZpdFsMPR+5ursB7/SdgDyO+VzAU+szK8C8u3qUhtENyYnj8eyXMR5kkGag==", "dev": true, "dependencies": { "dotenv-defaults": "^2.0.2" @@ -8847,9 +8897,9 @@ } }, "node_modules/edge-parser": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/edge-parser/-/edge-parser-9.0.1.tgz", - "integrity": "sha512-E6N8GRlI6gnVDpy1VmxZzY+zhB24cmjb0jrLbeXATBX+GM8XntFybQERMfCrt4wkV1LRTpKZ8F6gzupRxAo9zQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/edge-parser/-/edge-parser-9.0.2.tgz", + "integrity": "sha512-4lFpBf/tCM7q5v+00+sudIIA956neWR7iJLbtQ3cEwl6GMg+s9ZgqiLur3z04SI5MSTGLqa2xsR6SgU/rR5g5Q==", "dependencies": { "acorn": "^8.11.3", "astring": "^1.8.6", @@ -8862,21 +8912,21 @@ } }, "node_modules/edge.js": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/edge.js/-/edge.js-6.0.1.tgz", - "integrity": "sha512-htTUs7szn0LlAUi7yvczfUIZuIBNgaWyOc/OQsekHQeD8zKqSTPI9PWbCSHwwXqYWoKZxxc0O+uzcB+5kT/9ow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/edge.js/-/edge.js-6.0.2.tgz", + "integrity": "sha512-qH226BetmQq2LZYEPnoZzZBQqnTWVy/hdsM9GYReYci0FaqAwnabhqMdDfJyzYJJrbb9p67UtgZFBtt0A0k/KA==", "dependencies": { "@poppinss/inspect": "^1.0.1", "@poppinss/macroable": "^1.0.1", - "@poppinss/utils": "^6.7.0", + "@poppinss/utils": "^6.7.2", "classnames": "^2.5.1", "edge-error": "^4.0.1", "edge-lexer": "^6.0.1", - "edge-parser": "^9.0.0", + "edge-parser": "^9.0.2", "fs-readdir-recursive": "^1.1.0", "he": "^1.2.0", "js-stringify": "^1.0.2", - "property-information": "^6.4.0", + "property-information": "^6.4.1", "stringify-attributes": "^4.0.0" }, "engines": { @@ -8889,9 +8939,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.704", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.704.tgz", - "integrity": "sha512-OK01+86Qvby1V6cTiowVbhp25aX4DLZnwar+NocAOXdzKAByd+jq5156bmo4kHwevWMknznW18Y/Svfk2dU91A==", + "version": "1.4.745", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.745.tgz", + "integrity": "sha512-tRbzkaRI5gbUn5DEvF0dV4TQbMZ5CLkWeTAXmpC9IrYT+GE+x76i9p+o3RJ5l9XmdQlI1pPhVtE9uNcJJ0G0EA==", "dev": true }, "node_modules/emittery": { @@ -8977,9 +9027,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", - "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.12.0.tgz", + "integrity": "sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==", "dev": true, "peer": true, "bin": { @@ -9027,14 +9077,14 @@ } }, "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", + "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" }, "node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", "hasInstallScript": true, "peer": true, "bin": { @@ -9044,29 +9094,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" } }, "node_modules/escalade": { @@ -9489,9 +9539,9 @@ } }, "node_modules/express": { - "version": "4.18.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", - "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, "dependencies": { "accepts": "~1.3.8", @@ -9499,7 +9549,7 @@ "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -9530,6 +9580,15 @@ "node": ">= 0.10.0" } }, + "node_modules/express/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -9581,9 +9640,9 @@ ] }, "node_modules/fast-copy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz", - "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==" }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -9628,9 +9687,9 @@ } }, "node_modules/fast-redact": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.4.0.tgz", - "integrity": "sha512-2gwPvyna0zwBdxKnng1suu/dTL5s8XEy2ZqH8mwDUwJdDkV8w5kp+JV26mupdK68HmPMbm6yjW9m7/Ys/BHEHg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", "engines": { "node": ">=6" } @@ -9883,9 +9942,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", @@ -9975,16 +10034,16 @@ } }, "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/fs-minipass": { @@ -10163,9 +10222,9 @@ } }, "node_modules/get-port": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.0.0.tgz", - "integrity": "sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", + "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==", "devOptional": true, "engines": { "node": ">=16" @@ -10814,9 +10873,9 @@ } }, "node_modules/ioredis": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.1.tgz", + "integrity": "sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==", "dependencies": { "@ioredis/commands": "^1.1.1", "cluster-key-slot": "^1.1.0", @@ -11725,14 +11784,11 @@ "peer": true }, "node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" } }, "node_modules/make-dir": { @@ -11897,9 +11953,9 @@ } }, "node_modules/mimic-function": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.0.tgz", - "integrity": "sha512-RBfQ+9X9DpXdEoK7Bu+KeEU6vFhumEIiXKWECPzRBmDserEq4uR2b/VCm0LwpMSosoq2k+Zuxj/GzOr0Fn6h/g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "devOptional": true, "engines": { "node": ">=18" @@ -11909,9 +11965,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", - "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", "dev": true, "dependencies": { "schema-utils": "^4.0.0", @@ -12552,11 +12608,6 @@ "node": ">=6" } }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -12676,12 +12727,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { @@ -12728,15 +12779,13 @@ } }, "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", "pg-types": "^2.1.0", "pgpass": "1.x" }, @@ -12775,17 +12824,17 @@ } }, "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" }, "node_modules/pg-types": { "version": "2.2.0", @@ -12802,6 +12851,11 @@ "node": ">=4" } }, + "node_modules/pg/node_modules/pg-connection-string": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" + }, "node_modules/pgpass": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", @@ -12816,12 +12870,12 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "devOptional": true, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -12952,9 +13006,9 @@ } }, "node_modules/pino-pretty": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.3.1.tgz", - "integrity": "sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.0.0.tgz", + "integrity": "sha512-YFJZqw59mHIY72wBnBs7XhLGG6qpJMa4pEQTRgEPEbjIYbng2LXEZZF1DoyDg9CfejEy8uZCyzpcBXXG0oOCwQ==", "dependencies": { "colorette": "^2.0.7", "dateformat": "^4.6.3", @@ -12991,9 +13045,9 @@ } }, "node_modules/pino-pretty/node_modules/sonic-boom": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.0.tgz", - "integrity": "sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", "dependencies": { "atomic-sleep": "^1.0.0" } @@ -13158,9 +13212,9 @@ } }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "funding": [ { "type": "opencollective", @@ -13178,7 +13232,7 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -13376,13 +13430,13 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.4.tgz", - "integrity": "sha512-vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.0" + "stylehacks": "^6.1.1" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -13392,15 +13446,15 @@ } }, "node_modules/postcss-merge-rules": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.0.tgz", - "integrity": "sha512-lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", "cssnano-utils": "^4.0.2", - "postcss-selector-parser": "^6.0.15" + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -13410,9 +13464,9 @@ } }, "node_modules/postcss-minify-font-values": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.3.tgz", - "integrity": "sha512-SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -13459,12 +13513,12 @@ } }, "node_modules/postcss-minify-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.3.tgz", - "integrity": "sha512-IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.15" + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -13474,9 +13528,9 @@ } }, "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" @@ -13486,9 +13540,9 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", - "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", @@ -13503,9 +13557,9 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", - "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.4" @@ -13761,12 +13815,12 @@ } }, "node_modules/postcss-unique-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.3.tgz", - "integrity": "sha512-NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.15" + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -13922,9 +13976,9 @@ "peer": true }, "node_modules/property-information": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", - "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13983,9 +14037,9 @@ } }, "node_modules/qs": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", - "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", + "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", "dependencies": { "side-channel": "^1.0.6" }, @@ -14188,9 +14242,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" }, "node_modules/regenerate": { "version": "1.4.2", @@ -14469,9 +14523,9 @@ "integrity": "sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==" }, "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.1.tgz", + "integrity": "sha512-5CaD3MPDlPKfhqzRvWXK96G6ELJfPZNb3LHiZxTHgDdC6jvwfGz2E8nY+9g1ONk4ttHsK1WaFP19Js4PSr1E3g==", "peer": true, "dependencies": { "@types/estree": "1.0.5" @@ -14484,19 +14538,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.16.1", + "@rollup/rollup-android-arm64": "4.16.1", + "@rollup/rollup-darwin-arm64": "4.16.1", + "@rollup/rollup-darwin-x64": "4.16.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.16.1", + "@rollup/rollup-linux-arm-musleabihf": "4.16.1", + "@rollup/rollup-linux-arm64-gnu": "4.16.1", + "@rollup/rollup-linux-arm64-musl": "4.16.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.16.1", + "@rollup/rollup-linux-riscv64-gnu": "4.16.1", + "@rollup/rollup-linux-s390x-gnu": "4.16.1", + "@rollup/rollup-linux-x64-gnu": "4.16.1", + "@rollup/rollup-linux-x64-musl": "4.16.1", + "@rollup/rollup-win32-arm64-msvc": "4.16.1", + "@rollup/rollup-win32-ia32-msvc": "4.16.1", + "@rollup/rollup-win32-x64-msvc": "4.16.1", "fsevents": "~2.3.2" } }, @@ -14550,11 +14607,11 @@ } }, "node_modules/saxon-js/node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -14733,18 +14790,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/serialize-error/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "devOptional": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -15034,9 +15079,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -15324,13 +15369,13 @@ } }, "node_modules/stylehacks": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.0.tgz", - "integrity": "sha512-ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", "dev": true, "dependencies": { "browserslist": "^4.23.0", - "postcss-selector-parser": "^6.0.15" + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -15380,16 +15425,16 @@ } }, "node_modules/sucrase/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -15402,9 +15447,9 @@ } }, "node_modules/sucrase/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -15416,6 +15461,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/sucrase/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/superagent": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", @@ -15617,9 +15671,9 @@ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, "node_modules/tailwindcss": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", - "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -15630,7 +15684,7 @@ "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.19.1", + "jiti": "^1.21.0", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -15684,9 +15738,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -15732,9 +15786,9 @@ } }, "node_modules/terser": { - "version": "5.29.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz", - "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", + "version": "5.30.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", + "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", "devOptional": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -16058,13 +16112,13 @@ } }, "node_modules/ts-morph": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-21.0.1.tgz", - "integrity": "sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-22.0.0.tgz", + "integrity": "sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==", "devOptional": true, "dependencies": { - "@ts-morph/common": "~0.22.0", - "code-block-writer": "^12.0.0" + "@ts-morph/common": "~0.23.0", + "code-block-writer": "^13.0.1" } }, "node_modules/ts-node": { @@ -16163,11 +16217,12 @@ } }, "node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "devOptional": true, "engines": { - "node": ">=14.16" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16186,9 +16241,9 @@ } }, "node_modules/typescript": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", - "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "devOptional": true, "bin": { "tsc": "bin/tsc", @@ -16389,14 +16444,14 @@ } }, "node_modules/vite": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.6.tgz", - "integrity": "sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==", + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", + "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", "peer": true, "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.35", - "rollup": "^4.2.0" + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" }, "bin": { "vite": "bin/vite.js" @@ -16471,15 +16526,15 @@ } }, "node_modules/vue": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.21.tgz", - "integrity": "sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.23.tgz", + "integrity": "sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==", "dependencies": { - "@vue/compiler-dom": "3.4.21", - "@vue/compiler-sfc": "3.4.21", - "@vue/runtime-dom": "3.4.21", - "@vue/server-renderer": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-dom": "3.4.23", + "@vue/compiler-sfc": "3.4.23", + "@vue/runtime-dom": "3.4.23", + "@vue/server-renderer": "3.4.23", + "@vue/shared": "3.4.23" }, "peerDependencies": { "typescript": "*" @@ -16639,27 +16694,27 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.91.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", + "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", "dev": true, "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", "acorn-import-assertions": "^1.9.0", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.16.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -16667,7 +16722,7 @@ "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -16743,9 +16798,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "dependencies": { "colorette": "^2.0.10", @@ -16766,9 +16821,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -16799,7 +16854,7 @@ "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", + "webpack-dev-middleware": "^5.3.4", "ws": "^8.13.0" }, "bin": { @@ -16825,9 +16880,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, "engines": { "node": ">= 10" @@ -17204,12 +17259,12 @@ } }, "node_modules/xslt3/node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dev": true, "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } diff --git a/package.json b/package.json index 68abc65..9eaa7c6 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "naive-ui": "^2.35.0", "numeral": "^2.0.6", "pinia": "^2.0.30", - "pino-pretty": "^10.3.1", + "pino-pretty": "^11.0.0", "postcss-loader": "^7.3.0", "prettier": "^3.0.0", "supertest": "^6.3.3", @@ -98,6 +98,7 @@ "dayjs": "^1.11.7", "edge.js": "^6.0.1", "focus-trap": "^7.5.4", + "fs-extra": "^11.2.0", "http-status-codes": "^2.2.0", "leaflet": "^1.9.3", "luxon": "^3.2.1", @@ -118,7 +119,7 @@ "#controllers/*": "./app/Controllers/*.js", "#exceptions/*": "./app/Exceptions/*.js", "#models/*": "./app/Models/*.js", - "#services/*": "./app/Services/*.js", + "#services/*": "./app/services/*.js", "#listeners/*": "./app/listeners/*.js", "#events/*": "./app/events/*.js", "#middleware/*": "./app/Middleware/*.js", diff --git a/providers/HashDriver/index.ts b/providers/HashDriver/index.ts index 6e76442..b5ae5e9 100644 --- a/providers/HashDriver/index.ts +++ b/providers/HashDriver/index.ts @@ -11,8 +11,7 @@ export type PbkdfConfig = { rounds: number; saltSize?: number; version?: number; -} - +}; const saltRounds = 10; export class LaravelDriver implements HashDriverContract { @@ -24,8 +23,8 @@ export class LaravelDriver implements HashDriverContract { this.config = { rounds: 10, saltSize: 16, - version: 98, - ...config + version: 98, + ...config, }; } @@ -135,9 +134,8 @@ export class LaravelDriver implements HashDriverContract { * Factory function to reference the driver * inside the config file. */ -export function laravelDriver (config: PbkdfConfig): ManagerDriverFactory { +export function laravelDriver(config: PbkdfConfig): ManagerDriverFactory { return () => { - return new LaravelDriver(config) - } - } - + return new LaravelDriver(config); + }; +} diff --git a/providers/AppProvider.ts b/providers/app_provider.ts similarity index 100% rename from providers/AppProvider.ts rename to providers/app_provider.ts diff --git a/providers/drive/drivers/local.ts b/providers/drive/drivers/local.ts new file mode 100644 index 0000000..a6c5f52 --- /dev/null +++ b/providers/drive/drivers/local.ts @@ -0,0 +1,133 @@ +import fsExtra from 'fs-extra' +// import { RouterContract } from '@ioc:Adonis/Core/Route'; +// import { Visibility, DriveFileStats, ContentHeaders, LocalDriverConfig, LocalDriverContract, DirectoryListingContract, LocalDriveListItem } from '@ioc:Adonis/Core/Drive'; + +import { CannotGetMetaDataException, CannotDeleteFileException, CannotListDirectoryException } from '../exceptions/index.js'; +import PathPrefixer from '../path_prefixer/index.js'; +import { + LocalDriverContract, + LocalDriverConfig, + DriverContract, + DriveListItem, +} from '../src/types/drive.js'; +import { AsyncIterableArray } from '../src/iterable_array.js'; +/** + * Local driver interacts with the local file system + */ +export class LocalDriver implements LocalDriverContract { + private diskName: string; + private config; + // private router; + // private routeName; + + /** + * Reference to the underlying adapter. Which is + * fs-extra + */ + adapter: typeof fsExtra; + + /** + * Name of the driver + */ + name: 'local'; + /** + * Path prefixer used for prefixing paths with disk root + */ + private prefixer; + + // constructor(diskName: string, config: LocalDriverConfig, router: RouterContract); + constructor(diskName: string, config: LocalDriverConfig) { + this.diskName = diskName; + this.config = config; + // this.router = router; + // this.routeName = LocalFileServer_1.LocalFileServer.makeRouteName(this.diskName); + /** + * Reference to the underlying adapter. Which is + * fs-extra + */ + this.adapter = fsExtra; + /** + * Name of the driver + */ + this.name = 'local'; + /** + * Path prefixer used for prefixing paths with disk root + */ + this.prefixer = PathPrefixer.fromPath(this.config.root); //root: '/storage/app/public', + } + + /** + * A boolean to find if the location path exists or not + */ + exists(location: string): Promise; + /** + * A boolean to find if the location path exists or not + */ + public async exists(location: string): Promise { + try { + return await this.adapter.pathExists(this.makePath(location)); + } catch (error) { + throw CannotGetMetaDataException.invoke(location, 'exists', error); + } + } + + /** + * Make absolute path to a given location + */ + public makePath(location: string): string { + return this.prefixer.prefixPath(location); + } + + /** + * Remove a given location path + */ + // delete(location: string, ...args: any[]): Promise; + public async delete(location: string): Promise { + try { + await this.adapter.remove(this.makePath(location)); + } catch (error) { + throw CannotDeleteFileException.invoke(location, error); + } + } + + /** + * Return a listing directory iterator for given location. + */ + public list(location: string): AsyncIterableArray> { + // public async list(location: string): Promise>> { + const fullPath = this.makePath(location); //'/storage/app/public/files/307' + + // let dirListing: DirectoryListing> = new DirectoryListing(this, () => this.getListing(fullPath, location)); + let dirListing: AsyncIterableArray> = new AsyncIterableArray(this, () => this.getListing(fullPath, location)); + return dirListing; + // let listing: DriveListItem[] = await this.getListing(fullPath, location); + // let test = new DirectoryListing(this, listing); + // return test; + } + + // Example usage + // private async *generateNumbers(): AsyncGenerator { + // yield 1; + // yield 2; + // yield 3; + // } + + private async *getListing(fullPath: string, location: string): AsyncGenerator, void, unknown> { + // private async getListing(fullPath: string, location: string): Promise[]> { + try { + const dir = await this.adapter.opendir(fullPath); + const prefixer = this.prefixer.withStrippedPrefix(fullPath); + // const listing: DriveListItem[] = new Array(); + for await (const dirent of dir) { + yield { + location: prefixer.prefixPath(dirent.name), + isFile: dirent.isFile(), + original: dirent, + }; + } + // return listing; + } catch (error) { + throw CannotListDirectoryException.invoke(location, error); + } + } +} diff --git a/providers/drive/exceptions/index.ts b/providers/drive/exceptions/index.ts new file mode 100644 index 0000000..1aae4b7 --- /dev/null +++ b/providers/drive/exceptions/index.ts @@ -0,0 +1,73 @@ +// const utils_1 = require("@poppinss/utils"); +// import * as utils_1 from "@poppinss/utils"; +import { Exception } from '@poppinss/utils'; + +/** + * Custom exception for when a file cannot be deleted from a specified location + */ +export class CannotDeleteFileException extends Exception { + location: string; + original: any; + + static invoke(location: string, original: any): CannotDeleteFileException { + const error = new this(`Cannot delete file at location "${location}"`, { + code: 'E_CANNOT_DELETE_FILE', + status: 500, + }); + error.location = location; + error.original = original; + return error; + } +} + +/** + * Custom exception for when file metadata cannot be retrieved + */ +export class CannotGetMetaDataException extends Exception { + location: string; + operation: string; + original: any; + + static invoke(location: string, operation: string, original: any): CannotGetMetaDataException { + const error = new this(`Unable to retrieve the "${operation}" for file at location "${location}"`, { + code: 'E_CANNOT_GET_METADATA', + status: 500, + }); + error.location = location; + error.operation = operation; + error.original = original; + return error; + } +} + +/** + * Given location is trying to traverse beyond the root path + */ +export class PathTraversalDetectedException extends Exception { + location: string; + static invoke(location: string) { + const error = new this(`Path traversal detected: "${location}"`, { + code: 'E_PATH_TRAVERSAL_DETECTED', + status: 500, + }); + error.location = location; + return error; + } +} + +/** + * Unable to list directory contents of given location + */ +export class CannotListDirectoryException extends Exception { + location: string; + original: any; + static invoke(location: string, original: any): CannotListDirectoryException { + const error = new this(`Cannot list directory contents of location "${location}"`, { + status: 500, + code: 'E_CANNOT_LIST_DIRECTORY', + }); + error.location = location; + error.original = original; + return error; + } +} diff --git a/providers/drive/path_prefixer/index.ts b/providers/drive/path_prefixer/index.ts new file mode 100644 index 0000000..f813d13 --- /dev/null +++ b/providers/drive/path_prefixer/index.ts @@ -0,0 +1,96 @@ +import { slash } from '@poppinss/utils'; +import { relative, normalize } from 'path'; +import { PathTraversalDetectedException } from '../exceptions/index.js'; +/** + * Path prefixer for resolving and prefixing paths for disk drivers + */ +export default class PathPrefixer { + /** + * Separator used for dividing path segments is always unix-style forward slash + */ + separator: '/'; + /** + * Prefix used for path prefixing. Can be empty string for cloud drivers. + */ + prefix: string; + // constructor(prefix?: string); + + constructor(prefix: string = '') { + /** + * Separator used for dividing path segments is always unix-style forward slash + */ + this.separator = '/'; + // strip slashes from the end of the prefix + this.prefix = prefix.replace(/\/+$/g, ''); + // always end prefix with separator if it is not empty + if (this.prefix !== '' || prefix === this.separator) { + this.prefix += this.separator; + } + } + + /** + * Normalize given path to always use `/` as separator and resolve relative paths using `.` and `..`. + * It also guards against path traversal beyond the root. + */ + normalizePath(path: string): string { + // const converted = (0, utils_1.slash)(path); + const converted = slash(path); + const parts = []; + for (const part of converted.split(this.separator)) { + if (['', '.'].includes(part)) { + continue; + } + if (part === '..') { + // if we are traversing beyond the root + if (parts.length === 0) { + throw PathTraversalDetectedException.invoke(converted); + } + parts.pop(); + } else { + parts.push(part); + } + } + return parts.join(this.separator); + } + /** + * Ruturns normalized and prefixed location path. + */ + prefixPath(location: string): string { + return this.prefix + this.normalizePath(location); + } + /** + * Ruturns normalized and prefixed location path for directory so always ending with slash. + * Useful for cloud drivers prefix when listitng files. + */ + prefixDirectoryPath(location: string): string { + return this.prefixPath(location) + this.separator; + } + /** + * Returns normalized path after stripping the current prefix from it. + * It is a reverse operation of `prefixPath`. + */ + stripPrefix(location: string): string { + // const path = (0, path_1.relative)(this.prefix, (0, utils_1.slash)(location)); + const path = relative(this.prefix, slash(location)); + return this.normalizePath(path); + } + /** + * Returns a new instance of `PathPrefixer` which is using as prefix stripped prefix from path of current `PathPrefixer`. + */ + withStrippedPrefix(path: string): PathPrefixer { + return new PathPrefixer(this.stripPrefix(path)); + } + /** + * Returns a new instance of `PathPrefixer` which is using as prefix current prefix merged with provided prefix. + */ + withPrefix(prefix: string): PathPrefixer { + return new PathPrefixer(this.prefixPath(prefix)); + } + /** + * Returns a new instance of `PathPrefixer` which is using as prefix provided normalized path. + */ + static fromPath(path: string): PathPrefixer { + // return new this((0, utils_1.slash)((0, path_1.normalize)(path))); + return new this(slash(normalize(path))); + } +} diff --git a/providers/drive/provider/drive_provider.ts b/providers/drive/provider/drive_provider.ts new file mode 100644 index 0000000..831b008 --- /dev/null +++ b/providers/drive/provider/drive_provider.ts @@ -0,0 +1,62 @@ +import type { ApplicationService } from '@adonisjs/core/types'; +import { RuntimeException } from '@poppinss/utils'; +// import DriveManager from '../src/drive_manager.js'; +import { DriveConfig } from '../src/types/drive.js'; + + + +export default class DriveProvider { + constructor(protected app: ApplicationService) {} + + /** + * Register bindings to the container + */ + async register() { + const { default: DriveManager } = await import('../src/drive_manager.js'); + this.app.container.singleton(DriveManager, async () => { + // 1. import the oai configuration + // const ttl: number = 86400; + const config: DriveConfig = this.app.config.get('drive'); + // const config: DriveConfig | null = await configProvider.resolve(this.app, driveConfigProvider); + // const vite = await this.app.container.make("vite"); + if (!config) { + throw new RuntimeException('Invalid "config/drive.ts" file. Make sure you are using the "defineConfig" method'); + } + + return new DriveManager(this.app, config); + }); + } + + /** + * Register drive with the container + */ + // registerDrive() { + // this.app.container.singleton('Adonis/Core/Drive', () => { + // const { DriveManager } = require('../src/DriveManager'); + // const Router = this.app.container.resolveBinding('Adonis/Core/Route'); + // const Config = this.app.container.resolveBinding('Adonis/Core/Config'); + // const Logger = this.app.container.resolveBinding('Adonis/Core/Logger'); + // return new DriveManager(this.app, Router, Logger, Config.get('drive')); + // }); + // } + + /** + * The container bindings have booted + */ + async boot() {} + + /** + * The application has been booted + */ + async start() {} + + /** + * The process has been started + */ + async ready() {} + + /** + * Preparing to shutdown the app + */ + async shutdown() {} +} diff --git a/providers/drive/src/drive_manager.ts b/providers/drive/src/drive_manager.ts new file mode 100644 index 0000000..587341b --- /dev/null +++ b/providers/drive/src/drive_manager.ts @@ -0,0 +1,154 @@ +import type { ApplicationService } from '@adonisjs/core/types'; +import { Manager } from '@poppinss/manager'; +import { Exception } from '@poppinss/utils'; +import { DriverContract, DriversList, DriveConfig, DriveListItem, DirectoryListingContract, LocalDriverConfig } from './types/drive.js'; +// import { LocalDriver } from './drivers/local.js'; +import { LocalDriver } from '../drivers/local.js'; + +type test = { + [P in keyof DriversList]: DriversList[P]; +}; +// type DriveMappings = { +// local: string +// fake: string +// } + +// interface DriversList { +// local: { +// implementation: LocalDriverContract; +// config: LocalDriverConfig; +// }; +// } + +// type DriverConfig = { +// disk: keyof DriversList +// disks: { +// [K in keyof DriversList]: any +// } +// } + +// const mailerConfig: DriveConfig = { +// disk: 'local', + +// disks: { +// local: { +// driver: 'local', +// root: '', +// visibility: '', +// serveFiles: false, +// basePath: '', +// }, + +// // 'fake': { +// // driver: 'fake', +// // root: '', +// // }, +// }, +// }; + +export default class DriveManager extends Manager< + ApplicationService, + DriverContract, + DriverContract, + { + [P in keyof DriversList]: DriversList[P]['implementation']; + } +> { + protected singleton = true; + private config; + /** + * Find if drive is ready to be used + */ + private isReady: boolean; + + protected getDefaultMappingName() { + return this.config.disk; // "local" + } + + protected getMappingConfig(mappingName: string) { + return this.config.disks[mappingName]; + } + + protected getMappingDriver(mappingName: string) { + return this.config.disks[mappingName].driver; + } + + /** + * Make instance of the local driver + */ + protected createLocal(diskName: keyof DriversList, config: LocalDriverConfig) { + // const { LocalDriver } = await import('../drivers/local.js'); + return new LocalDriver(diskName, config); + } + + constructor(application: ApplicationService, config: DriveConfig) { + super(application); + this.config = config; + + /** + * Find if drive is ready to be used + */ + this.isReady = false; + + this.validateConfig(); + } + /** + * Validate config + */ + private validateConfig() { + if (!this.config) { + return; + } + // const validator = new utils_1.ManagerConfigValidator(this.config, 'drive', 'config/drive'); + // validator.validateDefault('disk'); + // validator.validateList('disks', 'disk'); + this.isReady = true; + } + + /** + * Resolve instance for a disk + */ + use(disk?: keyof test): DriversList[keyof DriversList]['implementation'] { + if (!this.isReady) { + throw new Exception('Missing configuration for drive. Visit https://bit.ly/2WnR5j9 for setup instructions', { + status: 500, + code: 'E_MISSING_DRIVE_CONFIG', + }); + } + disk = disk || this.getDefaultMappingName(); + // if (this.fakeDrive.isFaked(disk)) { + // return this.fakeDrive.use(disk); + // } + return super.use(disk); + } + + /** + * A boolean to find if the location path exists or not + */ + exists(location: string): Promise { + const driver = this.use(); + return driver.exists(location); + } + + /** + * Remove a given location path + */ + delete(location: string): Promise { + const driver = this.use(); + return driver.delete(location); + } + + /** + * Return a listing directory iterator for given location. + */ + list(location: string): DirectoryListingContract { + const driver = this.use(); + if (typeof driver.list !== 'function') { + throw new Exception(`List is not supported by the "${driver.name}" driver.`, { + status: 500, + code: 'E_LIST_NOT_SUPPORTED', + }); + } + return driver.list(location); + } +} diff --git a/providers/drive/src/iterable_array.ts b/providers/drive/src/iterable_array.ts new file mode 100644 index 0000000..5e4396b --- /dev/null +++ b/providers/drive/src/iterable_array.ts @@ -0,0 +1,68 @@ +import { DriveListItem, DriverContract } from './types/drive.js'; +// import * as fsExtra from 'fs-extra'; +import { DirectoryListingContract } from './types/drive.js'; + +// class AsyncIterableArray implements AsyncIterable { +export class AsyncIterableArray + implements DirectoryListingContract +{ + public driver: SpecificDriver; + private generator: () => AsyncGenerator; + // private generator: () => AsyncGenerator; + private chain: any[]; + + constructor(driver: SpecificDriver, generator: () => AsyncGenerator) { + // constructor(driver: SpecificDriver, listing: T) { + this.driver = driver; + this.generator = generator; + /** + * Functions chain to be executed for transforming generated listing iterable + */ + this.chain = []; + } + + /** + * Convert directory listing to array. + */ + // public async toArray(): Promise { + // const arr = []; + // for await (const item of this.toIterable()) { + // arr.push(item); + // } + // return arr; + // } + async toArray(): Promise { + const arr: T[] = []; + for await (const item of this) { + arr.push(item); + } + return arr; + } + + /** + * A method that returns the default async iterator for an object. + */ + public async *[Symbol.asyncIterator](): AsyncIterableIterator { + // yield* this.toIterable(); + for await (const item of this.generator.call(this.driver)) { + yield item; + } + // yield 1 + // // await something() + // yield 2 + // // await somethingElse() + // yield 3 + } + + /** + * Get the final async iterable after passing directory listing through chain of piping functions modifying the output. + */ + public toIterable(): AsyncIterable { + const generator = this.generator.call(this.driver); + const iterable = this.chain.reduce((prevIterable, currentIterable) => { + return currentIterable.call(this.driver, prevIterable); + }, generator); + + return iterable; + } +} diff --git a/providers/drive/src/types/define_config.ts b/providers/drive/src/types/define_config.ts new file mode 100644 index 0000000..cc28534 --- /dev/null +++ b/providers/drive/src/types/define_config.ts @@ -0,0 +1,5 @@ +import { DriveConfig } from "./drive.js"; + +export function defineConfig(config: DriveConfig): DriveConfig { + return config; +} \ No newline at end of file diff --git a/providers/drive/src/types/drive.ts b/providers/drive/src/types/drive.ts new file mode 100644 index 0000000..e444f7f --- /dev/null +++ b/providers/drive/src/types/drive.ts @@ -0,0 +1,176 @@ +import fsExtra from 'fs-extra'; +import { LocalDriver } from '#providers/drive/drivers/local'; + +/** + * List item returned by the drive drivers + */ +export interface DriveListItem { + /** + * Location of list item on disk which can be used in driver methods + */ + location: string; + + /** + * Flag to know if item represents file or directory + */ + isFile: boolean; + + /** + * Original list item returned from underlying driver + */ + original: T; +} + /** + * List item returned from local disk driver + */ + export interface LocalDriveListItem extends DriveListItem {} + +export interface DirectoryListingContract extends AsyncIterable { + /** + * Reference to the driver for which the listing was created. + */ + driver: Driver; + + /** + * Filter generated items of listing with the given predicate function. + */ + // filter(predicate: (item: T, index: number, driver: Driver) => Promise | boolean): DirectoryListingContract; + + /** + * Transform generated items of listing with the given mapper function. + */ + // map(mapper: (item: T, index: number, driver: Driver) => Promise | M): DirectoryListingContract; + + /** + * Do recursive listing of items. Without the next function it will do listing of leaf nodes only. + * For advanced usage you can pass the next function which will get as parameter current item and it should + * return the next location for list or null if the recursion should stop and yield the current item. + * For advanced usage you can also limit the depth of recursion using the second argument of next function. + */ + // recursive( + // next?: (current: T, depth: number, driver: Driver) => Promise | string | null, + // ): DirectoryListingContract; + + /** + * Add a piping chain function which gets the current async iterable and returns + * new async iterable with modified directory listing output. + * Function this is bound to instance of driver for which the listing is generated. + * This allows using async generator functions and reference the driver methods easily. + * Piping will always return clone of the current instance and add the function + * to the chain of new cloned instance only to prevent side effects. + */ + // pipe(fn: (this: Driver, source: AsyncIterable) => AsyncIterable): DirectoryListingContract; + + /** + * Get the final async iterable after passing directory listing through chain of piping functions modifying the output. + */ + toIterable(): AsyncIterable; + + /** + * Convert directory listing to array. + */ + toArray(): Promise; +} + +/** + * Shape of the generic driver + */ +export interface DriverContract { + /** + * Name of the driver + */ + name: string; + + /** + * A boolean to find if the location path exists or not + */ + exists(location: string): Promise; + + /** + * Remove a given location path + */ + delete(location: string): Promise; + + /** + * Return a listing directory iterator for given location. + * @experimental + */ + list?(location: string): DirectoryListingContract; +} + +/** + * Shape of the local disk driver + */ +export interface LocalDriverContract extends DriverContract { + name: 'local'; + + /** + * Reference to the underlying adapter. Which is fs-extra + */ + adapter: typeof fsExtra; + + /** + * Make path to a given file location + */ + makePath(location: string): string; +} + +// interface LocalDriverContract { +// delete(): Promise; +// } +export type LocalDriverConfig = { + driver: 'local'; + // visibility: Visibility + root: string; + + /** + * Base path is always required when "serveFiles = true" + */ + serveFiles?: boolean; + basePath?: string; +}; + +/** + * List of registered drivers. Drivers shipped via other packages + * should merge drivers to this interface + */ +export interface DriversList { + // [key: string]: {implementation : DriverContract, config: {}}; + local: { + implementation: LocalDriver; + config: { + driver: string; + visibility: string; + root: string; + serveFiles: boolean; + basePath: string; + }; + }; + + // [key: string]: DriverContract; + // local: LocalDriver; + // fake: { + // implementation: LocalDriverContract; + // config: LocalDriverConfig; + // }; +} + +export type DriveConfig = { + disk: keyof DriversList; + // disks: { + // [name: string]: { + // driver: DriverContract; + // }; + // }; + disks: { + [name: string]: { + [K in keyof DriversList]: DriversList[K]['config'] & { + driver: K; + visibility: string; + root: string; + serveFiles: boolean; + basePath: string; + }; + }[keyof DriversList]; + }; +}; diff --git a/providers/TokenWorkerProvider.ts b/providers/token_worker_provider.ts similarity index 100% rename from providers/TokenWorkerProvider.ts rename to providers/token_worker_provider.ts diff --git a/public/assets/manifest.json b/public/assets/manifest.json index 1453c83..369b3d7 100644 --- a/public/assets/manifest.json +++ b/public/assets/manifest.json @@ -26,6 +26,8 @@ "assets/resources_js_Pages_Editor_Dataset_Publish_vue.js": "http://localhost:8080/assets/resources_js_Pages_Editor_Dataset_Publish_vue.js", "assets/resources_js_Pages_Editor_Dataset_Receive_vue.js": "http://localhost:8080/assets/resources_js_Pages_Editor_Dataset_Receive_vue.js", "assets/resources_js_Pages_Error_vue.js": "http://localhost:8080/assets/resources_js_Pages_Error_vue.js", + "assets/resources_js_Pages_Errors_ServerError_vue.js": "http://localhost:8080/assets/resources_js_Pages_Errors_ServerError_vue.js", + "assets/resources_js_Pages_Errors_not_found_vue.js": "http://localhost:8080/assets/resources_js_Pages_Errors_not_found_vue.js", "assets/resources_js_Pages_Map_vue-resources_js_Components_Map_draw_component_vue-resources_js_Compon-b0925c.css": "http://localhost:8080/assets/resources_js_Pages_Map_vue-resources_js_Components_Map_draw_component_vue-resources_js_Compon-b0925c.css", "assets/resources_js_Pages_Map_vue-resources_js_Components_Map_draw_component_vue-resources_js_Compon-b0925c.js": "http://localhost:8080/assets/resources_js_Pages_Map_vue-resources_js_Components_Map_draw_component_vue-resources_js_Compon-b0925c.js", "assets/resources_js_Pages_ProfileView_vue.js": "http://localhost:8080/assets/resources_js_Pages_ProfileView_vue.js", @@ -42,14 +44,15 @@ "assets/resources_js_Pages_Submitter_Dataset_Release_vue.js": "http://localhost:8080/assets/resources_js_Pages_Submitter_Dataset_Release_vue.js", "assets/resources_js_Pages_Submitter_Person_Index_vue.js": "http://localhost:8080/assets/resources_js_Pages_Submitter_Person_Index_vue.js", "assets/resources_js_Pages_register-view_register-view-component_vue.js": "http://localhost:8080/assets/resources_js_Pages_register-view_register-view-component_vue.js", - "assets/vendors-node_modules_focus-trap_dist_focus-trap_esm_js-node_modules_notiwind_dist_index_esm_j-02166b.js": "http://localhost:8080/assets/vendors-node_modules_focus-trap_dist_focus-trap_esm_js-node_modules_notiwind_dist_index_esm_j-02166b.js", + "assets/vendors-node_modules_mdi_js_mdi_js-node_modules_vue-loader_dist_exportHelper_js.js": "http://localhost:8080/assets/vendors-node_modules_mdi_js_mdi_js-node_modules_vue-loader_dist_exportHelper_js.js", + "assets/vendors-node_modules_focus-trap_dist_focus-trap_esm_js-node_modules_notiwind_dist_index_esm_js.js": "http://localhost:8080/assets/vendors-node_modules_focus-trap_dist_focus-trap_esm_js-node_modules_notiwind_dist_index_esm_js.js", "assets/vendors-node_modules_vue-facing-decorator_dist_esm_utils_js.js": "http://localhost:8080/assets/vendors-node_modules_vue-facing-decorator_dist_esm_utils_js.js", "assets/vendors-node_modules_leaflet_src_control_Control_Attribution_js-node_modules_leaflet_src_laye-fbc1b4.js": "http://localhost:8080/assets/vendors-node_modules_leaflet_src_control_Control_Attribution_js-node_modules_leaflet_src_laye-fbc1b4.js", "assets/vendors-node_modules_buffer_index_js-node_modules_leaflet_src_layer_tile_TileLayer_WMS_js-nod-e7bc71.js": "http://localhost:8080/assets/vendors-node_modules_buffer_index_js-node_modules_leaflet_src_layer_tile_TileLayer_WMS_js-nod-e7bc71.js", "assets/vendors-node_modules_numeral_numeral_js-node_modules_chart_js_dist_chart_js.js": "http://localhost:8080/assets/vendors-node_modules_numeral_numeral_js-node_modules_chart_js_dist_chart_js.js", "assets/vendors-node_modules_leaflet_dist_leaflet-src_js-node_modules_leaflet_src_layer_LayerGroup_js.js": "http://localhost:8080/assets/vendors-node_modules_leaflet_dist_leaflet-src_js-node_modules_leaflet_src_layer_LayerGroup_js.js", "assets/vendors-node_modules_toastify-js_src_toastify_js.js": "http://localhost:8080/assets/vendors-node_modules_toastify-js_src_toastify_js.js", - "assets/resources_js_Components_BaseButton_vue-resources_js_Components_BaseDivider_vue-resources_js_C-0c87b5.js": "http://localhost:8080/assets/resources_js_Components_BaseButton_vue-resources_js_Components_BaseDivider_vue-resources_js_C-0c87b5.js", + "assets/resources_js_Stores_main_ts-resources_js_Components_BaseButton_vue-resources_js_Components_Ba-dd870d.js": "http://localhost:8080/assets/resources_js_Stores_main_ts-resources_js_Components_BaseButton_vue-resources_js_Components_Ba-dd870d.js", "assets/resources_js_Components_SectionMain_vue-resources_js_Layouts_LayoutAuthenticated_vue.css": "http://localhost:8080/assets/resources_js_Components_SectionMain_vue-resources_js_Layouts_LayoutAuthenticated_vue.css", "assets/resources_js_Components_SectionMain_vue-resources_js_Layouts_LayoutAuthenticated_vue.js": "http://localhost:8080/assets/resources_js_Components_SectionMain_vue-resources_js_Layouts_LayoutAuthenticated_vue.js", "assets/resources_js_Components_BaseButtons_vue-resources_js_Components_FormControl_vue-resources_js_-d830d6.js": "http://localhost:8080/assets/resources_js_Components_BaseButtons_vue-resources_js_Components_FormControl_vue-resources_js_-d830d6.js", @@ -80,5 +83,10 @@ "assets/images/marker-icon.png": "http://localhost:8080/assets/images/marker-icon.2b3e1faf.png", "assets/images/layers-2x.png": "http://localhost:8080/assets/images/layers-2x.8f2c4d11.png", "assets/images/layers.png": "http://localhost:8080/assets/images/layers.416d9136.png", - "assets/images/Close.svg": "http://localhost:8080/assets/images/Close.e4887675.svg" + "assets/images/Close.svg": "http://localhost:8080/assets/images/Close.e4887675.svg", + "assets/vendors-node_modules_vue-facing-decorator_dist_esm_index_js-node_modules_vue-facing-decorator-818045.js": "http://localhost:8080/assets/vendors-node_modules_vue-facing-decorator_dist_esm_index_js-node_modules_vue-facing-decorator-818045.js", + "assets/resources_js_Pages_Errors_App_vue.js": "http://localhost:8080/assets/resources_js_Pages_Errors_App_vue.js", + "assets/resources_js_Pages_Errors_ServerError2_vue.js": "http://localhost:8080/assets/resources_js_Pages_Errors_ServerError2_vue.js", + "assets/resources_js_Components_BaseButton_vue.js": "http://localhost:8080/assets/resources_js_Components_BaseButton_vue.js", + "assets/resources_js_Stores_main_ts-resources_js_Components_BaseDivider_vue-resources_js_Components_C-b45805.js": "http://localhost:8080/assets/resources_js_Stores_main_ts-resources_js_Components_BaseDivider_vue-resources_js_Components_C-b45805.js" } \ No newline at end of file diff --git a/resources/js/Components/Admin/Pagination.vue b/resources/js/Components/Admin/Pagination.vue index 2da905f..1f51ca1 100644 --- a/resources/js/Components/Admin/Pagination.vue +++ b/resources/js/Components/Admin/Pagination.vue @@ -1,6 +1,5 @@ - - - --> - - - - + aria-label="Next"> + + + diff --git a/resources/js/Components/AsideMenuItem.vue b/resources/js/Components/AsideMenuItem.vue index 00ab4e8..00cf9bc 100644 --- a/resources/js/Components/AsideMenuItem.vue +++ b/resources/js/Components/AsideMenuItem.vue @@ -1,9 +1,9 @@ diff --git a/resources/js/Pages/Admin/Role/Create.vue b/resources/js/Pages/Admin/Role/Create.vue index e6c24ce..513d06c 100644 --- a/resources/js/Pages/Admin/Role/Create.vue +++ b/resources/js/Pages/Admin/Role/Create.vue @@ -1,6 +1,6 @@ - diff --git a/resources/js/Pages/Errors/not_found.vue b/resources/js/Pages/Errors/not_found.vue new file mode 100644 index 0000000..9d07402 --- /dev/null +++ b/resources/js/Pages/Errors/not_found.vue @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/resources/js/Stores/main.ts b/resources/js/Stores/main.ts index 255fc8f..a0488c8 100644 --- a/resources/js/Stores/main.ts +++ b/resources/js/Stores/main.ts @@ -167,7 +167,7 @@ export const MainService = defineStore('main', { this.totpState = state; }, - async fetchChartData(year) { + async fetchChartData(year: string) { // sampleDataKey= authors or datasets axios .get(`/api/statistic/${year}`) diff --git a/resources/js/Stores/map.service.ts b/resources/js/Stores/map.service.ts index 6f245d3..1e3099d 100644 --- a/resources/js/Stores/map.service.ts +++ b/resources/js/Stores/map.service.ts @@ -9,23 +9,23 @@ export const MapService = defineStore('map', { }), actions: { // payload = authenticated user - setUser(payload) { - if (payload.name) { - this.userName = payload.name; - } - if (payload.email) { - this.userEmail = payload.email; - } - if (payload.avatar) { - this.userAvatar = payload.avatar; - } - }, + // setUser(payload: any) { + // if (payload.name) { + // this.userName = payload.name; + // } + // if (payload.email) { + // this.userEmail = payload.email; + // } + // if (payload.avatar) { + // this.userAvatar = payload.avatar; + // } + // }, getMap(id: string) { return this.mapService.get(id); }, - setMap(id: string, map) { + setMap(id: string, map: any) { this.mapService.set(id, map); }, diff --git a/resources/js/Stores/style.ts b/resources/js/Stores/style.service.ts similarity index 53% rename from resources/js/Stores/style.ts rename to resources/js/Stores/style.service.ts index 44995c6..799b49c 100644 --- a/resources/js/Stores/style.ts +++ b/resources/js/Stores/style.service.ts @@ -1,10 +1,27 @@ import { defineStore } from 'pinia'; -import * as styles from '@/styles'; +import styles from '@/styles'; import { darkModeKey, styleKey } from '@/config'; + +interface StyleState { + [key: string]: string | boolean; + asideStyle: string; + asideScrollbarsStyle: string; + asideBrandStyle: string; + asideMenuItemStyle: string; + asideMenuItemActiveStyle: string; + asideMenuDropdownStyle: string; + navBarItemLabelStyle: string; + navBarItemLabelHoverStyle: string; + navBarItemLabelActiveColorStyle: string; + overlayStyle: string; + darkMode: boolean; +} + +// Define StyleService store export const StyleService = defineStore('style', { - state: () => ({ - /* Styles */ + state: (): StyleState => ({ + // Styles asideStyle: '', asideScrollbarsStyle: '', asideBrandStyle: '', @@ -15,41 +32,34 @@ export const StyleService = defineStore('style', { navBarItemLabelHoverStyle: '', navBarItemLabelActiveColorStyle: '', overlayStyle: '', - - /* Dark mode default false */ + // Dark mode default false darkMode: false, }), - actions: { - // style payload = 'basic' or 'white' with blue font - setStyle(payload) { + // Set style based on payload value ('basic' or 'white') + setStyle(payload: 'basic' | 'white') { if (!styles[payload]) { return; } - if (typeof localStorage !== 'undefined') { localStorage.setItem(styleKey, payload); } - - const style = styles[payload]; - + const style = styles[payload] as Record; for (const key in style) { - this[`${key}Style`] = style[key]; + // let keyStyle: string = `${key}Style`;//key as keyof typeof style; + this[`${key}Style` as keyof StyleState] = style[key]; } }, - // toggle dark mode - setDarkMode(payload = null) { - this.darkMode = payload !== null ? payload : !this.darkMode; - + // Toggle dark mode + setDarkMode(payload?: boolean) { + this.darkMode = payload !== undefined ? payload : !this.darkMode; if (typeof localStorage !== 'undefined') { localStorage.setItem(darkModeKey, this.darkMode ? '1' : '0'); } - if (typeof document !== 'undefined') { document.body.classList[this.darkMode ? 'add' : 'remove']('dark-scrollbars'); - document.documentElement.classList[this.darkMode ? 'add' : 'remove']('dark-scrollbars-compat'); } }, }, -}); +}); \ No newline at end of file diff --git a/resources/js/app.js b/resources/js/app.ts similarity index 74% rename from resources/js/app.js rename to resources/js/app.ts index a0eb1e7..fc1dd38 100644 --- a/resources/js/app.js +++ b/resources/js/app.ts @@ -1,21 +1,28 @@ import '../css/app.css'; -import { createApp, h } from 'vue'; +import { createApp, h, App, Plugin } from 'vue'; import { Inertia } from '@inertiajs/inertia'; -import { createInertiaApp, Link, usePage } from '@inertiajs/vue3'; +import { createInertiaApp } from '@inertiajs/vue3'; // import DefaultLayout from '@/Layouts/Default.vue'; - import { createPinia } from 'pinia'; -import { StyleService } from '@/Stores/style'; +import { StyleService } from '@/Stores/style.service'; import { LayoutService } from '@/Stores/layout'; -import { MainService } from '@/Stores/main'; import { darkModeKey, styleKey } from '@/config'; +// import type { DefineComponent } from 'vue'; +// import { resolvePageComponent } from '@adonisjs/inertia/helpers'; const pinia = createPinia(); import { EmitterPlugin } from '@/EmitterDirective'; import { initRoutes } from '@eidellev/adonis-stardust/client/index.js'; initRoutes(); +interface SetupOptions { + el: Element; + App: App; + props: Record; + plugin: Plugin; +} + // import '@fontsource/archivo-black/index.css'; // import '@fontsource/inter/index.css'; @@ -23,7 +30,7 @@ createInertiaApp({ progress: { // color: '#4B5563', color: '#22C55E', - }, + }, // Webpack // resolve: (name) => require(`./Pages/${name}`), // resolve: (name) => require(`./Pages/${name}.vue`), @@ -35,7 +42,7 @@ createInertiaApp({ // // } // return page; // }, - resolve: async (name) => { + resolve: async (name: string) => { // Dynamically import the Vue component using import const { default: page } = await import(`./Pages/${name}.vue`); // const page = require(`./Pages/${name}.vue`).default; @@ -44,12 +51,14 @@ createInertiaApp({ // } return page; }, - // resolve: async (name) => { - // const firstPath = `@/Pages/${name}.vue`; - // const module = await import(firstPath); - // return module.default || null; - // }, - setup({ el, App, props, plugin }) { + // resolve: (name) => { + // return resolvePageComponent( + // `./Pages/${name}.vue`, + // import.meta.glob('./pages/**/*.vue'), + // ) + // }, + + setup({ el, App, props, plugin} : SetupOptions) { createApp({ render: () => h(App, props) }) .use(plugin) .use(pinia) @@ -72,8 +81,9 @@ if ((!localStorage[darkModeKey] && window.matchMedia('(prefers-color-scheme: dar styleService.setDarkMode(true); } + /* Collapse mobile aside menu on route change */ -Inertia.on('navigate', (event) => { +Inertia.on('navigate', () => { layoutService.isAsideMobileExpanded = false; layoutService.isAsideLgActive = false; }); diff --git a/resources/js/styles.js b/resources/js/styles.js index b8b3b1d..73f7d7e 100644 --- a/resources/js/styles.js +++ b/resources/js/styles.js @@ -1,27 +1,30 @@ -export const basic = { - aside: 'bg-gray-800', - asideScrollbars: 'aside-scrollbars-gray', - asideBrand: 'bg-gray-900 text-white', - asideMenuItem: 'text-gray-300 hover:text-white', - asideMenuItemActive: 'font-bold text-cyan-300', - asideMenuDropdown: 'bg-gray-700/50', - navBarItemLabel: 'text-black', - // navBarItemLabelHover: 'hover:text-blue-500', - navBarItemLabelHover: 'hover:text-lime-dark', - // navBarItemLabelActiveColor: 'text-blue-600', - navBarItemLabelActiveColor: 'text-lime-dark', - overlay: 'from-gray-700 via-gray-900 to-gray-700', -}; +const styles = { + basic: { + aside: 'bg-gray-800', + asideScrollbars: 'aside-scrollbars-gray', + asideBrand: 'bg-gray-900 text-white', + asideMenuItem: 'text-gray-300 hover:text-white', + asideMenuItemActive: 'font-bold text-cyan-300', + asideMenuDropdown: 'bg-gray-700/50', + navBarItemLabel: 'text-black', + // navBarItemLabelHover: 'hover:text-blue-500', + navBarItemLabelHover: 'hover:text-lime-dark', + // navBarItemLabelActiveColor: 'text-blue-600', + navBarItemLabelActiveColor: 'text-lime-dark', + overlay: 'from-gray-700 via-gray-900 to-gray-700', + }, -export const white = { - aside: 'bg-white', - asideScrollbars: 'aside-scrollbars-light', - asideBrand: '', - asideMenuItem: 'text-blue-600 hover:text-black dark:text-white', - asideMenuItemActive: 'font-bold text-black dark:text-white', - asideMenuDropdown: 'bg-gray-100/75', - navBarItemLabel: 'text-blue-600', - navBarItemLabelHover: 'hover:text-black', - navBarItemLabelActiveColor: 'text-black', - overlay: 'from-white via-gray-100 to-white', + white: { + aside: 'bg-white', + asideScrollbars: 'aside-scrollbars-light', + asideBrand: '', + asideMenuItem: 'text-blue-600 hover:text-black dark:text-white', + asideMenuItemActive: 'font-bold text-black dark:text-white', + asideMenuDropdown: 'bg-gray-100/75', + navBarItemLabel: 'text-blue-600', + navBarItemLabelHover: 'hover:text-black', + navBarItemLabelActiveColor: 'text-black', + overlay: 'from-white via-gray-100 to-white', + }, }; +export default styles; \ No newline at end of file diff --git a/tsconfig.vue.json b/resources/js/tsconfig.vue.json similarity index 64% rename from tsconfig.vue.json rename to resources/js/tsconfig.vue.json index 1a0e9e5..0a82ef6 100644 --- a/tsconfig.vue.json +++ b/resources/js/tsconfig.vue.json @@ -1,8 +1,8 @@ { // tsconfig.vue.json "extends": "@vue/tsconfig/tsconfig.json", - "include": ["./resources/js/**/*"], - + // "include": ["./resources/js/**/*"], + "include": ["env.d.ts", "./**/*.ts", "./**/*.vue"], "compilerOptions": { // "module": "commonjs", //for tehys.api...alos nodenext // Process & infer types from .js files. @@ -14,9 +14,13 @@ "experimentalDecorators": true, //neu "strictPropertyInitialization": false //neu }, + // "paths": { + // "App/*": ["./app/*"], // for App/modles/User + // "@/*": ["./resources/js/*"] + // }, "paths": { - "App/*": ["./app/*"], // for App/modles/User - "@/*": ["./resources/js/*"] - }, - "files": ["./index.d.ts"] + "@/*": ["./*"], + "~/*": ["../*"] + }, + // "files": ["./index.d.ts"] } diff --git a/src/extensions.ts b/src/extensions.ts index 2aed85b..9d8d662 100644 --- a/src/extensions.ts +++ b/src/extensions.ts @@ -1,9 +1,4 @@ -// import { ModelQueryBuilderContract } from '@adonisjs/lucid/types/model'; -// import { LucidModel } from '@adonisjs/lucid/types/model'; import { Request, Response } from '@adonisjs/core/http'; -// import BaseModel from '#app/Models/BaseModel'; -// import { LucidModel } from '@adonisjs/lucid/types/model'; -// import BaseModel from '#app/Models/BaseModel'; Request.macro('wantsJSON', function (this: Request) { const firstType = this.types()[0]; @@ -22,11 +17,31 @@ declare module '@adonisjs/core/http' { // By specifying this: Response in the function signature, you're explicitly stating // that 'this' within the function should be of type 'Response', which resolves the TypeScript error. -Response.macro('flash', function (this: Response, key: string, message: any) { +// Response.macro('flash', function (this: Response, message: any) { +// if (!this.ctx) { +// throw new Error('Context is not available'); +// } +// this.ctx!.session.flash(message); +// return this; +// }); +// Response.macro('flash', function (this: Response, key: string, message: any) { +// if (!this.ctx) { +// throw new Error('Context is not available'); +// } +// this.ctx!.session.flash(key, message); +// return this; +// }); +Response.macro('flash', function (this: Response, message: any, key?: string,) { if (!this.ctx) { throw new Error('Context is not available'); } - this.ctx!.session.flash(key, message); + + if (key !== undefined) { + this.ctx!.session.flash(key, message); + } else { + this.ctx!.session.flash(message); + } + return this; }); Response.macro('toRoute', function (this: Response, route: string) { @@ -35,6 +50,7 @@ Response.macro('toRoute', function (this: Response, route: string) { }); declare module '@adonisjs/core/http' { interface Response { + flash(message: any): Response; flash(key: string, message: any): Response; toRoute(route: string): Response; } diff --git a/start/env.ts b/start/env.ts index fabcc79..40fe0ee 100644 --- a/start/env.ts +++ b/start/env.ts @@ -19,7 +19,7 @@ export default await Env.create(new URL("../", import.meta.url), { APP_KEY: Env.schema.string(), APP_NAME: Env.schema.string(), CACHE_VIEWS: Env.schema.boolean(), - SESSION_DRIVER: Env.schema.string(), + SESSION_DRIVER: Env.schema.enum(["cookie" ,"memory"] as const), DRIVE_DISK: Env.schema.enum(['local'] as const), NODE_ENV: Env.schema.enum(['development', 'production', 'test'] as const), @@ -31,6 +31,9 @@ export default await Env.create(new URL("../", import.meta.url), { PG_DB_NAME: Env.schema.string(), REDIS_HOST: Env.schema.string({ format: 'host' }), - REDIS_PORT: Env.schema.number() + REDIS_PORT: Env.schema.number(), + + HASH_DRIVER: Env.schema.enum(["scrypt", "argon", "bcrypt", "laravel", undefined] as const), + OAI_LIST_SIZE: Env.schema.number() }) diff --git a/start/kernel.ts b/start/kernel.ts index e4e2407..0dcd0e3 100644 --- a/start/kernel.ts +++ b/start/kernel.ts @@ -24,6 +24,7 @@ server.errorHandler( server.use([ () => import('#middleware/container_bindings_middleware'), () => import('@adonisjs/static/static_middleware'), + // () => import('@adonisjs/cors/cors_middleware'), () => import('@adonisjs/inertia/inertia_middleware'), ]) @@ -46,10 +47,8 @@ router.use([ * the routes or the routes group. */ export const middleware = router.named({ - // guest: () => import('#middleware/guest_middleware'), - // stardust: () => import('#middleware/stardust_middleware'), - // guest: () => import('#middleware/guest_middleware'), + guest: () => import('#middleware/guest_middleware'), auth: () => import('#middleware/auth_middleware'), - is: () => import('#middleware/Role'), - can: () => import('#middleware/Can'), + is: () => import('#middleware/role_middleware'), + can: () => import('#middleware/can_middleware'), }) diff --git a/start/routes.ts b/start/routes.ts index bb6820d..fcc65b9 100644 --- a/start/routes.ts +++ b/start/routes.ts @@ -29,7 +29,7 @@ import AuthValidator from '#app/Validators/AuthValidator'; import User from '#app/Models/User'; import AuthController from '#controllers/Http/Auth/AuthController'; import UserController from '#controllers/Http/Auth/UserController'; -import AdminUserController from '#controllers/Http/Admin/UsersController'; +import AdminuserController from '#controllers/Http/Admin/AdminuserController'; import RoleController from '#controllers/Http/Admin/RoleController'; import DatasetController from '#app/Controllers/Http/Submitter/DatasetController'; @@ -131,20 +131,20 @@ router.group(() => { .as('overview'); // user routes - router.get('/user', [AdminUserController, 'index']).as('user.index').use(middleware.can(['user-list'])); - router.get('/user/create', [AdminUserController, 'create']).as('user.create').use(middleware.can(['user-create'])); - router.post('/user/store', [AdminUserController, 'store']).as('user.store').use(middleware.can(['user-create'])); - router.get('/user/:id', [AdminUserController, 'show']).as('user.show').where('id', router.matchers.number()); - router.get('/user/:id/edit', [AdminUserController, 'edit']).as('user.edit').where('id', router.matchers.number()).use(middleware.can(['user-edit'])); - router.put('/user/:id/update', [AdminUserController, 'update']) + router.get('/user', [AdminuserController, 'index']).as('user.index').use(middleware.can(['user-list'])); + router.get('/user/create', [AdminuserController, 'create']).as('user.create').use(middleware.can(['user-create'])); + router.post('/user/store', [AdminuserController, 'store']).as('user.store').use(middleware.can(['user-create'])); + router.get('/user/:id', [AdminuserController, 'show']).as('user.show').where('id', router.matchers.number()); + router.get('/user/:id/edit', [AdminuserController, 'edit']).as('user.edit').where('id', router.matchers.number()).use(middleware.can(['user-edit'])); + router.put('/user/:id/update', [AdminuserController, 'update']) .as('user.update') .where('id', router.matchers.number()) .use(middleware.can(['user-edit'])); - // // Route.delete('/user/:id', [AdminUserController, 'destroy']) + // // Route.delete('/user/:id', [AdminuserController, 'destroy']) // // .as('user.destroy') // // .where('id', Route.matchers.number()) // // .use(middleware.can(['user-delete'])); - // // Route.resource('user', 'AdminUserController'); + // // Route.resource('user', 'AdminuserController'); router.get('/role', [RoleController, 'index']).as('role.index').use(middleware.can(['user-list'])); router.get('/role/create', [RoleController, 'create']).as('role.create').use(middleware.can(['user-create'])); diff --git a/tsconfig.json b/tsconfig.json index 9dbd900..be2e538 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,18 @@ { "extends": "@adonisjs/tsconfig/tsconfig.app.json", "include": [ - "**/*" + "**/*", + // "resources/**/*.ts", + // "resources/**/*.d.ts", + // "resources/**/*.vue" ], "exclude": [ "node_modules", "build", - "public", - "resources" + "public", + // "resources/js/**/*", ], + // "exclude": ["./inertia/**/*"] "compilerOptions": { "allowJs": true, "outDir": "build", @@ -21,8 +25,9 @@ "esModuleInterop": true, "allowSyntheticDefaultImports": true, "paths": { - "@/*": [ - "./resources/js/*" + "@/*": ["./resources/js/*.js"], + "#resources/*": [ + "./resources/js/*.js" ], "#controllers/*": [ "./app/controllers/*.js" diff --git a/webpack.config.cjs b/webpack.config.cjs index 6d42413..64e74c1 100644 --- a/webpack.config.cjs +++ b/webpack.config.cjs @@ -96,7 +96,7 @@ Encore.setPublicPath('/assets'); | entrypoints. | */ -Encore.addEntry('app', './resources/js/app.js'); +Encore.addEntry('app', './resources/js/app.ts'); /* @@ -305,7 +305,7 @@ Encore.addLoader({ Encore.addLoader(babelLoader) // Encore.enableTypeScriptLoader(config => { // // Loader-specific options - // config.configFile = 'tsconfig.vue.json'; + // config.configFile = 'resources/js/tsconfig.vue.json'; // config.appendTsSuffixTo = [/\.vue$/]; // config.transpileOnly = true; // config.happyPackMode = false; @@ -317,11 +317,11 @@ Encore.addLoader(babelLoader) .addAliases({ '@': join(__dirname, 'resources/js'), 'vue$': 'vue/dist/vue.runtime.esm-bundler.js', + }) + .configureDefinePlugin((options) => { + options['__VUE_OPTIONS_API__'] = true; + options['__VUE_PROD_DEVTOOLS__'] = false; }); - // .configureDefinePlugin((options) => { - // options['__VUE_OPTIONS_API__'] = true; - // options['__VUE_PROD_DEVTOOLS__'] = false; - // }); // Encore.addAliases({ // '@': resolve(__dirname, 'resources/js') diff --git a/webpack.config_a.cjs b/webpack.config_a.cjs deleted file mode 100644 index dcdd711..0000000 --- a/webpack.config_a.cjs +++ /dev/null @@ -1,267 +0,0 @@ -const { join } = require("path"); -const Encore = require("@symfony/webpack-encore"); -const { VueLoaderPlugin } = require('vue-loader'); -const dotenv = require('dotenv-webpack'); - -// Load the environment variables from the.env file -Encore.addPlugin( - new dotenv({ - path: ".env", - defaults: ".env", - systemvars: true, - allowEmptyValues: true, - }) - ) - -/* -|-------------------------------------------------------------------------- -| Encore runtime environment -|-------------------------------------------------------------------------- -*/ -if (!Encore.isRuntimeEnvironmentConfigured()) { - Encore.configureRuntimeEnvironment(process.env.NODE_ENV || "dev"); -} - -/* -|-------------------------------------------------------------------------- -| Output path -|-------------------------------------------------------------------------- -| -| The output path for writing the compiled files. It should always -| be inside the public directory, so that AdonisJS can serve it. -| -*/ -Encore.setOutputPath("./public/assets"); - -/* -|-------------------------------------------------------------------------- -| Public URI -|-------------------------------------------------------------------------- -| -| The public URI to access the static files. It should always be -| relative from the "public" directory. -| -*/ -Encore.setPublicPath("/assets"); - -/* -|-------------------------------------------------------------------------- -| Entrypoints -|-------------------------------------------------------------------------- -| -| Entrypoints are script files that boots your frontend application. Ideally -| a single entrypoint is used by majority of applications. However, feel -| free to add more (if required). -| -| Also, make sure to read the docs on "Assets bundler" to learn more about -| entrypoints. -| -*/ -Encore.addEntry("app", "./resources/js/app.js"); - -/* -|-------------------------------------------------------------------------- -| Copy assets -|-------------------------------------------------------------------------- -| -| Since the edge templates are not part of the Webpack compile lifecycle, any -| images referenced by it will not be processed by Webpack automatically. Hence -| we must copy them manually. -| -*/ -// Encore.copyFiles({ -// from: './resources/images', -// to: 'images/[path][name].[hash:8].[ext]', -// }) - -/* -|-------------------------------------------------------------------------- -| Split shared code -|-------------------------------------------------------------------------- -| -| Instead of bundling duplicate code in all the bundles, generate a separate -| bundle for the shared code. -| -| https://symfony.com/doc/current/frontend/encore/split-chunks.html -| https://webpack.js.org/plugins/split-chunks-plugin/ -| -*/ -// Encore.splitEntryChunks() - -/* -|-------------------------------------------------------------------------- -| Isolated entrypoints -|-------------------------------------------------------------------------- -| -| Treat each entry point and its dependencies as its own isolated module. -| -*/ -Encore.disableSingleRuntimeChunk(); - -/* -|-------------------------------------------------------------------------- -| Cleanup output folder -|-------------------------------------------------------------------------- -| -| It is always nice to cleanup the build output before creating a build. It -| will ensure that all unused files from the previous build are removed. -| -*/ -Encore.cleanupOutputBeforeBuild(); - -/* -|-------------------------------------------------------------------------- -| Source maps -|-------------------------------------------------------------------------- -| -| Enable source maps in production -| -*/ -Encore.enableSourceMaps(!Encore.isProduction()); - -/* -|-------------------------------------------------------------------------- -| Assets versioning -|-------------------------------------------------------------------------- -| -| Enable assets versioning to leverage lifetime browser and CDN cache -| -*/ -Encore.enableVersioning(Encore.isProduction()); - -/* -|-------------------------------------------------------------------------- -| Configure dev server -|-------------------------------------------------------------------------- -| -| Here we configure the dev server to enable live reloading for edge templates. -| Remember edge templates are not processed by Webpack and hence we need -| to watch them explicitly and livereload the browser. -| -*/ -Encore.configureDevServerOptions((options) => { - /** - * Normalize "options.static" property to an array - */ - if (!options.static) { - options.static = []; - } else if (!Array.isArray(options.static)) { - options.static = [options.static]; - } - - /** - * Enable live reload and add views directory - */ - options.liveReload = true; - options.static.push({ - directory: join(__dirname, "./resources/views"), - watch: true, - }); -}); - -/* -|-------------------------------------------------------------------------- -| CSS precompilers support -|-------------------------------------------------------------------------- -| -| Uncomment one of the following lines of code to enable support for your -| favorite CSS precompiler -| -*/ -// Encore.enableSassLoader() -// Encore.enableLessLoader() -// Encore.enableStylusLoader() - -/* -|-------------------------------------------------------------------------- -| CSS loaders -|-------------------------------------------------------------------------- -| -| Uncomment one of the following line of code to enable support for -| PostCSS or CSS. -| -*/ -Encore.enablePostCssLoader() -// Encore.configureCssLoader(() => {}) - -/* -|-------------------------------------------------------------------------- -| Enable Vue loader -|-------------------------------------------------------------------------- -| -| Uncomment the following lines of code to enable support for vue. Also make -| sure to install the required dependencies. -| -*/ -// Encore.enableVueLoader(() => {}, { -// version: 3, -// runtimeCompilerBuild: false, -// useJsx: false -// }); - -Encore.addLoader({ - test: /\.vue$/, - loader: 'vue-loader', - options: { - // loaders: { - // ts: 'ts-loader', - // }, - cacheDirectory: 'C:\\Users\\kaiarn\\Documents\\Software\\tethys.viewer\\node_modules\\.cache\\vue-loader', - cacheIdentifier: 'f930df3e', - babelParserPlugins: ['jsx', 'classProperties', 'decorators-legacy'], - }, -}).addPlugin(new VueLoaderPlugin()); - - - Encore.enableTypeScriptLoader(config => { - // Loader-specific options - config.configFile = 'tsconfig.vue.json'; - config.appendTsSuffixTo = [/\.vue$/]; - config.transpileOnly = true; - config.happyPackMode = false; - }, { - // Directly change the exclude rule - exclude: /node_modules/, - - }) - .addAliases({ - '@': join(__dirname, 'resources/js'), - 'vue$': 'vue/dist/vue.runtime.esm-bundler.js', - }) - .configureDefinePlugin((options) => { - options['__VUE_OPTIONS_API__'] = true; - options['__VUE_PROD_DEVTOOLS__'] = false; - }) -.addAliases({ - '@': join(__dirname, 'resources/js'), - 'vue$': 'vue/dist/vue.runtime.esm-bundler.js', -}) -.configureDefinePlugin((options) => { - options['__VUE_OPTIONS_API__'] = true; - options['__VUE_PROD_DEVTOOLS__'] = false; -}); -/* -|-------------------------------------------------------------------------- -| Configure logging -|-------------------------------------------------------------------------- -| -| To keep the terminal clean from unnecessary info statements , we only -| log warnings and errors. If you want all the logs, you can change -| the level to "info". -| -*/ -const config = Encore.getWebpackConfig(); -config.infrastructureLogging = { - level: "warn", -}; -config.stats = "errors-warnings"; -config.resolve.extensions = ['.tsx', '.ts', '.mjs', '.js', '.jsx', '.vue', '.json', '.wasm']; -/* -|-------------------------------------------------------------------------- -| Export config -|-------------------------------------------------------------------------- -| -| Export config for webpack to do its job -| -*/ -module.exports = config; \ No newline at end of file