From 03a14da80407dd97b7eec64bfc41d12125b8d887 Mon Sep 17 00:00:00 2001 From: Rutra Date: Mon, 4 May 2026 14:16:59 +0200 Subject: [PATCH] init --- ace.js | 7 + adonisrc.js | 53 + adonisrc.js.map | 1 + app/controllers/auth_controller.js | 29 + app/controllers/auth_controller.js.map | 1 + app/controllers/media_controller.js | 50 + app/controllers/media_controller.js.map | 1 + app/controllers/upload_controller.js | 40 + app/controllers/upload_controller.js.map | 1 + app/exceptions/handler.js | 21 + app/exceptions/handler.js.map | 1 + app/middleware/auth_middleware.js | 11 + app/middleware/auth_middleware.js.map | 1 + .../container_bindings_middleware.js | 10 + .../container_bindings_middleware.js.map | 1 + bin/console.js | 24 + bin/console.js.map | 1 + bin/server.js | 24 + bin/server.js.map | 1 + bin/test.js | 38 + bin/test.js.map | 1 + config/app.js | 19 + config/app.js.map | 1 + config/bodyparser.js | 26 + config/bodyparser.js.map | 1 + config/hash.js | 14 + config/hash.js.map | 1 + config/logger.js | 21 + config/logger.js.map | 1 + config/session.js | 21 + config/session.js.map | 1 + config/shield.js | 27 + config/shield.js.map | 1 + config/static.js | 9 + config/static.js.map | 1 + config/vite.js | 11 + config/vite.js.map | 1 + gitignore | 28 + package-lock.json | 8999 +++++++++++++++++ package.json | 71 + public/assets/.vite/manifest.json | 13 + public/assets/app-C3S-8paM.js | 1 + public/assets/app-V1pZY7xQ.css | 1 + public/uploads/1777542211622_amonus.png | Bin 0 -> 135436 bytes resources/views/components/layouts/main.edge | 43 + resources/views/dashboard.edge | 340 + resources/views/login.edge | 77 + resources/views/pages/errors/not_found.edge | 8 + .../views/pages/errors/server_error.edge | 8 + resources/views/pages/home.edge | 408 + start/env.js | 12 + start/env.js.map | 1 + start/kernel.js | 17 + start/kernel.js.map | 1 + start/routes.js | 19 + start/routes.js.map | 1 + tests/bootstrap.js | 15 + tests/bootstrap.js.map | 1 + vite.config.js | 11 + vite.config.js.map | 1 + 60 files changed, 10549 insertions(+) create mode 100644 ace.js create mode 100644 adonisrc.js create mode 100644 adonisrc.js.map create mode 100644 app/controllers/auth_controller.js create mode 100644 app/controllers/auth_controller.js.map create mode 100644 app/controllers/media_controller.js create mode 100644 app/controllers/media_controller.js.map create mode 100644 app/controllers/upload_controller.js create mode 100644 app/controllers/upload_controller.js.map create mode 100644 app/exceptions/handler.js create mode 100644 app/exceptions/handler.js.map create mode 100644 app/middleware/auth_middleware.js create mode 100644 app/middleware/auth_middleware.js.map create mode 100644 app/middleware/container_bindings_middleware.js create mode 100644 app/middleware/container_bindings_middleware.js.map create mode 100644 bin/console.js create mode 100644 bin/console.js.map create mode 100644 bin/server.js create mode 100644 bin/server.js.map create mode 100644 bin/test.js create mode 100644 bin/test.js.map create mode 100644 config/app.js create mode 100644 config/app.js.map create mode 100644 config/bodyparser.js create mode 100644 config/bodyparser.js.map create mode 100644 config/hash.js create mode 100644 config/hash.js.map create mode 100644 config/logger.js create mode 100644 config/logger.js.map create mode 100644 config/session.js create mode 100644 config/session.js.map create mode 100644 config/shield.js create mode 100644 config/shield.js.map create mode 100644 config/static.js create mode 100644 config/static.js.map create mode 100644 config/vite.js create mode 100644 config/vite.js.map create mode 100644 gitignore create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/assets/.vite/manifest.json create mode 100644 public/assets/app-C3S-8paM.js create mode 100644 public/assets/app-V1pZY7xQ.css create mode 100644 public/uploads/1777542211622_amonus.png create mode 100644 resources/views/components/layouts/main.edge create mode 100644 resources/views/dashboard.edge create mode 100644 resources/views/login.edge create mode 100644 resources/views/pages/errors/not_found.edge create mode 100644 resources/views/pages/errors/server_error.edge create mode 100644 resources/views/pages/home.edge create mode 100644 start/env.js create mode 100644 start/env.js.map create mode 100644 start/kernel.js create mode 100644 start/kernel.js.map create mode 100644 start/routes.js create mode 100644 start/routes.js.map create mode 100644 tests/bootstrap.js create mode 100644 tests/bootstrap.js.map create mode 100644 vite.config.js create mode 100644 vite.config.js.map diff --git a/ace.js b/ace.js new file mode 100644 index 0000000..5d97074 --- /dev/null +++ b/ace.js @@ -0,0 +1,7 @@ +/** + * This file is auto-generated by the build process. + * If you had any custom code inside this file, then + * instead write it inside the "bin/console.js" file. + */ + +await import('./bin/console.js') \ No newline at end of file diff --git a/adonisrc.js b/adonisrc.js new file mode 100644 index 0000000..514067b --- /dev/null +++ b/adonisrc.js @@ -0,0 +1,53 @@ +import { defineConfig } from '@adonisjs/core/app'; +export default defineConfig({ + experimental: { + mergeMultipartFieldsAndFiles: true, + shutdownInReverseOrder: true, + }, + commands: [() => import('@adonisjs/core/commands')], + providers: [ + () => import('@adonisjs/core/providers/app_provider'), + () => import('@adonisjs/core/providers/hash_provider'), + { + file: () => import('@adonisjs/core/providers/repl_provider'), + environment: ['repl', 'test'], + }, + () => import('@adonisjs/core/providers/vinejs_provider'), + () => import('@adonisjs/core/providers/edge_provider'), + () => import('@adonisjs/session/session_provider'), + () => import('@adonisjs/vite/vite_provider'), + () => import('@adonisjs/shield/shield_provider'), + () => import('@adonisjs/static/static_provider'), + ], + preloads: [() => import('#start/routes'), () => import('#start/kernel')], + tests: { + suites: [ + { + files: ['tests/unit/**/*.spec(.ts|.js)'], + name: 'unit', + timeout: 2000, + }, + { + files: ['tests/functional/**/*.spec(.ts|.js)'], + name: 'functional', + timeout: 30000, + }, + ], + forceExit: false, + }, + metaFiles: [ + { + pattern: 'resources/views/**/*.edge', + reloadServer: false, + }, + { + pattern: 'public/**', + reloadServer: false, + }, + ], + assetsBundler: false, + hooks: { + onBuildStarting: [() => import('@adonisjs/vite/build_hook')], + }, +}); +//# sourceMappingURL=adonisrc.js.map \ No newline at end of file diff --git a/adonisrc.js.map b/adonisrc.js.map new file mode 100644 index 0000000..48311d3 --- /dev/null +++ b/adonisrc.js.map @@ -0,0 +1 @@ +{"version":3,"file":"adonisrc.js","sourceRoot":"","sources":["../adonisrc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,eAAe,YAAY,CAAC;IAW1B,YAAY,EAAE;QACZ,4BAA4B,EAAE,IAAI;QAClC,sBAAsB,EAAE,IAAI;KAC7B;IAWD,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAWnD,SAAS,EAAE;QACT,GAAG,EAAE,CAAC,MAAM,CAAC,uCAAuC,CAAC;QACrD,GAAG,EAAE,CAAC,MAAM,CAAC,wCAAwC,CAAC;QACtD;YACE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wCAAwC,CAAC;YAC5D,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;SAC9B;QACD,GAAG,EAAE,CAAC,MAAM,CAAC,0CAA0C,CAAC;QACxD,GAAG,EAAE,CAAC,MAAM,CAAC,wCAAwC,CAAC;QACtD,GAAG,EAAE,CAAC,MAAM,CAAC,oCAAoC,CAAC;QAClD,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC;QAC5C,GAAG,EAAE,CAAC,MAAM,CAAC,kCAAkC,CAAC;QAChD,GAAG,EAAE,CAAC,MAAM,CAAC,kCAAkC,CAAC;KACjD;IAUD,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAWxE,KAAK,EAAE;QACL,MAAM,EAAE;YACN;gBACE,KAAK,EAAE,CAAC,+BAA+B,CAAC;gBACxC,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI;aACd;YACD;gBACE,KAAK,EAAE,CAAC,qCAAqC,CAAC;gBAC9C,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,KAAK;aACf;SACF;QACD,SAAS,EAAE,KAAK;KACjB;IAED,SAAS,EAAE;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,YAAY,EAAE,KAAK;SACpB;QACD;YACE,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,KAAK;SACpB;KACF;IAED,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE;QACL,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;KAC7D;CACF,CAAC,CAAA"} \ No newline at end of file diff --git a/app/controllers/auth_controller.js b/app/controllers/auth_controller.js new file mode 100644 index 0000000..16c1b60 --- /dev/null +++ b/app/controllers/auth_controller.js @@ -0,0 +1,29 @@ +import env from '#start/env'; +export default class AuthController { + async showLogin({ view, session, response }) { + if (session.get('is_authenticated')) { + return response.redirect().toPath('/'); + } + return view.render('login'); + } + async login({ request, session, response }) { + const { username, password } = request.only(['username', 'password']); + const validUsername = env.get('AUTH_USERNAME'); + const validPassword = env.get('AUTH_PASSWORD'); + if (username === validUsername && password === validPassword) { + session.put('is_authenticated', true); + session.put('username', username); + const intendedUrl = session.get('intended_url', '/'); + session.forget('intended_url'); + return response.redirect().toPath(intendedUrl); + } + session.flash('errors', { form: 'Invalid username or password.' }); + session.flashOnly(['username']); + return response.redirect().toPath('/login'); + } + async logout({ session, response }) { + session.clear(); + return response.redirect().toPath('/login'); + } +} +//# sourceMappingURL=auth_controller.js.map \ No newline at end of file diff --git a/app/controllers/auth_controller.js.map b/app/controllers/auth_controller.js.map new file mode 100644 index 0000000..e0ba23e --- /dev/null +++ b/app/controllers/auth_controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth_controller.js","sourceRoot":"","sources":["../../../app/controllers/auth_controller.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,YAAY,CAAA;AAE5B,MAAM,CAAC,OAAO,OAAO,cAAc;IAKjC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAe;QACtD,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACpC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAQD,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAe;QACrD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA;QAErE,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QAC9C,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QAE9C,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;YACrC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAEjC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;YACpD,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAC9B,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAChD,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAA;QAElE,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;QAC/B,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAMD,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAe;QAC7C,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;CACF"} \ No newline at end of file diff --git a/app/controllers/media_controller.js b/app/controllers/media_controller.js new file mode 100644 index 0000000..053d20f --- /dev/null +++ b/app/controllers/media_controller.js @@ -0,0 +1,50 @@ +import app from '@adonisjs/core/services/app'; +import { readdirSync, existsSync, statSync } from 'node:fs'; +import { extname, join } from 'node:path'; +const IMAGE_EXTENSIONS = new Set(['.jpg', '.jpeg', '.png', '.gif', '.webp']); +const VIDEO_EXTENSIONS = new Set(['.mp4', '.mov', '.avi', '.webm']); +function getMediaType(filename) { + const ext = extname(filename).toLowerCase(); + if (IMAGE_EXTENSIONS.has(ext)) + return 'image'; + if (VIDEO_EXTENSIONS.has(ext)) + return 'video'; + return 'unknown'; +} +export default class MediaController { + async index({ view }) { + const uploadsDir = app.publicPath('uploads'); + let files = []; + try { + const entries = readdirSync(uploadsDir, { withFileTypes: true }); + files = entries + .filter((entry) => entry.isFile()) + .map((entry) => { + const stat = statSync(join(uploadsDir, entry.name)); + return { + filename: entry.name, + url: `/uploads/${entry.name}`, + type: getMediaType(entry.name), + size: stat.size, + }; + }) + .sort((a, b) => b.filename.localeCompare(a.filename)); + } + catch { + files = []; + } + return view.render('dashboard', { files }); + } + async serve({ params, response }) { + const { filename } = params; + if (!/^[\w\-. ]+$/.test(filename)) { + return response.status(400).json({ error: 'Invalid filename.' }); + } + const filePath = join(app.publicPath('uploads'), filename); + if (!existsSync(filePath)) { + return response.status(404).json({ error: 'Media not found', filename }); + } + return response.download(filePath); + } +} +//# sourceMappingURL=media_controller.js.map \ No newline at end of file diff --git a/app/controllers/media_controller.js.map b/app/controllers/media_controller.js.map new file mode 100644 index 0000000..47e7eb3 --- /dev/null +++ b/app/controllers/media_controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media_controller.js","sourceRoot":"","sources":["../../../app/controllers/media_controller.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/controllers/upload_controller.js b/app/controllers/upload_controller.js new file mode 100644 index 0000000..eaa4bec --- /dev/null +++ b/app/controllers/upload_controller.js @@ -0,0 +1,40 @@ +import app from '@adonisjs/core/services/app'; +const ALLOWED_EXTENSIONS = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'mp4', 'mov', 'avi', 'webm']; +const MAX_SIZE = '100mb'; +export default class UploadController { + async store({ request, response }) { + const file = request.file('file', { + size: MAX_SIZE, + extnames: ALLOWED_EXTENSIONS, + }); + if (!file) { + return response.badRequest({ success: false, message: 'No file provided.' }); + } + if (!file.isValid) { + return response.unprocessableEntity({ + success: false, + message: file.errors[0]?.message ?? 'File validation failed.', + errors: file.errors, + }); + } + const safeName = file.clientName.replace(/[^a-zA-Z0-9._-]/g, '_'); + const uniqueFilename = `${Date.now()}_${safeName}`; + await file.move(app.publicPath('uploads'), { + name: uniqueFilename, + overwrite: false, + }); + if (file.hasErrors) { + return response.internalServerError({ + success: false, + message: 'Could not save the file to disk.', + errors: file.errors, + }); + } + return response.ok({ + success: true, + filename: uniqueFilename, + url: `/uploads/${uniqueFilename}`, + }); + } +} +//# sourceMappingURL=upload_controller.js.map \ No newline at end of file diff --git a/app/controllers/upload_controller.js.map b/app/controllers/upload_controller.js.map new file mode 100644 index 0000000..9e39291 --- /dev/null +++ b/app/controllers/upload_controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"upload_controller.js","sourceRoot":"","sources":["../../../app/controllers/upload_controller.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAE7C,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAC7F,MAAM,QAAQ,GAAG,OAAO,CAAA;AAExB,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAMnC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAe;QAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;YAChC,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAC9E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,QAAQ,CAAC,mBAAmB,CAAC;gBAClC,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,yBAAyB;gBAC7D,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAA;QACJ,CAAC;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;QACjE,MAAM,cAAc,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAA;QAElD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YACzC,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC,mBAAmB,CAAC;gBAClC,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,kCAAkC;gBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,cAAc;YACxB,GAAG,EAAE,YAAY,cAAc,EAAE;SAClC,CAAC,CAAA;IACJ,CAAC;CACF"} \ No newline at end of file diff --git a/app/exceptions/handler.js b/app/exceptions/handler.js new file mode 100644 index 0000000..67156fc --- /dev/null +++ b/app/exceptions/handler.js @@ -0,0 +1,21 @@ +import app from '@adonisjs/core/services/app'; +import { ExceptionHandler } from '@adonisjs/core/http'; +export default class HttpExceptionHandler extends ExceptionHandler { + debug = !app.inProduction; + renderStatusPages = app.inProduction; + statusPages = { + '404': (error, { view }) => { + return view.render('pages/errors/not_found', { error }); + }, + '500..599': (error, { view }) => { + return view.render('pages/errors/server_error', { error }); + }, + }; + async handle(error, ctx) { + return super.handle(error, ctx); + } + async report(error, ctx) { + return super.report(error, ctx); + } +} +//# sourceMappingURL=handler.js.map \ No newline at end of file diff --git a/app/exceptions/handler.js.map b/app/exceptions/handler.js.map new file mode 100644 index 0000000..ac8ec92 --- /dev/null +++ b/app/exceptions/handler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../app/exceptions/handler.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAC7C,OAAO,EAAe,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGnE,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,gBAAgB;IAKtD,KAAK,GAAG,CAAC,GAAG,CAAC,YAAY,CAAA;IAOzB,iBAAiB,GAAG,GAAG,CAAC,YAAY,CAAA;IAMpC,WAAW,GAAgD;QACnE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAC5D,CAAC;KACF,CAAA;IAMD,KAAK,CAAC,MAAM,CAAC,KAAc,EAAE,GAAgB;QAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC;IAQD,KAAK,CAAC,MAAM,CAAC,KAAc,EAAE,GAAgB;QAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC;CACF"} \ No newline at end of file diff --git a/app/middleware/auth_middleware.js b/app/middleware/auth_middleware.js new file mode 100644 index 0000000..e69b88b --- /dev/null +++ b/app/middleware/auth_middleware.js @@ -0,0 +1,11 @@ +export default class AuthMiddleware { + async handle({ session, response, request }, next) { + const isAuthenticated = session.get('is_authenticated', false); + if (!isAuthenticated) { + session.put('intended_url', request.url()); + return response.redirect().toPath('/login'); + } + await next(); + } +} +//# sourceMappingURL=auth_middleware.js.map \ No newline at end of file diff --git a/app/middleware/auth_middleware.js.map b/app/middleware/auth_middleware.js.map new file mode 100644 index 0000000..9507312 --- /dev/null +++ b/app/middleware/auth_middleware.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth_middleware.js","sourceRoot":"","sources":["../../../app/middleware/auth_middleware.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAe,EAAE,IAAY;QACpE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QAE9D,IAAI,CAAC,eAAe,EAAE,CAAC;YAErB,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;YAC1C,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC7C,CAAC;QAED,MAAM,IAAI,EAAE,CAAA;IACd,CAAC;CACF"} \ No newline at end of file diff --git a/app/middleware/container_bindings_middleware.js b/app/middleware/container_bindings_middleware.js new file mode 100644 index 0000000..7e7e923 --- /dev/null +++ b/app/middleware/container_bindings_middleware.js @@ -0,0 +1,10 @@ +import { Logger } from '@adonisjs/core/logger'; +import { HttpContext } from '@adonisjs/core/http'; +export default class ContainerBindingsMiddleware { + handle(ctx, next) { + ctx.containerResolver.bindValue(HttpContext, ctx); + ctx.containerResolver.bindValue(Logger, ctx.logger); + return next(); + } +} +//# sourceMappingURL=container_bindings_middleware.js.map \ No newline at end of file diff --git a/app/middleware/container_bindings_middleware.js.map b/app/middleware/container_bindings_middleware.js.map new file mode 100644 index 0000000..fd592c0 --- /dev/null +++ b/app/middleware/container_bindings_middleware.js.map @@ -0,0 +1 @@ +{"version":3,"file":"container_bindings_middleware.js","sourceRoot":"","sources":["../../../app/middleware/container_bindings_middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAUjD,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC9C,MAAM,CAAC,GAAgB,EAAE,IAAY;QACnC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;QACjD,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QAEnD,OAAO,IAAI,EAAE,CAAA;IACf,CAAC;CACF"} \ No newline at end of file diff --git a/bin/console.js b/bin/console.js new file mode 100644 index 0000000..8c952e1 --- /dev/null +++ b/bin/console.js @@ -0,0 +1,24 @@ +import 'reflect-metadata'; +import { Ignitor, prettyPrintError } from '@adonisjs/core'; +const APP_ROOT = new URL('../', import.meta.url); +const IMPORTER = (filePath) => { + if (filePath.startsWith('./') || filePath.startsWith('../')) { + return import(new URL(filePath, APP_ROOT).href); + } + return import(filePath); +}; +new Ignitor(APP_ROOT, { importer: IMPORTER }) + .tap((app) => { + app.booting(async () => { + await import('#start/env'); + }); + app.listen('SIGTERM', () => app.terminate()); + app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate()); +}) + .ace() + .handle(process.argv.splice(2)) + .catch((error) => { + process.exitCode = 1; + prettyPrintError(error); +}); +//# sourceMappingURL=console.js.map \ No newline at end of file diff --git a/bin/console.js.map b/bin/console.js.map new file mode 100644 index 0000000..10d37cc --- /dev/null +++ b/bin/console.js.map @@ -0,0 +1 @@ +{"version":3,"file":"console.js","sourceRoot":"","sources":["../../bin/console.ts"],"names":[],"mappings":"AAaA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAM1D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAMhD,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE;IACpC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;KAC1C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;IACX,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QACrB,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;AACjE,CAAC,CAAC;KACD,GAAG,EAAE;KACL,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC9B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACpB,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC,CAAC,CAAA"} \ No newline at end of file diff --git a/bin/server.js b/bin/server.js new file mode 100644 index 0000000..1ae2fd3 --- /dev/null +++ b/bin/server.js @@ -0,0 +1,24 @@ +import 'reflect-metadata'; +import { Ignitor, prettyPrintError } from '@adonisjs/core'; +const APP_ROOT = new URL('../', import.meta.url); +const IMPORTER = (filePath) => { + if (filePath.startsWith('./') || filePath.startsWith('../')) { + return import(new URL(filePath, APP_ROOT).href); + } + return import(filePath); +}; +new Ignitor(APP_ROOT, { importer: IMPORTER }) + .tap((app) => { + app.booting(async () => { + await import('#start/env'); + }); + app.listen('SIGTERM', () => app.terminate()); + app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate()); +}) + .httpServer() + .start() + .catch((error) => { + process.exitCode = 1; + prettyPrintError(error); +}); +//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/bin/server.js.map b/bin/server.js.map new file mode 100644 index 0000000..8ecd51e --- /dev/null +++ b/bin/server.js.map @@ -0,0 +1 @@ +{"version":3,"file":"server.js","sourceRoot":"","sources":["../../bin/server.ts"],"names":[],"mappings":"AAWA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAM1D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAMhD,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE;IACpC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;KAC1C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;IACX,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QACrB,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;AACjE,CAAC,CAAC;KACD,UAAU,EAAE;KACZ,KAAK,EAAE;KACP,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACpB,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC,CAAC,CAAA"} \ No newline at end of file diff --git a/bin/test.js b/bin/test.js new file mode 100644 index 0000000..71d0244 --- /dev/null +++ b/bin/test.js @@ -0,0 +1,38 @@ +process.env.NODE_ENV = 'test'; +import 'reflect-metadata'; +import { Ignitor, prettyPrintError } from '@adonisjs/core'; +import { configure, processCLIArgs, run } from '@japa/runner'; +const APP_ROOT = new URL('../', import.meta.url); +const IMPORTER = (filePath) => { + if (filePath.startsWith('./') || filePath.startsWith('../')) { + return import(new URL(filePath, APP_ROOT).href); + } + return import(filePath); +}; +new Ignitor(APP_ROOT, { importer: IMPORTER }) + .tap((app) => { + app.booting(async () => { + await import('#start/env'); + }); + app.listen('SIGTERM', () => app.terminate()); + app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate()); +}) + .testRunner() + .configure(async (app) => { + const { runnerHooks, ...config } = await import('../tests/bootstrap.js'); + processCLIArgs(process.argv.splice(2)); + configure({ + ...app.rcFile.tests, + ...config, + ...{ + setup: runnerHooks.setup, + teardown: runnerHooks.teardown.concat([() => app.terminate()]), + }, + }); +}) + .run(() => run()) + .catch((error) => { + process.exitCode = 1; + prettyPrintError(error); +}); +//# sourceMappingURL=test.js.map \ No newline at end of file diff --git a/bin/test.js.map b/bin/test.js.map new file mode 100644 index 0000000..6965acc --- /dev/null +++ b/bin/test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"test.js","sourceRoot":"","sources":["../../bin/test.ts"],"names":[],"mappings":"AAYA,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAA;AAE7B,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAM7D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAMhD,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE;IACpC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;KAC1C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;IACX,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QACrB,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5C,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;AACjE,CAAC,CAAC;KACD,UAAU,EAAE;KACZ,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACvB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAExE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,SAAS,CAAC;QACR,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK;QACnB,GAAG,MAAM;QACT,GAAG;YACD,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;SAC/D;KACF,CAAC,CAAA;AACJ,CAAC,CAAC;KACD,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;KAChB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACpB,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC,CAAC,CAAA"} \ No newline at end of file diff --git a/config/app.js b/config/app.js new file mode 100644 index 0000000..4bd6dde --- /dev/null +++ b/config/app.js @@ -0,0 +1,19 @@ +import env from '#start/env'; +import app from '@adonisjs/core/services/app'; +import { Secret } from '@adonisjs/core/helpers'; +import { defineConfig } from '@adonisjs/core/http'; +export const appKey = new Secret(env.get('APP_KEY')); +export const http = defineConfig({ + generateRequestId: true, + allowMethodSpoofing: false, + useAsyncLocalStorage: false, + cookie: { + domain: '', + path: '/', + maxAge: '2h', + httpOnly: true, + secure: app.inProduction, + sameSite: 'lax', + }, +}); +//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/config/app.js.map b/config/app.js.map new file mode 100644 index 0000000..76486f3 --- /dev/null +++ b/config/app.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.js","sourceRoot":"","sources":["../../config/app.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAA;AAC5B,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AASlD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;AAKpD,MAAM,CAAC,MAAM,IAAI,GAAG,YAAY,CAAC;IAC/B,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,KAAK;IAM1B,oBAAoB,EAAE,KAAK;IAM3B,MAAM,EAAE;QACN,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,YAAY;QACxB,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAA"} \ No newline at end of file diff --git a/config/bodyparser.js b/config/bodyparser.js new file mode 100644 index 0000000..7e9d606 --- /dev/null +++ b/config/bodyparser.js @@ -0,0 +1,26 @@ +import { defineConfig } from '@adonisjs/core/bodyparser'; +const bodyParserConfig = defineConfig({ + allowedMethods: ['POST', 'PUT', 'PATCH', 'DELETE'], + form: { + convertEmptyStringsToNull: true, + types: ['application/x-www-form-urlencoded'], + }, + json: { + convertEmptyStringsToNull: true, + types: [ + 'application/json', + 'application/json-patch+json', + 'application/vnd.api+json', + 'application/csp-report', + ], + }, + multipart: { + autoProcess: true, + convertEmptyStringsToNull: true, + processManually: [], + limit: '100mb', + types: ['multipart/form-data'], + }, +}); +export default bodyParserConfig; +//# sourceMappingURL=bodyparser.js.map \ No newline at end of file diff --git a/config/bodyparser.js.map b/config/bodyparser.js.map new file mode 100644 index 0000000..f852164 --- /dev/null +++ b/config/bodyparser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bodyparser.js","sourceRoot":"","sources":["../../config/bodyparser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,gBAAgB,GAAG,YAAY,CAAC;IAKpC,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IAMlD,IAAI,EAAE;QACJ,yBAAyB,EAAE,IAAI;QAC/B,KAAK,EAAE,CAAC,mCAAmC,CAAC;KAC7C;IAKD,IAAI,EAAE;QACJ,yBAAyB,EAAE,IAAI;QAC/B,KAAK,EAAE;YACL,kBAAkB;YAClB,6BAA6B;YAC7B,0BAA0B;YAC1B,wBAAwB;SACzB;KACF;IAMD,SAAS,EAAE;QAMT,WAAW,EAAE,IAAI;QACjB,yBAAyB,EAAE,IAAI;QAC/B,eAAe,EAAE,EAAE;QAMnB,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,CAAC,qBAAqB,CAAC;KAC/B;CACF,CAAC,CAAA;AAEF,eAAe,gBAAgB,CAAA"} \ No newline at end of file diff --git a/config/hash.js b/config/hash.js new file mode 100644 index 0000000..7806663 --- /dev/null +++ b/config/hash.js @@ -0,0 +1,14 @@ +import { defineConfig, drivers } from '@adonisjs/core/hash'; +const hashConfig = defineConfig({ + default: 'scrypt', + list: { + scrypt: drivers.scrypt({ + cost: 16384, + blockSize: 8, + parallelization: 1, + maxMemory: 33554432, + }), + }, +}); +export default hashConfig; +//# sourceMappingURL=hash.js.map \ No newline at end of file diff --git a/config/hash.js.map b/config/hash.js.map new file mode 100644 index 0000000..3ebdb6d --- /dev/null +++ b/config/hash.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../config/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE3D,MAAM,UAAU,GAAG,YAAY,CAAC;IAC9B,OAAO,EAAE,QAAQ;IAEjB,IAAI,EAAE;QACJ,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,CAAC;YAClB,SAAS,EAAE,QAAQ;SACpB,CAAC;KACH;CACF,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"} \ No newline at end of file diff --git a/config/logger.js b/config/logger.js new file mode 100644 index 0000000..a2dcce5 --- /dev/null +++ b/config/logger.js @@ -0,0 +1,21 @@ +import env from '#start/env'; +import app from '@adonisjs/core/services/app'; +import { defineConfig, targets } from '@adonisjs/core/logger'; +const loggerConfig = defineConfig({ + default: 'app', + loggers: { + app: { + enabled: true, + name: env.get('APP_NAME'), + level: env.get('LOG_LEVEL'), + transport: { + targets: targets() + .pushIf(!app.inProduction, targets.pretty()) + .pushIf(app.inProduction, targets.file({ destination: 1 })) + .toArray(), + }, + }, + }, +}); +export default loggerConfig; +//# sourceMappingURL=logger.js.map \ No newline at end of file diff --git a/config/logger.js.map b/config/logger.js.map new file mode 100644 index 0000000..2b7fb70 --- /dev/null +++ b/config/logger.js.map @@ -0,0 +1 @@ +{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../config/logger.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAA;AAC5B,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,YAAY,GAAG,YAAY,CAAC;IAChC,OAAO,EAAE,KAAK;IAMd,OAAO,EAAE;QACP,GAAG,EAAE;YACH,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;YACzB,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAC3B,SAAS,EAAE;gBACT,OAAO,EAAE,OAAO,EAAE;qBACf,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;qBAC3C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;qBAC1D,OAAO,EAAE;aACb;SACF;KACF;CACF,CAAC,CAAA;AAEF,eAAe,YAAY,CAAA"} \ No newline at end of file diff --git a/config/session.js b/config/session.js new file mode 100644 index 0000000..3d87780 --- /dev/null +++ b/config/session.js @@ -0,0 +1,21 @@ +import env from '#start/env'; +import app from '@adonisjs/core/services/app'; +import { defineConfig, stores } from '@adonisjs/session'; +const sessionConfig = defineConfig({ + enabled: true, + cookieName: 'adonis-session', + clearWithBrowser: false, + age: '2h', + cookie: { + path: '/', + httpOnly: true, + secure: app.inProduction, + sameSite: 'lax', + }, + store: env.get('SESSION_DRIVER'), + stores: { + cookie: stores.cookie(), + }, +}); +export default sessionConfig; +//# sourceMappingURL=session.js.map \ No newline at end of file diff --git a/config/session.js.map b/config/session.js.map new file mode 100644 index 0000000..5aabe5b --- /dev/null +++ b/config/session.js.map @@ -0,0 +1 @@ +{"version":3,"file":"session.js","sourceRoot":"","sources":["../../config/session.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAA;AAC5B,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAExD,MAAM,aAAa,GAAG,YAAY,CAAC;IACjC,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,gBAAgB;IAM5B,gBAAgB,EAAE,KAAK;IAMvB,GAAG,EAAE,IAAI;IAMT,MAAM,EAAE;QACN,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,YAAY;QACxB,QAAQ,EAAE,KAAK;KAChB;IAOD,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAMhC,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;KACxB;CACF,CAAC,CAAA;AAEF,eAAe,aAAa,CAAA"} \ No newline at end of file diff --git a/config/shield.js b/config/shield.js new file mode 100644 index 0000000..13a0022 --- /dev/null +++ b/config/shield.js @@ -0,0 +1,27 @@ +import { defineConfig } from '@adonisjs/shield'; +const shieldConfig = defineConfig({ + csp: { + enabled: false, + directives: {}, + reportOnly: false, + }, + csrf: { + enabled: true, + exceptRoutes: [], + enableXsrfCookie: false, + methods: ['POST', 'PUT', 'PATCH', 'DELETE'], + }, + xFrame: { + enabled: true, + action: 'DENY', + }, + hsts: { + enabled: true, + maxAge: '180 days', + }, + contentTypeSniffing: { + enabled: true, + }, +}); +export default shieldConfig; +//# sourceMappingURL=shield.js.map \ No newline at end of file diff --git a/config/shield.js.map b/config/shield.js.map new file mode 100644 index 0000000..5de4e51 --- /dev/null +++ b/config/shield.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shield.js","sourceRoot":"","sources":["../../config/shield.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,YAAY,GAAG,YAAY,CAAC;IAKhC,GAAG,EAAE;QACH,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,KAAK;KAClB;IAMD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,EAAE;QAChB,gBAAgB,EAAE,KAAK;QACvB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;KAC5C;IAMD,MAAM,EAAE;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,MAAM;KACf;IAKD,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,UAAU;KACnB;IAMD,mBAAmB,EAAE;QACnB,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAA;AAEF,eAAe,YAAY,CAAA"} \ No newline at end of file diff --git a/config/static.js b/config/static.js new file mode 100644 index 0000000..bd9f221 --- /dev/null +++ b/config/static.js @@ -0,0 +1,9 @@ +import { defineConfig } from '@adonisjs/static'; +const staticServerConfig = defineConfig({ + enabled: true, + etag: true, + lastModified: true, + dotFiles: 'ignore', +}); +export default staticServerConfig; +//# sourceMappingURL=static.js.map \ No newline at end of file diff --git a/config/static.js.map b/config/static.js.map new file mode 100644 index 0000000..b922765 --- /dev/null +++ b/config/static.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static.js","sourceRoot":"","sources":["../../config/static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAS/C,MAAM,kBAAkB,GAAG,YAAY,CAAC;IACtC,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAA;AAEF,eAAe,kBAAkB,CAAA"} \ No newline at end of file diff --git a/config/vite.js b/config/vite.js new file mode 100644 index 0000000..b4376f5 --- /dev/null +++ b/config/vite.js @@ -0,0 +1,11 @@ +import { defineConfig } from '@adonisjs/vite'; +const viteBackendConfig = defineConfig({ + buildDirectory: 'public/assets', + manifestFile: 'public/assets/.vite/manifest.json', + assetsUrl: '/assets', + scriptAttributes: { + defer: true, + }, +}); +export default viteBackendConfig; +//# sourceMappingURL=vite.js.map \ No newline at end of file diff --git a/config/vite.js.map b/config/vite.js.map new file mode 100644 index 0000000..b481e74 --- /dev/null +++ b/config/vite.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vite.js","sourceRoot":"","sources":["../../config/vite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,iBAAiB,GAAG,YAAY,CAAC;IAMrC,cAAc,EAAE,eAAe;IAM/B,YAAY,EAAE,mCAAmC;IAMjD,SAAS,EAAE,SAAS;IAEpB,gBAAgB,EAAE;QAChB,KAAK,EAAE,IAAI;KACZ;CACF,CAAC,CAAA;AAEF,eAAe,iBAAiB,CAAA"} \ No newline at end of file diff --git a/gitignore b/gitignore new file mode 100644 index 0000000..dadabfc --- /dev/null +++ b/gitignore @@ -0,0 +1,28 @@ +# Dependencies and AdonisJS build +node_modules +build +tmp + +# Secrets +.env +.env.local +.env.production.local +.env.development.local + +# Frontend assets compiled code +public/assets + +# Uploaded media files +public/uploads + +# Build tools specific +npm-debug.log +yarn-error.log + +# Editors specific +.fleet +.idea +.vscode + +# Platform specific +.DS_Store diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f1e60d8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,8999 @@ +{ + "name": "adonisjs-web-stater-kit", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "adonisjs-web-stater-kit", + "version": "0.0.0", + "license": "UNLICENSED", + "dependencies": { + "@adonisjs/auth": "^9.4.0", + "@adonisjs/core": "^6.18.0", + "@adonisjs/lucid": "^21.6.1", + "@adonisjs/session": "^7.5.1", + "@adonisjs/shield": "^8.2.0", + "@adonisjs/static": "^1.1.1", + "@adonisjs/vite": "^4.0.0", + "@vinejs/vine": "^3.0.1", + "edge.js": "^6.2.1", + "reflect-metadata": "^0.2.2" + }, + "devDependencies": { + "@adonisjs/assembler": "^7.8.2", + "@adonisjs/eslint-config": "^2.0.0", + "@adonisjs/prettier-config": "^1.4.4", + "@adonisjs/tsconfig": "^1.4.0", + "@japa/assert": "^4.0.1", + "@japa/plugin-adonisjs": "^4.0.0", + "@japa/runner": "^4.2.0", + "@swc/core": "1.11.24", + "@types/node": "^22.15.18", + "eslint": "^9.26.0", + "hot-hook": "^0.4.0", + "pino-pretty": "^13.0.0", + "prettier": "^3.5.3", + "ts-node-maintained": "^10.9.5", + "typescript": "~5.8", + "vite": "^6.3.5" + } + }, + "node_modules/@adonisjs/ace": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-13.3.0.tgz", + "integrity": "sha512-68dveDFd766p69cBvK/MtOrOP0+YKYLeHspa9KLEWcWk9suPf3pbGkHQ2pwDnvLJxBPHk4932KbbSSzzpGNZGw==", + "license": "MIT", + "dependencies": { + "@poppinss/cliui": "^6.4.1", + "@poppinss/hooks": "^7.2.4", + "@poppinss/macroable": "^1.0.3", + "@poppinss/prompts": "^3.1.3", + "@poppinss/utils": "^6.8.3", + "fastest-levenshtein": "^1.0.16", + "jsonschema": "^1.4.1", + "string-width": "^7.2.0", + "yargs-parser": "^21.1.1", + "youch": "^3.3.4", + "youch-terminal": "^2.2.3" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/application": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-8.4.1.tgz", + "integrity": "sha512-2vwO/8DoKJ9AR4Vvllz08RcomBoETc3FMf+q+ri1BVVjc76tLGV3KcYZp8+uKOuEreiK6poQ7NwJrR1P5ANA/w==", + "license": "MIT", + "dependencies": { + "@poppinss/hooks": "^7.2.5", + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.3", + "glob-parent": "^6.0.2", + "tempura": "^0.4.1" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/config": "^5.0.0", + "@adonisjs/fold": "^10.0.0" + } + }, + "node_modules/@adonisjs/assembler": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-7.8.2.tgz", + "integrity": "sha512-csLdMW58cwuRjdPEDE0dqwHZCT5snCh+1sQ19HPnQ/BLKPPAvQdDRdw0atoC8LVmouB8ghXVHp3SxnVxlvXYWQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@adonisjs/env": "^6.1.0", + "@antfu/install-pkg": "^0.4.1", + "@poppinss/chokidar-ts": "^4.1.4", + "@poppinss/cliui": "^6.4.1", + "@poppinss/hooks": "^7.2.3", + "@poppinss/utils": "^6.7.3", + "cpy": "^11.1.0", + "dedent": "^1.5.3", + "execa": "^9.3.1", + "fast-glob": "^3.3.2", + "get-port": "^7.1.0", + "junk": "^4.0.1", + "picomatch": "^4.0.2", + "pretty-hrtime": "^1.0.3", + "slash": "^5.1.0", + "ts-morph": "^23.0.0" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "typescript": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/@adonisjs/auth": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-9.4.0.tgz", + "integrity": "sha512-dzvnJRKY+RcKUXCRT6ebnlGV0wAfejTSGqS0XbgjB97r6Pww14MhsY89EBr1nSydQzvjdbtIR3EDGbU97BVmbQ==", + "license": "MIT", + "dependencies": { + "@adonisjs/presets": "^2.6.4", + "@poppinss/utils": "^6.9.2", + "basic-auth": "^2.0.1" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.11.0", + "@adonisjs/lucid": "^20.0.0 || ^21.0.1", + "@adonisjs/session": "^7.4.1", + "@japa/api-client": "^2.0.3 || ^3.0.0", + "@japa/browser-client": "^2.0.3", + "@japa/plugin-adonisjs": "^3.0.1 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@adonisjs/lucid": { + "optional": true + }, + "@adonisjs/session": { + "optional": true + }, + "@japa/api-client": { + "optional": true + }, + "@japa/browser-client": { + "optional": true + }, + "@japa/plugin-adonisjs": { + "optional": true + } + } + }, + "node_modules/@adonisjs/bodyparser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-10.1.0.tgz", + "integrity": "sha512-sQVi1WASKSONr6DDG0YGf4rcd7Hfm9D5fdAqGcH1NWUfVP+2+6ogg0Z++X0a4wRbS7bU3TthTDmMX2n+839Cww==", + "license": "MIT", + "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", + "@poppinss/macroable": "^1.0.4", + "@poppinss/multiparty": "^2.0.1", + "@poppinss/utils": "^6.9.3", + "@types/qs": "^6.9.18", + "bytes": "^3.1.2", + "file-type": "^20.5.0", + "inflation": "^2.1.0", + "media-typer": "^1.1.0", + "qs": "^6.14.0", + "raw-body": "^3.0.0" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/http-server": "^7.4.0" + } + }, + "node_modules/@adonisjs/config": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-5.0.2.tgz", + "integrity": "sha512-NXjFqDHNGRTZ1EnA4zr20GFEt7qw/JvZ4ZV8/PzFyVc7dPoFprpoyE3bw7kmlKHhcQdBbF7YXCGB4q+HQUnqiQ==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.7.3" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/core": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-6.18.0.tgz", + "integrity": "sha512-Uuj7kzlMPiS3MVOCHfiXLVeFXUqrjGjF43LNLJb4Q2hBY/q0T2kUym2kVO2gazkLWj8YQKLdOA4ij7t9rDR4OA==", + "license": "MIT", + "dependencies": { + "@adonisjs/ace": "^13.3.0", + "@adonisjs/application": "^8.4.1", + "@adonisjs/bodyparser": "^10.1.0", + "@adonisjs/config": "^5.0.2", + "@adonisjs/encryption": "^6.0.2", + "@adonisjs/env": "^6.2.0", + "@adonisjs/events": "^9.0.2", + "@adonisjs/fold": "^10.1.3", + "@adonisjs/hash": "^9.1.1", + "@adonisjs/health": "^2.0.0", + "@adonisjs/http-server": "^7.6.1", + "@adonisjs/logger": "^6.0.6", + "@adonisjs/repl": "^4.1.0", + "@antfu/install-pkg": "^1.1.0", + "@paralleldrive/cuid2": "^2.2.2", + "@poppinss/colors": "^4.1.4", + "@poppinss/dumper": "^0.6.3", + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.3", + "@sindresorhus/is": "^7.0.1", + "@types/he": "^1.2.3", + "error-stack-parser-es": "^1.0.5", + "he": "^1.2.0", + "parse-imports": "^2.2.1", + "pretty-hrtime": "^1.0.3", + "string-width": "^7.2.0", + "youch": "^3.3.4", + "youch-terminal": "^2.2.3" + }, + "bin": { + "adonis-kit": "build/toolkit/main.js" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "@adonisjs/assembler": "^7.8.0", + "@vinejs/vine": "^2.1.0 || ^3.0.0", + "argon2": "^0.31.2 || ^0.41.0 || ^0.43.0", + "bcrypt": "^5.1.1 || ^6.0.0", + "edge.js": "^6.2.0" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + }, + "@vinejs/vine": { + "optional": true + }, + "argon2": { + "optional": true + }, + "bcrypt": { + "optional": true + }, + "edge.js": { + "optional": true + } + } + }, + "node_modules/@adonisjs/core/node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@adonisjs/core/node_modules/@sindresorhus/is": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz", + "integrity": "sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@adonisjs/core/node_modules/package-manager-detector": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", + "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", + "license": "MIT" + }, + "node_modules/@adonisjs/core/node_modules/tinyexec": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", + "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", + "license": "MIT" + }, + "node_modules/@adonisjs/encryption": { + "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==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.7.3" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/env": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-6.2.0.tgz", + "integrity": "sha512-DZ7zQ4sBhzWftjU/SxJ7BstimrEiByCvmtAcMNDpDjOtJnR50172PRz1X7KjM3EqjCVrB19izzRVx/rmpCRPOA==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.9.2", + "@poppinss/validator-lite": "^2.1.0", + "dotenv": "^16.4.7", + "split-lines": "^3.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/eslint-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/eslint-config/-/eslint-config-2.0.0.tgz", + "integrity": "sha512-u7xxPmYQ66cmVet6OjOR9yQsHC7h/ZhDXPb4w0UACsXKfKxL4VRsiYsI+/E5xwsfB3dmT/yWO6UrTx7auCLSJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adonisjs/eslint-plugin": "^2.0.0-beta.5", + "@stylistic/eslint-plugin-ts": "^2.7.2", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-unicorn": "^55.0.0", + "typescript-eslint": "^8.3.0" + }, + "peerDependencies": { + "eslint": "^9.9.0", + "prettier": "^3.3.3" + } + }, + "node_modules/@adonisjs/eslint-plugin": { + "version": "2.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@adonisjs/eslint-plugin/-/eslint-plugin-2.0.0-beta.5.tgz", + "integrity": "sha512-zNXFq71B7o0ZJ9vMnd+4peSMQrRHBJns4MUDmDAQaTDlOMWRomU5hio2elRxRDTQUl2bJvw/yhfydreew/75xA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^8.3.0" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "eslint": "^9.9.1" + } + }, + "node_modules/@adonisjs/events": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-9.0.2.tgz", + "integrity": "sha512-qZn2e9V9C8tF4MNqEWv5JGxMG7gcHSJM8RncGpjuJ4cwFwd2jF4xrN6wkCprTVwoyZSxNS0Cp9NkAonySjG5vg==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.7.3", + "@sindresorhus/is": "^6.2.0", + "emittery": "^1.0.3" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/application": "^8.0.2", + "@adonisjs/fold": "^10.0.1" + } + }, + "node_modules/@adonisjs/fold": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-10.1.3.tgz", + "integrity": "sha512-wzeuWMXx9SoJkNO4ycoyfxzoSyyMy3umVxb9cbzeWR/sYNVgi50l+vgJc634+lxpCE0RFTpxCv1M235EWDF9SQ==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.8.3" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/hash": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-9.1.1.tgz", + "integrity": "sha512-ZkRguwjAp4skKvKDdRAfdJ2oqQ0N7p9l3sioyXO1E8o0WcsyDgEpsTQtuVNoIdMiw4sn4gJlmL3nyF4BcK1ZDQ==", + "license": "MIT", + "dependencies": { + "@phc/format": "^1.0.0", + "@poppinss/utils": "^6.9.3" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "argon2": "^0.31.2 || ^0.41.0 || ^0.43.0", + "bcrypt": "^5.1.1 || ^6.0.0" + }, + "peerDependenciesMeta": { + "argon2": { + "optional": true + }, + "bcrypt": { + "optional": true + } + } + }, + "node_modules/@adonisjs/health": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/health/-/health-2.0.0.tgz", + "integrity": "sha512-dEAABiAJew1imzwi+OvV/SAnjkMp8TbD5ZIzx1dMRnPynJAlRf37//bHLwZ5Cw44ke5kPzZ/l1n9cx/VeBCicA==", + "dependencies": { + "@poppinss/utils": "^6.7.3", + "check-disk-space": "^3.4.0" + }, + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@adonisjs/http-server": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-7.6.1.tgz", + "integrity": "sha512-2KHen5rcer6pDvJrDOhr5hJ9cSxSOOrdqmm9o9HkW/BAkMh42ymTIvCtaMmz6amrCSg0cdMO3ImmD8VBaMmfXA==", + "license": "MIT", + "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", + "@poppinss/macroable": "^1.0.4", + "@poppinss/matchit": "^3.1.2", + "@poppinss/middleware": "^3.2.5", + "@poppinss/utils": "^6.9.3", + "@sindresorhus/is": "^7.0.1", + "accepts": "^1.3.8", + "content-disposition": "^0.5.4", + "cookie": "^1.0.2", + "destroy": "^1.2.0", + "encodeurl": "^2.0.0", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "tmp-cache": "^1.1.0", + "type-is": "^2.0.1", + "vary": "^1.1.2", + "youch": "^3.3.4" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/application": "^8.0.2", + "@adonisjs/encryption": "^6.0.0", + "@adonisjs/events": "^9.0.0", + "@adonisjs/fold": "^10.0.1", + "@adonisjs/logger": "^6.0.1" + } + }, + "node_modules/@adonisjs/http-server/node_modules/@sindresorhus/is": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz", + "integrity": "sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@adonisjs/logger": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-6.0.6.tgz", + "integrity": "sha512-r5mLmmklSezzu3cu9QaXle2/gPNrgKpiIo+utYlwV3ITsW5JeIX/xcwwMTNM/9f1zU+SwOj5NccPTEFD3feRaw==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.9.2", + "abstract-logging": "^2.0.1", + "pino": "^9.6.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/lucid": { + "version": "21.6.1", + "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-21.6.1.tgz", + "integrity": "sha512-0TLCcPm9GHShJlsDAF5SHilafnvTxW25y5nD3bGJBSMEaNfGXcGRBbnyWoeNs7DsnqMCZ6ociT+0XMcKJWzQrQ==", + "license": "MIT", + "dependencies": { + "@adonisjs/presets": "^2.6.4", + "@faker-js/faker": "^9.6.0", + "@poppinss/hooks": "^7.2.5", + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.2", + "fast-deep-equal": "^3.1.3", + "igniculus": "^1.5.0", + "kleur": "^4.1.5", + "knex": "^3.1.0", + "knex-dynamic-connection": "^3.2.0", + "pretty-hrtime": "^1.0.3", + "qs": "^6.14.0", + "slash": "^5.1.0", + "tarn": "^3.0.2" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/assembler": "^7.7.0", + "@adonisjs/core": "^6.10.1", + "@vinejs/vine": "^2.0.0 || ^3.0.0", + "luxon": "^3.4.4" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + }, + "@vinejs/vine": { + "optional": true + }, + "luxon": { + "optional": true + } + } + }, + "node_modules/@adonisjs/presets": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@adonisjs/presets/-/presets-2.6.4.tgz", + "integrity": "sha512-WvzWouziX88GMoGBLDobGRaSktWfz+fRqADJyhJd7+l0M2VMm5NF0LvAXbV8lMBLtBCicOxk973bJ9Kmyfy3qQ==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.7.3" + }, + "peerDependencies": { + "@adonisjs/assembler": "^7.8.2", + "@adonisjs/core": "^6.13.0" + }, + "peerDependenciesMeta": { + "@adonisjs/assembler": { + "optional": true + } + } + }, + "node_modules/@adonisjs/prettier-config": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@adonisjs/prettier-config/-/prettier-config-1.4.4.tgz", + "integrity": "sha512-rL7JVPyMcQyQKVIt4U4DC0zO9sjcPnepLTx859b47HtHTrQTuDi8/uSqEL//vhAmqlvNuQg0FBgnPJ1eEDbiAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-plugin-edgejs": "^1.0.0" + } + }, + "node_modules/@adonisjs/repl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@adonisjs/repl/-/repl-4.1.0.tgz", + "integrity": "sha512-7Ml87uoufDQmpjRZYbJeRTk0/WcD4DllJ96L1r2IWF/jZIsryiVN5o+7Xd7fHlRzd8iapAbs32Tq4a6fVI6UKA==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "string-width": "^7.2.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@adonisjs/session": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@adonisjs/session/-/session-7.5.1.tgz", + "integrity": "sha512-b1E0W/1nnJfAq3Gv8yPywgsxJ7uzzOBJxxulonXI4t1eSdvJzZGNrFScfVLOcjTwlxwrEFA847tULIQxgR4Spw==", + "license": "MIT", + "dependencies": { + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.2" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.6.0", + "@adonisjs/redis": "^8.0.1 || ^9.0.0", + "@aws-sdk/client-dynamodb": "^3.658.0", + "@aws-sdk/util-dynamodb": "^3.658.0", + "@japa/api-client": "^2.0.3 || ^3.0.0", + "@japa/browser-client": "^2.0.3", + "edge.js": "^6.0.2" + }, + "peerDependenciesMeta": { + "@adonisjs/redis": { + "optional": true + }, + "@aws-sdk/client-dynamodb": { + "optional": true + }, + "@aws-sdk/util-dynamodb": { + "optional": true + }, + "@japa/api-client": { + "optional": true + }, + "@japa/browser-client": { + "optional": true + }, + "edge.js": { + "optional": true + } + } + }, + "node_modules/@adonisjs/shield": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/shield/-/shield-8.2.0.tgz", + "integrity": "sha512-RddRbs92y87GGFUgDSWD/Pg7qYHh8+MctUphFZwtbTblvDckrjZxuYyp+vmVATPuvDvK7sOlatuZHT4HQSz9zQ==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.9.2", + "csrf": "^3.1.0", + "helmet-csp": "^3.4.0" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.2.0", + "@adonisjs/i18n": "^2.0.0", + "@adonisjs/session": "^7.0.0", + "@japa/api-client": "^2.0.2 || ^3.0.0", + "edge.js": "^6.0.1" + }, + "peerDependenciesMeta": { + "@adonisjs/i18n": { + "optional": true + }, + "@japa/api-client": { + "optional": true + }, + "edge.js": { + "optional": true + } + } + }, + "node_modules/@adonisjs/static": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@adonisjs/static/-/static-1.1.1.tgz", + "integrity": "sha512-Ukd2WB21/eajKLNQbaQ3Chxdqn7HyeHSO41J29oWc8DQFEhxxQIUGq0C1Kv5cJFY7PvZm9RAKMBi/2JC58LFWQ==", + "dependencies": { + "serve-static": "^1.15.0" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.2.0" + } + }, + "node_modules/@adonisjs/tsconfig": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@adonisjs/tsconfig/-/tsconfig-1.4.0.tgz", + "integrity": "sha512-go5KlxE8jJaeoIRzm51PcF2YJSK5i022douVk9OjAqvDiU1t2UepcDoEsSiEOgogUDojp9kbRQmFyf0y0YqvOg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@adonisjs/vite": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@adonisjs/vite/-/vite-4.0.0.tgz", + "integrity": "sha512-5kdE0qLIm2dj+XO0HiCohmh3tfZ+X468wkNXErQ15VS0fkDjZWns2VuiYpoToTKd4tdX/oGlpnpd8aIwAGB4ow==", + "license": "MIT", + "dependencies": { + "@poppinss/utils": "^6.8.3", + "@vavite/multibuild": "^5.1.0", + "edge-error": "^4.0.1", + "vite-plugin-restart": "^0.4.2" + }, + "engines": { + "node": ">=20.6.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.3.0", + "@adonisjs/shield": "^8.0.0", + "edge.js": "^6.0.1", + "vite": "^6.0.0" + }, + "peerDependenciesMeta": { + "@adonisjs/shield": { + "optional": true + }, + "edge.js": { + "optional": true + } + } + }, + "node_modules/@antfu/install-pkg": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.4.1.tgz", + "integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "package-manager-detector": "^0.2.0", + "tinyexec": "^0.3.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@arr/every": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz", + "integrity": "sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz", + "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.26.0.tgz", + "integrity": "sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.13.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@faker-js/faker": { + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.8.0.tgz", + "integrity": "sha512-U9wpuSrJC93jZBxx/Qq2wPjCuYISBueyVUGK7qqdmj7r/nxaxwW8AQDCLeRO7wZnjj94sh3p246cAYjUKuqgfg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/fakerjs" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0.0", + "npm": ">=9.0.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@japa/assert": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@japa/assert/-/assert-4.0.1.tgz", + "integrity": "sha512-n/dA9DVLNvM/Bw8DtN8kBdPjYsSHe3XTRjF5+U8vlzDavpW9skUANl2CHR1K/TBWZxwMfGi15SJIjo6UCs09AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/macroable": "^1.0.4", + "@types/chai": "^5.0.1", + "assertion-error": "^2.0.1", + "chai": "^5.1.2" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@japa/runner": "^3.1.2 || ^4.0.0" + } + }, + "node_modules/@japa/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@japa/core/-/core-10.3.0.tgz", + "integrity": "sha512-+vaqMiPnVaxlKH1sAwRQ80AwzlPysPKivhB8q1I2+BGe35lNrfiHKGMC52fuGAZBNuH5W2nInSCxr4cN/BTEIQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@poppinss/hooks": "^7.2.5", + "@poppinss/macroable": "^1.0.4", + "@poppinss/string": "^1.2.0", + "async-retry": "^1.3.3", + "emittery": "^1.0.3", + "string-width": "^7.2.0", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@japa/errors-printer": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@japa/errors-printer/-/errors-printer-4.1.2.tgz", + "integrity": "sha512-exl/r07ssJhEEsMdFT2sXgP1sV7Tp3mZvYUEDMXZ8YjWZPHTFLLcA7o9q9FJSSB1ITrEIbx2SWTB+2fFUaZ3NA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "jest-diff": "^29.7.0", + "supports-color": "^10.0.0", + "youch": "^4.1.0-beta.5" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@japa/errors-printer/node_modules/supports-color": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz", + "integrity": "sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@japa/errors-printer/node_modules/youch": { + "version": "4.1.0-beta.5", + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.5.tgz", + "integrity": "sha512-92+bvKtAjm18S2o+IP0aLBpLtzY332Ji9geNLp07cLgHsK3aHVjWrg2eyE5LIKMv6j+GWu+Ehx4My7BTXxMbsA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@poppinss/dumper": "^0.6.2", + "@speed-highlight/core": "^1.2.7", + "cookie": "^1.0.2", + "youch-core": "^0.3.1" + }, + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@japa/plugin-adonisjs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@japa/plugin-adonisjs/-/plugin-adonisjs-4.0.0.tgz", + "integrity": "sha512-M2LUtHhKr4KgBfX73tDHNCD1IOmcXp9dvC+AinmRxsggIFnarsClcfjT/sXc3uNzjZW7Lk31LvcH76AxJHBmJQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@adonisjs/core": "^6.17.0", + "@japa/api-client": "^2.0.3 || ^3.0.0", + "@japa/browser-client": "^2.0.3", + "@japa/runner": "^3.1.2 || ^4.0.0", + "playwright": "^1.42.1" + }, + "peerDependenciesMeta": { + "@japa/api-client": { + "optional": true + }, + "@japa/browser-client": { + "optional": true + }, + "playwright": { + "optional": true + } + } + }, + "node_modules/@japa/runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@japa/runner/-/runner-4.2.0.tgz", + "integrity": "sha512-e3BFn1rca/OTiagilkmRTrLVhl00iC/LrY5j4Ns/VZDONYHs9BKAbHaImxjD1zoHMEhwQEF+ce7fgMO/BK+lfg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@japa/core": "^10.3.0", + "@japa/errors-printer": "^4.1.2", + "@poppinss/colors": "^4.1.4", + "@poppinss/hooks": "^7.2.5", + "fast-glob": "^3.3.3", + "find-cache-dir": "^5.0.0", + "getopts": "^2.3.0", + "ms": "^2.1.3", + "serialize-error": "^12.0.0", + "slash": "^5.1.0", + "supports-color": "^10.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@japa/runner/node_modules/supports-color": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz", + "integrity": "sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@lukeed/ms": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.2.tgz", + "integrity": "sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.3.tgz", + "integrity": "sha512-rmOWVRUbUJD7iSvJugjUbFZshTAuJ48MXoZ80Osx1GM0K/H1w7rSEvmw8m6vdWxNASgtaHIhAgre4H/E9GJiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "express": "^5.0.1", + "express-rate-limit": "^7.5.0", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.23.8", + "zod-to-json-schema": "^3.24.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "devOptional": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "devOptional": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "devOptional": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz", + "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, + "node_modules/@phc/format": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", + "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@poppinss/chokidar-ts": { + "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.6.0", + "emittery": "^1.0.3", + "memoize": "^10.0.0", + "picomatch": "^4.0.2", + "slash": "^5.1.0" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "typescript": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/@poppinss/cliui": { + "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.3", + "cli-boxes": "^3.0.0", + "cli-table3": "^0.6.4", + "cli-truncate": "^4.0.0", + "log-update": "^6.0.0", + "pretty-hrtime": "^1.0.3", + "string-width": "^7.1.0", + "supports-color": "^9.4.0", + "terminal-size": "^4.0.0", + "wordwrap": "^1.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/colors": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.4.tgz", + "integrity": "sha512-FA+nTU8p6OcSH4tLDY5JilGYr1bVWHpNmcLr7xmMEdbWmKHa+3QZ+DqefrXKmdjO/brHTnQZo20lLSjaO7ydog==", + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/dumper": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.3.tgz", + "integrity": "sha512-iombbn8ckOixMtuV1p3f8jN6vqhXefNjJttoPaJDMeIk/yIGhkkL3OrHkEjE9SRsgoAx1vBUU2GtgggjvA5hCA==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.4", + "@sindresorhus/is": "^7.0.1", + "supports-color": "^10.0.0" + } + }, + "node_modules/@poppinss/dumper/node_modules/@sindresorhus/is": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz", + "integrity": "sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@poppinss/dumper/node_modules/supports-color": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz", + "integrity": "sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@poppinss/exception": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.1.tgz", + "integrity": "sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@poppinss/hooks": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-7.2.5.tgz", + "integrity": "sha512-mxORKQ5CFzQNi6yK3zwCGWfGS507w23IhV3kFq42QzWlv/vpvf4aMJDbtfMCR5p52ghVoe0d1wmgp77ak2ORhQ==", + "license": "MIT", + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/inspect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@poppinss/inspect/-/inspect-1.0.1.tgz", + "integrity": "sha512-kLeEaBSGhlleyYvKc7c9s3uE6xv7cwyulE0EgHf4jU/CL96h0yC4mkdw1wvC1l1PYYQozCGy46FwMBAAMOobCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@poppinss/macroable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/macroable/-/macroable-1.0.4.tgz", + "integrity": "sha512-ct43jurbe7lsUX5eIrj4ijO3j/6zIPp7CDnFWXDs7UPAbw1Pu1iH3oAmFdP4jcskKJBURH5M9oTtyeiUXyHX8Q==", + "license": "MIT", + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/matchit": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.1.2.tgz", + "integrity": "sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==", + "license": "MIT", + "dependencies": { + "@arr/every": "^1.0.0" + } + }, + "node_modules/@poppinss/middleware": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@poppinss/middleware/-/middleware-3.2.5.tgz", + "integrity": "sha512-+P9yY4KYYZFTbOoIvVK/R4PfPcPyxt4E23Dx4l7V8Z/8+DOzAL01eWZs9mMgHOYTbAokKVLQ+JIsyDmrTA0Uyg==", + "license": "MIT", + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/multiparty": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@poppinss/multiparty/-/multiparty-2.0.1.tgz", + "integrity": "sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==", + "license": "MIT", + "dependencies": { + "http-errors": "^2.0.0", + "safe-buffer": "5.2.1", + "uid-safe": "2.1.5" + } + }, + "node_modules/@poppinss/object-builder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@poppinss/object-builder/-/object-builder-1.1.0.tgz", + "integrity": "sha512-FOrOq52l7u8goR5yncX14+k+Ewi5djnrt1JwXeS/FvnwAPOiveFhiczCDuvXdssAwamtrV2hp5Rw9v+n2T7hQg==", + "license": "MIT", + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@poppinss/prompts": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-3.1.3.tgz", + "integrity": "sha512-lNAcOcvB7YhfaWYIsu8tatF9V61A0SEu8PGpGx9RqTVmImKhLT0AAcRPr/5z4UQMl7SIf5REQKMJhHK50xakYQ==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.3", + "@poppinss/utils": "^6.7.3", + "enquirer": "^2.4.1" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/string": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@poppinss/string/-/string-1.3.0.tgz", + "integrity": "sha512-8BMX3y6Dr3W8EtF8CbL0uRXxm7Ha48fHVPCfOp667Uh6J7C+d0DzcoBzzNnofnvwdzVMKy0DNZ4KmMioEBj2wQ==", + "license": "MIT", + "dependencies": { + "@lukeed/ms": "^2.0.2", + "@types/bytes": "^3.1.5", + "@types/pluralize": "^0.0.33", + "bytes": "^3.1.2", + "case-anything": "^3.1.2", + "pluralize": "^8.0.0", + "slugify": "^1.6.6", + "truncatise": "^0.0.8" + }, + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@poppinss/utils": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-6.9.3.tgz", + "integrity": "sha512-K69WMVtmGcl0zJii9Zm5iav5VmxD3hw1JtN5cGqhTMr7UMSLSjeZPuETwZgjKqw86Dd1YcrWLU0+cVCTkemQJg==", + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.1", + "@poppinss/object-builder": "^1.1.0", + "@poppinss/string": "^1.3.0", + "flattie": "^1.1.1", + "safe-stable-stringify": "^2.5.0", + "secure-json-parse": "^4.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/@poppinss/utils/node_modules/secure-json-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.0.0.tgz", + "integrity": "sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/@poppinss/validator-lite": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@poppinss/validator-lite/-/validator-lite-2.1.0.tgz", + "integrity": "sha512-CfT8EPeB7jKxjCb5+KP32iu/0BB7cKlRRqMBcCwzky0WgFACsFlRtvHsy+CkOszHmNyOdoH3WoyMyoxVCu9qEw==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-6.3.1.tgz", + "integrity": "sha512-FX4MfcifwJyFOI2lPoX7PQxCqx8BG1HCho7WdiXwpEQx1Ycij0JxkfYtGK7yqNScrZGSlt6RE6sw8QYoH7eKnQ==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@speed-highlight/core": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.7.tgz", + "integrity": "sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==", + "devOptional": true, + "license": "CC0-1.0" + }, + "node_modules/@stylistic/eslint-plugin-ts": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.7.2.tgz", + "integrity": "sha512-uf3hmqWLK1upUnTmUSn4XDvNu1o6b1nY+xdema8dGGY+zH663V+0cHN3xqexDuQ8do1f0wV3hChkfmz3jWC4Uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "^9.6.1", + "@typescript-eslint/utils": "^8.3.0", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" + } + }, + "node_modules/@stylistic/eslint-plugin-ts/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@swc/core": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.24.tgz", + "integrity": "sha512-MaQEIpfcEMzx3VWWopbofKJvaraqmL6HbLlw2bFZ7qYqYw3rkhM0cQVEgyzbHtTWwCwPMFZSC2DUbhlZgrMfLg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.21" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.11.24", + "@swc/core-darwin-x64": "1.11.24", + "@swc/core-linux-arm-gnueabihf": "1.11.24", + "@swc/core-linux-arm64-gnu": "1.11.24", + "@swc/core-linux-arm64-musl": "1.11.24", + "@swc/core-linux-x64-gnu": "1.11.24", + "@swc/core-linux-x64-musl": "1.11.24", + "@swc/core-win32-arm64-msvc": "1.11.24", + "@swc/core-win32-ia32-msvc": "1.11.24", + "@swc/core-win32-x64-msvc": "1.11.24" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.24.tgz", + "integrity": "sha512-dhtVj0PC1APOF4fl5qT2neGjRLgHAAYfiVP8poJelhzhB/318bO+QCFWAiimcDoyMgpCXOhTp757gnoJJrheWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.24.tgz", + "integrity": "sha512-H/3cPs8uxcj2Fe3SoLlofN5JG6Ny5bl8DuZ6Yc2wr7gQFBmyBkbZEz+sPVgsID7IXuz7vTP95kMm1VL74SO5AQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.24.tgz", + "integrity": "sha512-PHJgWEpCsLo/NGj+A2lXZ2mgGjsr96ULNW3+T3Bj2KTc8XtMUkE8tmY2Da20ItZOvPNC/69KroU7edyo1Flfbw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.24.tgz", + "integrity": "sha512-C2FJb08+n5SD4CYWCTZx1uR88BN41ZieoHvI8A55hfVf2woT8+6ZiBzt74qW2g+ntZ535Jts5VwXAKdu41HpBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.24.tgz", + "integrity": "sha512-ypXLIdszRo0re7PNNaXN0+2lD454G8l9LPK/rbfRXnhLWDBPURxzKlLlU/YGd2zP98wPcVooMmegRSNOKfvErw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.24.tgz", + "integrity": "sha512-IM7d+STVZD48zxcgo69L0yYptfhaaE9cMZ+9OoMxirNafhKKXwoZuufol1+alEFKc+Wbwp+aUPe/DeWC/Lh3dg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.24.tgz", + "integrity": "sha512-DZByJaMVzSfjQKKQn3cqSeqwy6lpMaQDQQ4HPlch9FWtDx/dLcpdIhxssqZXcR2rhaQVIaRQsCqwV6orSDGAGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.24.tgz", + "integrity": "sha512-Q64Ytn23y9aVDKN5iryFi8mRgyHw3/kyjTjT4qFCa8AEb5sGUuSj//AUZ6c0J7hQKMHlg9do5Etvoe61V98/JQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.24.tgz", + "integrity": "sha512-9pKLIisE/Hh2vJhGIPvSoTK4uBSPxNVyXHmOrtdDot4E1FUUI74Vi8tFdlwNbaj8/vusVnb8xPXsxF1uB0VgiQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.24.tgz", + "integrity": "sha512-sybnXtOsdB+XvzVFlBVGgRHLqp3yRpHK7CrmpuDKszhj/QhmsaZzY/GHSeALlMtLup13M0gqbcQvsTNlAHTg3w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.21.tgz", + "integrity": "sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tokenizer/inflate": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.2.7.tgz", + "integrity": "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "fflate": "^0.8.2", + "token-types": "^6.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT" + }, + "node_modules/@ts-morph/common": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.24.0.tgz", + "integrity": "sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.2", + "minimatch": "^9.0.4", + "mkdirp": "^3.0.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@tsconfig/node10": { + "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": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/bytes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.5.tgz", + "integrity": "sha512-VgZkrJckypj85YxEsEavcMmmSOIzkUHqWmM4CCyia5dc54YwsXzJ5uT4fYxBQNEXx+oF1krlhgCbvfubXqZYsQ==", + "license": "MIT" + }, + "node_modules/@types/chai": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.0.1.tgz", + "integrity": "sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "license": "MIT" + }, + "node_modules/@types/he": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/he/-/he-1.2.3.tgz", + "integrity": "sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "22.15.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", + "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "node_modules/@types/pluralize": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.33.tgz", + "integrity": "sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "license": "MIT" + }, + "node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz", + "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/type-utils": "8.3.0", + "@typescript-eslint/utils": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz", + "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/typescript-estree": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz", + "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz", + "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.3.0", + "@typescript-eslint/utils": "8.3.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz", + "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz", + "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz", + "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/typescript-estree": "8.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz", + "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.3.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vavite/multibuild": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@vavite/multibuild/-/multibuild-5.1.0.tgz", + "integrity": "sha512-xhJS6oAhQqDCRFFmpZWNCcAJw7145pvlfKX/IOCQX7oqulbw9amH9rdrNXmwz79UeYgOwxXpWfEavyYTPLY1KQ==", + "license": "MIT", + "dependencies": { + "@types/node": "^18.19.67", + "cac": "^6.7.14", + "picocolors": "^1.1.1" + }, + "peerDependencies": { + "vite": "^2.8.1 || 3 || 4 || 5 || 6" + } + }, + "node_modules/@vavite/multibuild/node_modules/@types/node": { + "version": "18.19.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", + "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@vavite/multibuild/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/@vinejs/compiler": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vinejs/compiler/-/compiler-3.0.0.tgz", + "integrity": "sha512-v9Lsv59nR56+bmy2p0+czjZxsLHwaibJ+SV5iK9JJfehlJMa501jUJQqqz4X/OqKXrxtE3uTQmSqjUqzF3B2mw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@vinejs/vine": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vinejs/vine/-/vine-3.0.1.tgz", + "integrity": "sha512-ZtvYkYpZOYdvbws3uaOAvTFuvFXoQGAtmzeiXu+XSMGxi5GVsODpoI9Xu9TplEMuD/5fmAtBbKb9cQHkWkLXDQ==", + "license": "MIT", + "dependencies": { + "@poppinss/macroable": "^1.0.4", + "@types/validator": "^13.12.2", + "@vinejs/compiler": "^3.0.0", + "camelcase": "^8.0.0", + "dayjs": "^1.11.13", + "dlv": "^1.1.3", + "normalize-url": "^8.0.1", + "validator": "^13.12.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/abstract-logging": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", + "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==", + "license": "MIT" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "devOptional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "devOptional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "devOptional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/as-table": { + "version": "1.0.55", + "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", + "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", + "dependencies": { + "printable-characters": "^1.0.42" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "devOptional": true + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/binary-extensions": { + "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": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001655", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", + "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/case-anything": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-3.1.2.tgz", + "integrity": "sha512-wljhAjDDIv/hM2FzgJnYQg90AWmZMNtESCjTeLH680qTzdo0nErlCxOmgzgX4ZsZAtIvqHyD87ES8QyriXB+BQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/chai": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-disk-space": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/check-disk-space/-/check-disk-space-3.4.0.tgz", + "integrity": "sha512-drVkSqfwA+TvuEhFipiR1OC9boEGZL5RrWvVsOthdcvQNXyCCuKkEiTOTXZ7qxSf/GLwq4GvzfrQD/Wz325hgw==", + "engines": { + "node": ">=16" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "devOptional": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "devOptional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ci-info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", + "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-regexp/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/code-block-writer": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.2.tgz", + "integrity": "sha512-XfXzAGiStXSmCIwrkdfvc7FS5Dtj8yelCtyOf2p2skCAfvLd6zu0rGzuS9NSCO3bq1JKpFZ7tbKdKlcd5occQA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "engines": { + "node": ">=14" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "devOptional": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/copy-file": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-file/-/copy-file-11.0.0.tgz", + "integrity": "sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.11", + "p-event": "^6.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js-compat": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cpy": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-11.1.0.tgz", + "integrity": "sha512-QGHetPSSuprVs+lJmMDcivvrBwTKASzXQ5qxFvRC2RFESjjod71bDvFvhxTjDgkNjrrb72AI6JPjfYwxrIy33A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "copy-file": "^11.0.0", + "globby": "^14.0.2", + "junk": "^4.0.1", + "micromatch": "^4.0.7", + "p-filter": "^4.1.0", + "p-map": "^7.0.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy/node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csrf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz", + "integrity": "sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==", + "dependencies": { + "rndm": "1.2.0", + "tsscmp": "1.0.6", + "uid-safe": "2.1.5" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", + "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==" + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "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" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/edge-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-4.0.2.tgz", + "integrity": "sha512-jB76VYn8wapDHKHSOmP3vbKLoa77RJYsTLNmfl8+cuCD69uxZtP3h+kqV+Prw/YkYmN7yHyp4IApE15pDByk0A==", + "license": "MIT", + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/edge-lexer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/edge-lexer/-/edge-lexer-6.0.3.tgz", + "integrity": "sha512-/s15CNnfhZv97bsW+ZgV5rtONULYjhCDYu+usbVLqZ8UQ6b/hQUNvQSIQBXA6Gql9dm72TMBB9sb/eWM2esufg==", + "license": "MIT", + "dependencies": { + "edge-error": "^4.0.2" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/edge-parser": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/edge-parser/-/edge-parser-9.0.4.tgz", + "integrity": "sha512-vnjzfpqpjM4Mjt9typc1zLoFpC1F6kAObfcdyA6rSy+izIPji2RaQz5jWx5s5iG9hNcuyjtNyGRCLFVfoYhWcA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "astring": "^1.9.0", + "edge-error": "^4.0.2", + "edge-lexer": "^6.0.3", + "js-stringify": "^1.0.2" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/edge.js": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/edge.js/-/edge.js-6.2.1.tgz", + "integrity": "sha512-me875zh6YA0V429hywgQIpHgMvQkondv5XHaP6EsL2yIBpLcBWCl7Ba1cai0SwYhp8iD0IyV3KjpxLrnW7S2Ag==", + "license": "MIT", + "dependencies": { + "@poppinss/inspect": "^1.0.1", + "@poppinss/macroable": "^1.0.4", + "@poppinss/utils": "^6.9.2", + "classnames": "^2.5.1", + "edge-error": "^4.0.2", + "edge-lexer": "^6.0.3", + "edge-parser": "^9.0.4", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "js-stringify": "^1.0.2", + "property-information": "^6.5.0", + "stringify-attributes": "^4.0.0" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/edgejs-parser": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/edgejs-parser/-/edgejs-parser-0.2.14.tgz", + "integrity": "sha512-Qlx1U4bm+3mXwijEGIZBf5RdJpxQUB8AQ8yoSRAatQoHzTX+IW8L3RwKMV99Zw+9LDZI+rMGjBq9xLHUQNMAPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chevrotain": "^11.0.3" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", + "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.3.tgz", + "integrity": "sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.26.0.tgz", + "integrity": "sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.20.0", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.13.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.26.0", + "@eslint/plugin-kit": "^0.2.8", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@modelcontextprotocol/sdk": "^1.8.0", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "zod": "^3.24.2" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "55.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-55.0.0.tgz", + "integrity": "sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "@eslint-community/eslint-utils": "^4.4.0", + "ci-info": "^4.0.0", + "clean-regexp": "^1.0.0", + "core-js-compat": "^3.37.0", + "esquery": "^1.5.0", + "globals": "^15.7.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.2.1", + "jsesc": "^3.0.2", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.27", + "regjsparser": "^0.10.0", + "semver": "^7.6.1", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=18.18" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=8.56.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/globals": { + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.2.tgz", + "integrity": "sha512-6RxOBZ/cYgd8usLwsEl+EC09Au/9BcmCKYF2/xbml6DNczf7nv0MQb+7BA2F+li6//I+28VNlQR37XfQtcAJuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/execa": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.1.tgz", + "integrity": "sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^5.2.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz", + "integrity": "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": "^4.11 || 5 || ^5.0.0-beta.1" + } + }, + "node_modules/express/node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/express/node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/fast-copy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "devOptional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "devOptional": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/file-type": { + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-20.5.0.tgz", + "integrity": "sha512-BfHZtG/l9iMm4Ecianu7P8HRD2tBHLtjXinm4X62XBOYzi7CYA7jyqfJzOvXHqzVrVPYqBo2/GvbARMaaJkKVg==", + "license": "MIT", + "dependencies": { + "@tokenizer/inflate": "^0.2.6", + "strtok3": "^10.2.0", + "token-types": "^6.0.0", + "uint8array-extras": "^1.4.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-5.0.0.tgz", + "integrity": "sha512-OuWNfjfP05JcpAP3JPgAKUhWefjMRfI5iAoSsvE24ANYWJaepAtlSgWECSVEuRgSXpyNEc9DJwG/TZpgcOqyig==", + "devOptional": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up-simple": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-source": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", + "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", + "dependencies": { + "data-uri-to-buffer": "^2.0.0", + "source-map": "^0.6.1" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/helmet-csp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-3.4.0.tgz", + "integrity": "sha512-a+YgzWw6dajqhQfb6ktxil0FsQuWTKzrLSUfy55dxS8fuvl1jidTIMPZ2udN15mjjcpBPgTHNHGF5tyWKYyR8w==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/help-me": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", + "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hot-hook": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/hot-hook/-/hot-hook-0.4.0.tgz", + "integrity": "sha512-D36jqIojBHqxfkel6r7QGfmal7HO3cFTnPKeZIpPsBtFdV3QPV7m42JTBDX3B/Ovi53RXbOix7t/uIeV2bfeRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.1", + "fast-glob": "^3.3.2", + "parse-imports": "^2.2.1", + "picomatch": "^4.0.2", + "read-package-up": "^11.0.0" + } + }, + "node_modules/hot-hook/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/hot-hook/node_modules/readdirp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.1.tgz", + "integrity": "sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==", + "dev": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", + "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/igniculus": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/igniculus/-/igniculus-1.5.0.tgz", + "integrity": "sha512-vhj2J/cSzNg2G5tcK4Z1KZdeYmQa5keoxFULUYAxctK/zHJb1oraO7noCqnJxKe1b2eZdiiaSL1IHPOFAI8UYQ==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "devOptional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/index-to-position": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", + "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflation": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", + "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "devOptional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", + "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "devOptional": true + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/junk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", + "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/knex": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/knex/-/knex-3.1.0.tgz", + "integrity": "sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==", + "dependencies": { + "colorette": "2.0.19", + "commander": "^10.0.0", + "debug": "4.3.4", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.17.21", + "pg-connection-string": "2.6.2", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" + }, + "engines": { + "node": ">=16" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/knex-dynamic-connection": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/knex-dynamic-connection/-/knex-dynamic-connection-3.2.0.tgz", + "integrity": "sha512-+j6KeUSim0FR8EobOqA1a/TZbN9mahjzHzJgOfQVkv6PUnSqJp70c/5n63M2YVNgNHETyBIUhV8stuQ0T/mG3g==", + "dependencies": { + "debug": "^4.3.5", + "knex": "^3.1.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/knex/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/knex/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/knex/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-update": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", + "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", + "dependencies": { + "ansi-escapes": "^6.2.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^7.0.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/loupe": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", + "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/memoize": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/memoize/-/memoize-10.0.0.tgz", + "integrity": "sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==", + "devOptional": true, + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/memoize?sponsor=1" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "devOptional": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-function": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "devOptional": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-event": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", + "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "p-map": "^7.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", + "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", + "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-manager-detector": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.9.tgz", + "integrity": "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-imports": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", + "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", + "license": "Apache-2.0 AND MIT", + "dependencies": { + "es-module-lexer": "^1.5.3", + "slashes": "^3.0.12" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/parse-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", + "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "index-to-position": "^0.1.2", + "type-fest": "^4.7.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/type-fest": { + "version": "4.20.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.20.1.tgz", + "integrity": "sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/peek-readable": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-7.0.0.tgz", + "integrity": "sha512-nri2TO5JE3/mRryik9LlHFT53cgHfRK0Lt0BAZQXku/AW3E6XLt2GaY8siWi7dvW/m1z0ecn+J+bpDa9ZN3IsQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/pg-connection-string": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pino": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.6.0.tgz", + "integrity": "sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "license": "MIT", + "dependencies": { + "split2": "^4.0.0" + } + }, + "node_modules/pino-pretty": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.0.0.tgz", + "integrity": "sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^3.0.2", + "fast-safe-stringify": "^2.1.1", + "help-me": "^5.0.0", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pump": "^3.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^4.0.1", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "license": "MIT" + }, + "node_modules/pkce-challenge": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz", + "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "devOptional": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "devOptional": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "devOptional": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "devOptional": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "devOptional": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "devOptional": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "devOptional": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prettier-plugin-edgejs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-edgejs/-/prettier-plugin-edgejs-1.0.0.tgz", + "integrity": "sha512-MUlHVU3OM8AGznwRlYm0Ah0ckX2NCx0A+VoA2Dgl4bce4aGkaPT9JDZN88no6xLrUNbKsukkjk4KMfREPXf47A==", + "dev": true, + "license": "MIT", + "dependencies": { + "css": "^3.0.0", + "edgejs-parser": "^0.2.14", + "prettier": "^3.4.2", + "uglify-js": "^3.19.2" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pretty-ms": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", + "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/printable-characters": { + "version": "1.0.42", + "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", + "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==" + }, + "node_modules/process-warning": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.1.tgz", + "integrity": "sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "node_modules/property-information": { + "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" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", + "dev": true, + "dependencies": { + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-package-up/node_modules/type-fest": { + "version": "4.20.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.20.1.tgz", + "integrity": "sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "4.20.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.20.1.tgz", + "integrity": "sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "devOptional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "devOptional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true, + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regjsparser": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", + "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "devOptional": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==" + }, + "node_modules/rollup": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/secure-json-parse": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", + "dev": true + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-error": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-12.0.0.tgz", + "integrity": "sha512-ZYkZLAvKTKQXWuh5XpBw7CdbSzagarX39WyZ2H07CDLC5/KfsRGlIXV8d4+tfqX1M7916mRqR1QfNHSij+c9Pw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "type-fest": "^4.31.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.33.0.tgz", + "integrity": "sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==", + "devOptional": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "devOptional": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "devOptional": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slashes": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", + "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==" + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "dev": true + }, + "node_modules/split-lines": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/split-lines/-/split-lines-3.0.0.tgz", + "integrity": "sha512-d0TpRBL/VfKDXsk8JxPF7zgF5pCUDdBMSlEL36xBgVeaX448t+yGXcJaikUyzkoKOJ0l6KpMfygzJU9naIuivw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/stacktracey": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", + "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", + "dependencies": { + "as-table": "^1.0.36", + "get-source": "^2.0.12" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-attributes": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/stringify-attributes/-/stringify-attributes-4.0.0.tgz", + "integrity": "sha512-6Hq3K153wTTfhEHb4V/viuqmb0DRn08JCrRnmqc4Q/tmoNuvd4DEyqkiiJXtvVz8ZSUhlCQr7zCpCVTgrelesg==", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strtok3": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.2.2.tgz", + "integrity": "sha512-Xt18+h4s7Z8xyZ0tmBoRmzxcop97R4BAh+dXouUDCYn+Em+1P3qpkUfI5ueWLT8ynC5hZ+q4iPEmGG1urvQGBg==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tarn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/tempura": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/tempura/-/tempura-0.4.1.tgz", + "integrity": "sha512-NQ4Cs23jM6UUp3CcS5vjmyjTC6dtA5EsflBG2cyG0wZvP65AV26tJ920MGvTRYIImCY13RBpOhc7q4/pu+FG5A==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/terminal-size": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-size/-/terminal-size-4.0.0.tgz", + "integrity": "sha512-rcdty1xZ2/BkWa4ANjWRp4JGpda2quksXIHgn5TMjNBPZfwzJIgR68DKfSYiTL+CZWowDX/sbOo5ME/FRURvYQ==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tmp-cache": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tmp-cache/-/tmp-cache-1.1.0.tgz", + "integrity": "sha512-j040fkL/x+XAZQ9K3bKGEPwgYhOZNBQLa3NXEADUiuno9C+3N2JJA4bVPDREixp604G3/vTXWA3DIPpA9lu1RQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-types": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.0.0.tgz", + "integrity": "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/truncatise": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/truncatise/-/truncatise-0.0.8.tgz", + "integrity": "sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==", + "license": "MIT" + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-morph": { + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-23.0.0.tgz", + "integrity": "sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.24.0", + "code-block-writer": "^13.0.1" + } + }, + "node_modules/ts-node-maintained": { + "version": "10.9.5", + "resolved": "https://registry.npmjs.org/ts-node-maintained/-/ts-node-maintained-10.9.5.tgz", + "integrity": "sha512-p8LJFxBTE3YZYGcOMxWKEpaY2nz55NyOg+mTDIOW/MrOIUTAAb7+UkleRu5z90P/fCVVv5pXN1/nb92G/tSNyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.3.0.tgz", + "integrity": "sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.3.0", + "@typescript-eslint/parser": "8.3.0", + "@typescript-eslint/utils": "8.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uint8array-extras": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.4.0.tgz", + "integrity": "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "devOptional": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-restart": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/vite-plugin-restart/-/vite-plugin-restart-0.4.2.tgz", + "integrity": "sha512-9aWN2ScJ8hbT7aC8SDeZnsbWapnslz1vhNq6Vgf2GU9WdN4NExlrWhtnu7pmtOUG3Guj8y6lPcUZ+ls7SVP33w==", + "license": "MIT", + "dependencies": { + "micromatch": "^4.0.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/youch": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", + "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", + "license": "MIT", + "dependencies": { + "cookie": "^0.7.1", + "mustache": "^4.2.0", + "stacktracey": "^2.1.8" + } + }, + "node_modules/youch-core": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.1.tgz", + "integrity": "sha512-KOAmtABz17fgK+uBBJYIzaPpIgX+JgTRgY4t3zXH18akc5rRtFkRmcNTMCuSxLdbOJDY9+T/O3nyA/EQuN4EWA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.0", + "error-stack-parser-es": "^0.1.5" + }, + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/youch-core/node_modules/error-stack-parser-es": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-0.1.5.tgz", + "integrity": "sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==", + "devOptional": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/youch-terminal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/youch-terminal/-/youch-terminal-2.2.3.tgz", + "integrity": "sha512-/PE77ZwG072tXBvF47S9RL9/G80u86icZ5QwyjblyM67L4n/T5qQeM3Xrecbu8kkDDr/9T/PTj/X+6G/OSRQug==", + "dependencies": { + "kleur": "^4.1.5", + "string-width": "^4.2.3", + "wordwrap": "^1.0.0" + } + }, + "node_modules/youch-terminal/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/youch-terminal/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/youch-terminal/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/youch/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/zod": { + "version": "3.24.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", + "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.24.5", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz", + "integrity": "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "zod": "^3.24.1" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..94402e4 --- /dev/null +++ b/package.json @@ -0,0 +1,71 @@ +{ + "name": "adonisjs-web-stater-kit", + "version": "0.0.0", + "private": true, + "type": "module", + "license": "UNLICENSED", + "scripts": { + "start": "node bin/server.js", + "build": "node ace build", + "dev": "node ace serve --hmr", + "test": "node ace test", + "lint": "eslint .", + "format": "prettier --write .", + "typecheck": "tsc --noEmit" + }, + "imports": { + "#controllers/*": "./app/controllers/*.js", + "#exceptions/*": "./app/exceptions/*.js", + "#models/*": "./app/models/*.js", + "#mails/*": "./app/mails/*.js", + "#services/*": "./app/services/*.js", + "#listeners/*": "./app/listeners/*.js", + "#events/*": "./app/events/*.js", + "#middleware/*": "./app/middleware/*.js", + "#validators/*": "./app/validators/*.js", + "#providers/*": "./providers/*.js", + "#policies/*": "./app/policies/*.js", + "#abilities/*": "./app/abilities/*.js", + "#database/*": "./database/*.js", + "#tests/*": "./tests/*.js", + "#start/*": "./start/*.js", + "#config/*": "./config/*.js" + }, + "devDependencies": { + "@adonisjs/assembler": "^7.8.2", + "@adonisjs/eslint-config": "^2.0.0", + "@adonisjs/prettier-config": "^1.4.4", + "@adonisjs/tsconfig": "^1.4.0", + "@japa/assert": "^4.0.1", + "@japa/plugin-adonisjs": "^4.0.0", + "@japa/runner": "^4.2.0", + "@swc/core": "1.11.24", + "@types/node": "^22.15.18", + "eslint": "^9.26.0", + "hot-hook": "^0.4.0", + "pino-pretty": "^13.0.0", + "prettier": "^3.5.3", + "ts-node-maintained": "^10.9.5", + "typescript": "~5.8", + "vite": "^6.3.5" + }, + "dependencies": { + "@adonisjs/auth": "^9.4.0", + "@adonisjs/core": "^6.18.0", + "@adonisjs/lucid": "^21.6.1", + "@adonisjs/session": "^7.5.1", + "@adonisjs/shield": "^8.2.0", + "@adonisjs/static": "^1.1.1", + "@adonisjs/vite": "^4.0.0", + "@vinejs/vine": "^3.0.1", + "edge.js": "^6.2.1", + "reflect-metadata": "^0.2.2" + }, + "hotHook": { + "boundaries": [ + "./app/controllers/**/*.ts", + "./app/middleware/*.ts" + ] + }, + "prettier": "@adonisjs/prettier-config" +} diff --git a/public/assets/.vite/manifest.json b/public/assets/.vite/manifest.json new file mode 100644 index 0000000..b418d65 --- /dev/null +++ b/public/assets/.vite/manifest.json @@ -0,0 +1,13 @@ +{ + "resources/css/app.css": { + "file": "app-V1pZY7xQ.css", + "src": "resources/css/app.css", + "isEntry": true + }, + "resources/js/app.js": { + "file": "app-C3S-8paM.js", + "name": "app", + "src": "resources/js/app.js", + "isEntry": true + } +} \ No newline at end of file diff --git a/public/assets/app-C3S-8paM.js b/public/assets/app-C3S-8paM.js new file mode 100644 index 0000000..accefce --- /dev/null +++ b/public/assets/app-C3S-8paM.js @@ -0,0 +1 @@ +console.log("Hello World"); diff --git a/public/assets/app-V1pZY7xQ.css b/public/assets/app-V1pZY7xQ.css new file mode 100644 index 0000000..a33d606 --- /dev/null +++ b/public/assets/app-V1pZY7xQ.css @@ -0,0 +1 @@ +*{margin:0;padding:0}html,body{height:100%;width:100%} diff --git a/public/uploads/1777542211622_amonus.png b/public/uploads/1777542211622_amonus.png new file mode 100644 index 0000000000000000000000000000000000000000..d7cbe5a23330c11d2a1e949d9833203191798130 GIT binary patch literal 135436 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 + + + + + {{ title ?? 'Imago Vault' }} + + @if($slots.head) + {{{ await $slots.head() }}} + @end + + + + {{-- Flash: success --}} + @if(flashMessages.has('success')) +
+ {{ flashMessages.get('success') }} +
+ @end + + {{-- Flash: error --}} + @if(flashMessages.has('error')) +
+ {{ flashMessages.get('error') }} +
+ @end + + {{{ await $slots.main() }}} + + + + diff --git a/resources/views/dashboard.edge b/resources/views/dashboard.edge new file mode 100644 index 0000000..81e5e8d --- /dev/null +++ b/resources/views/dashboard.edge @@ -0,0 +1,340 @@ +@layouts.main({ title: 'Dashboard — Imago Vault' }) + @slot('main') +
+ + {{-- ── Header ──────────────────────────────────────────────────────── --}} +
+
+

Media Library

+

+ {{ files.length }} file{{ files.length !== 1 ? 's' : '' }} stored +

+
+
+ Logout + +
+ + {{-- ── Upload zone ─────────────────────────────────────────────────── --}} +
+ +
+ + {{-- Default hint (hidden once a file is selected) --}} +
+ + + +

+ Drag & drop a file here, or + +

+

+ Images (JPG, PNG, GIF, WebP) · Videos (MP4, MOV, AVI, WebM) · Max 100 MB +

+
+ + {{-- Preview area (shown after file selection) --}} + + + {{-- Invisible file input covers the whole zone --}} + +
+ + {{-- Progress bar (shown during upload) --}} + + + {{-- Action buttons (shown after file selection) --}} + + + {{-- Inline result message --}} + + +
+ + {{-- ── Gallery ──────────────────────────────────────────────────────── --}} +
+

Uploaded Files

+ + @if(files.length === 0) +
+ + + +

No files uploaded yet. Drop one above to get started.

+
+ @else +
+ @each(file in files) +
+ + {{-- Media preview --}} + @if(file.type === 'image') +
+ {{ file.filename }} +
+ @elseif(file.type === 'video') +
+ +
+ @else +
+ + + +
+ @end + + {{-- Info row --}} +
+

+ {{ file.filename }} +

+
+ + + Open + +
+
+ +
+ @end +
+ @end +
+
+ + {{-- ── JavaScript ───────────────────────────────────────────────────── --}} + + @endslot +@end diff --git a/resources/views/login.edge b/resources/views/login.edge new file mode 100644 index 0000000..a108ded --- /dev/null +++ b/resources/views/login.edge @@ -0,0 +1,77 @@ +@layouts.main({ title: 'Sign In — Imago Vault' }) + @slot('main') +
+
+ + {{-- Logo / heading --}} +
+
+ + + +
+

Imago Vault

+

Sign in to manage your media files

+
+ + {{-- Credential error message --}} + @if(flashMessages.has('errors')) +
+ {{ flashMessages.get('errors').form ?? 'An error occurred.' }} +
+ @end + + {{-- Login form --}} +
+ {{ csrfField() }} + +
+ + +
+ +
+ + +
+ + +
+ +
+
+ @endslot +@end diff --git a/resources/views/pages/errors/not_found.edge b/resources/views/pages/errors/not_found.edge new file mode 100644 index 0000000..1417ab2 --- /dev/null +++ b/resources/views/pages/errors/not_found.edge @@ -0,0 +1,8 @@ +

+ 404 - Page not found +

+

+ This template is rendered by the + status pages feature + of the global exception handler. +

diff --git a/resources/views/pages/errors/server_error.edge b/resources/views/pages/errors/server_error.edge new file mode 100644 index 0000000..20e699c --- /dev/null +++ b/resources/views/pages/errors/server_error.edge @@ -0,0 +1,8 @@ +

+ {{ error.code }} - Server error +

+

+ This template is rendered by the + status pages feature + of the global exception handler. +

diff --git a/resources/views/pages/home.edge b/resources/views/pages/home.edge new file mode 100644 index 0000000..95e8cdd --- /dev/null +++ b/resources/views/pages/home.edge @@ -0,0 +1,408 @@ + + + + + + + AdonisJS - A fully featured web framework for Node.js + + + + + + + + + + + + @vite(['resources/css/app.css', 'resources/js/app.js']) + @stack('dumper') + + +
+
+ +
+ {{-- Header --}} + + + {{-- Bento with documentation, Adocasts, packages and Discord --}} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ + + +
+ +
+

+ + Documentation + + +

+ +

+ Dive into the official documentation to learn AdonisJS. Read carefully to discover an unmatched set of features, best practices and developer experience. Through examples, guides and API references, you'll find everything you need to build your next project. From installation to deployment, we've got you covered. +

+
+
+
+ +
+
+ + + +
+ +
+

+ + Adocasts + + +

+ +

+ Level up your development and Adonis skills with hours of video content, from beginner to advanced, through databases, testing, and more. +

+
+
+ +
+
+ + + +
+ +
+

+ + Packages + + +

+ +

+ Supercharge your AdonisJS application with packages built and maintained by both the core team and the community. +

+
+
+ +
+
+ + + +
+ +
+

+ + Discord + + +

+ +

+ Never get lost again, ask questions, and share your knowledge or projects with a growing and supportive community. Join us. +

+
+
+
+ + {{-- Features --}} +
+
+
+

+ + + + + + + + + + + Lucid + + +

+ +

+ A SQL ORM with a powerful query builder, active record, migrations, and model factories. Everything you need to work with databases. +

+ + + + +
+ +
+

+ + + + + + + Vine + + +

+ +

+ A simple yet feature rich and type-safe form data validation. It comes with 50+ built-in rules and an expressive API to define custom rules. +

+ + + + +
+ +
+

+ + + + + + + Edge + + +

+ +

+ Write your views with ease and enjoy the power of a simple, modern and battteries included template engine. You'll love it. +

+ + + + +
+ +
+

+ + + + + + + Japa + + +

+ +

+ From JSON API tests using Open API schema to browser tests with Playwright, it comes with everything you need to test your application. +

+ + + + +
+
+
+ +
+ Route for this page is registered in start/routes.ts file, rendering resources/views/pages/home.edge template +
+
+ + diff --git a/start/env.js b/start/env.js new file mode 100644 index 0000000..3fffdbd --- /dev/null +++ b/start/env.js @@ -0,0 +1,12 @@ +import { Env } from '@adonisjs/core/env'; +export default await Env.create(new URL('../', import.meta.url), { + NODE_ENV: Env.schema.enum(['development', 'production', 'test']), + PORT: Env.schema.number(), + APP_KEY: Env.schema.string(), + HOST: Env.schema.string({ format: 'host' }), + LOG_LEVEL: Env.schema.string(), + SESSION_DRIVER: Env.schema.enum(['cookie', 'memory']), + AUTH_USERNAME: Env.schema.string(), + AUTH_PASSWORD: Env.schema.string(), +}); +//# sourceMappingURL=env.js.map \ No newline at end of file diff --git a/start/env.js.map b/start/env.js.map new file mode 100644 index 0000000..679fbc3 --- /dev/null +++ b/start/env.js.map @@ -0,0 +1 @@ +{"version":3,"file":"env.js","sourceRoot":"","sources":["../../start/env.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAExC,eAAe,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC/D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;IACzE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC3C,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAO9B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;IAO9D,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAClC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;CACnC,CAAC,CAAA"} \ No newline at end of file diff --git a/start/kernel.js b/start/kernel.js new file mode 100644 index 0000000..0001cf3 --- /dev/null +++ b/start/kernel.js @@ -0,0 +1,17 @@ +import router from '@adonisjs/core/services/router'; +import server from '@adonisjs/core/services/server'; +server.errorHandler(() => import('#exceptions/handler')); +server.use([ + () => import('#middleware/container_bindings_middleware'), + () => import('@adonisjs/static/static_middleware'), + () => import('@adonisjs/vite/vite_middleware'), +]); +router.use([ + () => import('@adonisjs/core/bodyparser_middleware'), + () => import('@adonisjs/session/session_middleware'), + () => import('@adonisjs/shield/shield_middleware'), +]); +export const middleware = router.named({ + auth: () => import('#middleware/auth_middleware'), +}); +//# sourceMappingURL=kernel.js.map \ No newline at end of file diff --git a/start/kernel.js.map b/start/kernel.js.map new file mode 100644 index 0000000..c33fe4e --- /dev/null +++ b/start/kernel.js.map @@ -0,0 +1 @@ +{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../start/kernel.ts"],"names":[],"mappings":"AAUA,OAAO,MAAM,MAAM,gCAAgC,CAAA;AACnD,OAAO,MAAM,MAAM,gCAAgC,CAAA;AAMnD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAOxD,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,CAAC,MAAM,CAAC,2CAA2C,CAAC;IACzD,GAAG,EAAE,CAAC,MAAM,CAAC,oCAAoC,CAAC;IAClD,GAAG,EAAE,CAAC,MAAM,CAAC,gCAAgC,CAAC;CAC/C,CAAC,CAAA;AAMF,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC;IACpD,GAAG,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC;IACpD,GAAG,EAAE,CAAC,MAAM,CAAC,oCAAoC,CAAC;CACnD,CAAC,CAAA;AAMF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;IACrC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC;CAClD,CAAC,CAAA"} \ No newline at end of file diff --git a/start/routes.js b/start/routes.js new file mode 100644 index 0000000..afe1218 --- /dev/null +++ b/start/routes.js @@ -0,0 +1,19 @@ +import { mkdirSync } from 'node:fs'; +import router from '@adonisjs/core/services/router'; +import app from '@adonisjs/core/services/app'; +import { middleware } from '#start/kernel'; +mkdirSync(app.publicPath('uploads'), { recursive: true }); +const AuthController = () => import('#controllers/auth_controller'); +const UploadController = () => import('#controllers/upload_controller'); +const MediaController = () => import('#controllers/media_controller'); +router.get('/login', [AuthController, 'showLogin']); +router.post('/login', [AuthController, 'login']); +router.get('/api/media/:filename', [MediaController, 'serve']); +router + .group(() => { + router.get('/', [MediaController, 'index']); + router.post('/upload', [UploadController, 'store']); + router.get('/logout', [AuthController, 'logout']); +}) + .use(middleware.auth()); +//# sourceMappingURL=routes.js.map \ No newline at end of file diff --git a/start/routes.js.map b/start/routes.js.map new file mode 100644 index 0000000..fc38dc9 --- /dev/null +++ b/start/routes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../start/routes.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,MAAM,MAAM,gCAAgC,CAAA;AACnD,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAG1C,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAGzD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAA;AACnE,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAA;AACvE,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAA;AAIrE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAA;AACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAA;AAGhD,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;AAI9D,MAAM;KACH,KAAK,CAAC,GAAG,EAAE;IACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAA;AACnD,CAAC,CAAC;KACD,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA"} \ No newline at end of file diff --git a/tests/bootstrap.js b/tests/bootstrap.js new file mode 100644 index 0000000..332c5e5 --- /dev/null +++ b/tests/bootstrap.js @@ -0,0 +1,15 @@ +import { assert } from '@japa/assert'; +import app from '@adonisjs/core/services/app'; +import { pluginAdonisJS } from '@japa/plugin-adonisjs'; +import testUtils from '@adonisjs/core/services/test_utils'; +export const plugins = [assert(), pluginAdonisJS(app)]; +export const runnerHooks = { + setup: [], + teardown: [], +}; +export const configureSuite = (suite) => { + if (['browser', 'functional', 'e2e'].includes(suite.name)) { + return suite.setup(() => testUtils.httpServer().start()); + } +}; +//# sourceMappingURL=bootstrap.js.map \ No newline at end of file diff --git a/tests/bootstrap.js.map b/tests/bootstrap.js.map new file mode 100644 index 0000000..ef76006 --- /dev/null +++ b/tests/bootstrap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../tests/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,SAAS,MAAM,oCAAoC,CAAA;AAU1D,MAAM,CAAC,MAAM,OAAO,GAAsB,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;AASzE,MAAM,CAAC,MAAM,WAAW,GAAiD;IACvE,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;CACb,CAAA;AAMD,MAAM,CAAC,MAAM,cAAc,GAA6B,CAAC,KAAK,EAAE,EAAE;IAChE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC,CAAA"} \ No newline at end of file diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..7dc72f5 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite'; +import adonisjs from '@adonisjs/vite/client'; +export default defineConfig({ + plugins: [ + adonisjs({ + entrypoints: ['resources/css/app.css', 'resources/js/app.js'], + reload: ['resources/views/**/*.edge'], + }), + ], +}); +//# sourceMappingURL=vite.config.js.map \ No newline at end of file diff --git a/vite.config.js.map b/vite.config.js.map new file mode 100644 index 0000000..a4cd8e7 --- /dev/null +++ b/vite.config.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vite.config.js","sourceRoot":"","sources":["../vite.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,QAAQ,MAAM,uBAAuB,CAAA;AAE5C,eAAe,YAAY,CAAC;IAC1B,OAAO,EAAE;QACP,QAAQ,CAAC;YAKP,WAAW,EAAE,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;YAK7D,MAAM,EAAE,CAAC,2BAA2B,CAAC;SACtC,CAAC;KACH;CACF,CAAC,CAAA"} \ No newline at end of file