diff --git a/build/.adonisrc.json b/build/.adonisrc.json new file mode 100644 index 0000000..58dbd2d --- /dev/null +++ b/build/.adonisrc.json @@ -0,0 +1,55 @@ +{ + "typescript": false, + "commands": [ + "./commands", + "@adonisjs/core/commands", + "@adonisjs/repl/build/commands", + "@adonisjs/lucid/build/commands", + "@adonisjs/mail/build/commands", + "@adonisjs/bouncer/build/commands" + ], + "exceptionHandlerNamespace": "App/Exceptions/Handler", + "namespaces": { + "models": "App/Models", + "middleware": "App/Middleware", + "exceptions": "App/Exceptions", + "validators": "App/Validators", + "httpControllers": "App/Controllers/Http", + "eventListeners": "App/Listeners", + "redisListeners": "App/Listeners" + }, + "aliases": { + "App": "app", + "Config": "config", + "Database": "database", + "Contracts": "contracts" + }, + "preloads": [ + "./start/routes", + "./start/kernel", + "./start/event", + "./start/bouncer" + ], + "providers": [ + "./providers/AppProvider", + "@adonisjs/core", + "@adonisjs/lucid", + "@adonisjs/auth", + "@adonisjs/redis", + "@adonisjs/mail", + "@adonisjs/view", + "@adonisjs/attachment-lite", + "@adonisjs/bouncer", + "@adonisjs/drive-s3" + ], + "aceProviders": [ + "@adonisjs/repl" + ], + "metaFiles": [ + { + "pattern": "resources/views/**/*.edge", + "reloadServer": false + } + ], + "lastCompiledAt": "2022-06-12T19:05:07.347Z" +} diff --git a/build/ace b/build/ace new file mode 100644 index 0000000..c175031 --- /dev/null +++ b/build/ace @@ -0,0 +1,16 @@ +/* +|-------------------------------------------------------------------------- +| Ace Commands +|-------------------------------------------------------------------------- +| +| This file is the entry point for running ace commands. +| +*/ + +require('reflect-metadata') +require('source-map-support').install({ handleUncaughtExceptions: false }) + +const { Ignitor } = require('@adonisjs/core/build/standalone') +new Ignitor(__dirname) + .ace() + .handle(process.argv.slice(2)) diff --git a/build/ace-manifest.json b/build/ace-manifest.json new file mode 100644 index 0000000..d02b1e9 --- /dev/null +++ b/build/ace-manifest.json @@ -0,0 +1,573 @@ +{ + "commands": { + "dump:rcfile": { + "settings": {}, + "commandPath": "@adonisjs/core/build/commands/DumpRc", + "commandName": "dump:rcfile", + "description": "Dump contents of .adonisrc.json file along with defaults", + "args": [], + "aliases": [], + "flags": [] + }, + "list:routes": { + "settings": { + "loadApp": true, + "stayAlive": true + }, + "commandPath": "@adonisjs/core/build/commands/ListRoutes/index", + "commandName": "list:routes", + "description": "List application routes", + "args": [], + "aliases": [], + "flags": [ + { + "name": "verbose", + "propertyName": "verbose", + "type": "boolean", + "description": "Display more information" + }, + { + "name": "reverse", + "propertyName": "reverse", + "type": "boolean", + "alias": "r", + "description": "Reverse routes display" + }, + { + "name": "methods", + "propertyName": "methodsFilter", + "type": "array", + "alias": "m", + "description": "Filter routes by method" + }, + { + "name": "patterns", + "propertyName": "patternsFilter", + "type": "array", + "alias": "p", + "description": "Filter routes by the route pattern" + }, + { + "name": "names", + "propertyName": "namesFilter", + "type": "array", + "alias": "n", + "description": "Filter routes by route name" + }, + { + "name": "json", + "propertyName": "json", + "type": "boolean", + "description": "Output as JSON" + }, + { + "name": "table", + "propertyName": "table", + "type": "boolean", + "description": "Output as Table" + }, + { + "name": "max-width", + "propertyName": "maxWidth", + "type": "number", + "description": "Specify maximum rendering width. Ignored for JSON Output" + } + ] + }, + "generate:key": { + "settings": {}, + "commandPath": "@adonisjs/core/build/commands/GenerateKey", + "commandName": "generate:key", + "description": "Generate a new APP_KEY secret", + "args": [], + "aliases": [], + "flags": [] + }, + "repl": { + "settings": { + "loadApp": true, + "environment": "repl", + "stayAlive": true + }, + "commandPath": "@adonisjs/repl/build/commands/AdonisRepl", + "commandName": "repl", + "description": "Start a new REPL session", + "args": [], + "aliases": [], + "flags": [] + }, + "db:seed": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/DbSeed", + "commandName": "db:seed", + "description": "Execute database seeders", + "args": [], + "aliases": [], + "flags": [ + { + "name": "connection", + "propertyName": "connection", + "type": "string", + "description": "Define a custom database connection for the seeders", + "alias": "c" + }, + { + "name": "interactive", + "propertyName": "interactive", + "type": "boolean", + "description": "Run seeders in interactive mode", + "alias": "i" + }, + { + "name": "files", + "propertyName": "files", + "type": "array", + "description": "Define a custom set of seeders files names to run", + "alias": "f" + }, + { + "name": "compact-output", + "propertyName": "compactOutput", + "type": "boolean", + "description": "A compact single-line output" + } + ] + }, + "make:model": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/MakeModel", + "commandName": "make:model", + "description": "Make a new Lucid model", + "args": [ + { + "type": "string", + "propertyName": "name", + "name": "name", + "required": true, + "description": "Name of the model class" + } + ], + "aliases": [], + "flags": [ + { + "name": "migration", + "propertyName": "migration", + "type": "boolean", + "alias": "m", + "description": "Generate the migration for the model" + }, + { + "name": "controller", + "propertyName": "controller", + "type": "boolean", + "alias": "c", + "description": "Generate the controller for the model" + }, + { + "name": "factory", + "propertyName": "factory", + "type": "boolean", + "alias": "f", + "description": "Generate a factory for the model" + } + ] + }, + "make:migration": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/MakeMigration", + "commandName": "make:migration", + "description": "Make a new migration file", + "args": [ + { + "type": "string", + "propertyName": "name", + "name": "name", + "required": true, + "description": "Name of the migration file" + } + ], + "aliases": [], + "flags": [ + { + "name": "connection", + "propertyName": "connection", + "type": "string", + "description": "The connection flag is used to lookup the directory for the migration file" + }, + { + "name": "folder", + "propertyName": "folder", + "type": "string", + "description": "Pre-select a migration directory" + }, + { + "name": "create", + "propertyName": "create", + "type": "string", + "description": "Define the table name for creating a new table" + }, + { + "name": "table", + "propertyName": "table", + "type": "string", + "description": "Define the table name for altering an existing table" + } + ] + }, + "make:seeder": { + "settings": {}, + "commandPath": "@adonisjs/lucid/build/commands/MakeSeeder", + "commandName": "make:seeder", + "description": "Make a new Seeder file", + "args": [ + { + "type": "string", + "propertyName": "name", + "name": "name", + "required": true, + "description": "Name of the seeder class" + } + ], + "aliases": [], + "flags": [] + }, + "make:factory": { + "settings": {}, + "commandPath": "@adonisjs/lucid/build/commands/MakeFactory", + "commandName": "make:factory", + "description": "Make a new factory", + "args": [ + { + "type": "string", + "propertyName": "model", + "name": "model", + "required": true, + "description": "The name of the model" + } + ], + "aliases": [], + "flags": [ + { + "name": "model-path", + "propertyName": "modelPath", + "type": "string", + "description": "The path to the model" + }, + { + "name": "exact", + "propertyName": "exact", + "type": "boolean", + "description": "Create the factory with the exact name as provided", + "alias": "e" + } + ] + }, + "db:wipe": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/DbWipe", + "commandName": "db:wipe", + "description": "Drop all tables, views and types in database", + "args": [], + "aliases": [], + "flags": [ + { + "name": "connection", + "propertyName": "connection", + "type": "string", + "description": "Define a custom database connection", + "alias": "c" + }, + { + "name": "drop-views", + "propertyName": "dropViews", + "type": "boolean", + "description": "Drop all views" + }, + { + "name": "drop-types", + "propertyName": "dropTypes", + "type": "boolean", + "description": "Drop all custom types (Postgres only)" + }, + { + "name": "force", + "propertyName": "force", + "type": "boolean", + "description": "Explicitly force command to run in production" + } + ] + }, + "migration:run": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/Migration/Run", + "commandName": "migration:run", + "description": "Migrate database by running pending migrations", + "args": [], + "aliases": [], + "flags": [ + { + "name": "connection", + "propertyName": "connection", + "type": "string", + "description": "Define a custom database connection", + "alias": "c" + }, + { + "name": "force", + "propertyName": "force", + "type": "boolean", + "description": "Explicitly force to run migrations in production" + }, + { + "name": "dry-run", + "propertyName": "dryRun", + "type": "boolean", + "description": "Do not run actual queries. Instead view the SQL output" + }, + { + "name": "compact-output", + "propertyName": "compactOutput", + "type": "boolean", + "description": "A compact single-line output" + } + ] + }, + "migration:rollback": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/Migration/Rollback", + "commandName": "migration:rollback", + "description": "Rollback migrations to a specific batch number", + "args": [], + "aliases": [], + "flags": [ + { + "name": "connection", + "propertyName": "connection", + "type": "string", + "description": "Define a custom database connection", + "alias": "c" + }, + { + "name": "force", + "propertyName": "force", + "type": "boolean", + "description": "Explictly force to run migrations in production" + }, + { + "name": "dry-run", + "propertyName": "dryRun", + "type": "boolean", + "description": "Do not run actual queries. Instead view the SQL output" + }, + { + "name": "batch", + "propertyName": "batch", + "type": "number", + "description": "Define custom batch number for rollback. Use 0 to rollback to initial state" + }, + { + "name": "compact-output", + "propertyName": "compactOutput", + "type": "boolean", + "description": "A compact single-line output" + } + ] + }, + "migration:status": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/Migration/Status", + "commandName": "migration:status", + "description": "View migrations status", + "args": [], + "aliases": [], + "flags": [ + { + "name": "connection", + "propertyName": "connection", + "type": "string", + "description": "Define a custom database connection", + "alias": "c" + } + ] + }, + "migration:reset": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/Migration/Reset", + "commandName": "migration:reset", + "description": "Rollback all migrations", + "args": [], + "aliases": [], + "flags": [ + { + "name": "connection", + "propertyName": "connection", + "type": "string", + "description": "Define a custom database connection", + "alias": "c" + }, + { + "name": "force", + "propertyName": "force", + "type": "boolean", + "description": "Explicitly force command to run in production" + }, + { + "name": "dry-run", + "propertyName": "dryRun", + "type": "boolean", + "description": "Do not run actual queries. Instead view the SQL output" + } + ] + }, + "migration:refresh": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/Migration/Refresh", + "commandName": "migration:refresh", + "description": "Rollback and migrate database", + "args": [], + "aliases": [], + "flags": [ + { + "name": "connection", + "propertyName": "connection", + "type": "string", + "description": "Define a custom database connection", + "alias": "c" + }, + { + "name": "force", + "propertyName": "force", + "type": "boolean", + "description": "Explicitly force command to run in production" + }, + { + "name": "dry-run", + "propertyName": "dryRun", + "type": "boolean", + "description": "Do not run actual queries. Instead view the SQL output" + }, + { + "name": "seed", + "propertyName": "seed", + "type": "boolean", + "description": "Run seeders" + } + ] + }, + "migration:fresh": { + "settings": { + "loadApp": true + }, + "commandPath": "@adonisjs/lucid/build/commands/Migration/Fresh", + "commandName": "migration:fresh", + "description": "Drop all tables and re-migrate the database", + "args": [], + "aliases": [], + "flags": [ + { + "name": "connection", + "propertyName": "connection", + "type": "string", + "description": "Define a custom database connection", + "alias": "c" + }, + { + "name": "force", + "propertyName": "force", + "type": "boolean", + "description": "Explicitly force command to run in production" + }, + { + "name": "seed", + "propertyName": "seed", + "type": "boolean", + "description": "Run seeders" + }, + { + "name": "drop-views", + "propertyName": "dropViews", + "type": "boolean", + "description": "Drop all views" + }, + { + "name": "drop-types", + "propertyName": "dropTypes", + "type": "boolean", + "description": "Drop all custom types (Postgres only)" + } + ] + }, + "make:mailer": { + "settings": {}, + "commandPath": "@adonisjs/mail/build/commands/MakeMailer", + "commandName": "make:mailer", + "description": "Make a new mailer class", + "args": [ + { + "type": "string", + "propertyName": "name", + "name": "name", + "required": true, + "description": "Name of the mailer class" + } + ], + "aliases": [], + "flags": [] + }, + "make:policy": { + "settings": {}, + "commandPath": "@adonisjs/bouncer/build/commands/MakePolicy", + "commandName": "make:policy", + "description": "Make a new bouncer policy", + "args": [ + { + "type": "string", + "propertyName": "name", + "name": "name", + "required": true, + "description": "Name of the policy to create" + } + ], + "aliases": [], + "flags": [ + { + "name": "resource-model", + "propertyName": "resourceModel", + "type": "string", + "description": "Name of the resource model to authorize" + }, + { + "name": "user-model", + "propertyName": "userModel", + "type": "string", + "description": "Name of the user model to be authorized" + }, + { + "name": "actions", + "propertyName": "actions", + "type": "array", + "description": "Actions to implement" + } + ] + } + }, + "aliases": {} +} diff --git a/build/app/Controllers/Http/Api/v1/AuthController.js b/build/app/Controllers/Http/Api/v1/AuthController.js new file mode 100644 index 0000000..5dd73ca --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/AuthController.js @@ -0,0 +1,52 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const AuthService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/AuthService")); +const AuthValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Auth/AuthValidator")); +const BaseController_1 = __importDefault(require("../../BaseController")); +let AuthController = class AuthController extends BaseController_1.default { + constructor(authService) { + super(); + Object.defineProperty(this, "authService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.authService = authService; + } + async login(ctx) { + const payload = await ctx.request.validate(AuthValidator_1.default); + const result = await this.authService.login(payload.login, payload.password, ctx); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async logout(ctx) { + const result = await this.authService.logout(ctx); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } +}; +AuthController = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [AuthService_1.default]) +], AuthController); +exports.default = AuthController; +new standalone_1.Ioc().make(AuthController); +//# sourceMappingURL=AuthController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/AuthController.js.map b/build/app/Controllers/Http/Api/v1/AuthController.js.map new file mode 100644 index 0000000..58c3555 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/AuthController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AuthController.js","sourceRoot":"","sources":["../../../../../../app/Controllers/Http/Api/v1/AuthController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,gEAAyE;AACzE,iGAAmD;AAKnD,4GAA8D;AAK9D,0EAAkD;AAGlD,IAAqB,cAAc,GAAnC,MAAqB,cAAe,SAAQ,wBAAc;IAGxD,YAAY,WAAwB;QAClC,KAAK,EAAE,CAAC;QAHV;;;;;WAAiC;QAI/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAOM,KAAK,CAAC,KAAK,CAAC,GAAwB;QACzC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAa,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAElF,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE;YACnC,MAAM,IAAI,sBAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;IAOM,KAAK,CAAC,MAAM,CAAC,GAAwB;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE;YACnC,MAAM,IAAI,sBAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;CACF,CAAA;AAtCoB,cAAc;IADlC,IAAA,mBAAM,GAAE;qCAIkB,qBAAW;GAHjB,cAAc,CAsClC;kBAtCoB,cAAc;AAwCnC,IAAI,gBAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC"} \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/CategoriesController.js b/build/app/Controllers/Http/Api/v1/CategoriesController.js new file mode 100644 index 0000000..69957ec --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/CategoriesController.js @@ -0,0 +1,75 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const CategoryService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/CategoryService")); +const CreateCategoryValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Category/CreateCategoryValidator")); +const UpdateCategoryValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Category/UpdateCategoryValidator")); +const BaseController_1 = __importDefault(require("../../BaseController")); +let CategoriesController = class CategoriesController extends BaseController_1.default { + constructor(categoryService) { + super(); + Object.defineProperty(this, "categoryService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.categoryService = categoryService; + } + async list(ctx) { + const result = await this.categoryService.fetchCategories(); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async show(ctx) { + const result = await this.categoryService.fetchCategory(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async create(ctx) { + const payload = await ctx.request.validate(CreateCategoryValidator_1.default); + const result = await this.categoryService.createCategory(payload); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async delete(ctx) { + const result = await this.categoryService.deleteCategory(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async update(ctx) { + const payload = await ctx.request.validate(UpdateCategoryValidator_1.default); + const result = await this.categoryService.updateCategory(ctx.params.id, payload); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } +}; +CategoriesController = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [CategoryService_1.default]) +], CategoriesController); +exports.default = CategoriesController; +new standalone_1.Ioc().make(CategoriesController); +//# sourceMappingURL=CategoriesController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/CategoriesController.js.map b/build/app/Controllers/Http/Api/v1/CategoriesController.js.map new file mode 100644 index 0000000..72d19c1 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/CategoriesController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CategoriesController.js","sourceRoot":"","sources":["../../../../../../app/Controllers/Http/Api/v1/CategoriesController.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/ChatController.js b/build/app/Controllers/Http/Api/v1/ChatController.js new file mode 100644 index 0000000..3293479 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/ChatController.js @@ -0,0 +1,34 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const HttpStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/HttpStatusEnum")); +const WsService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/WsService")); +const BaseController_1 = __importDefault(require("../../BaseController")); +let ChatController = class ChatController extends BaseController_1.default { + async getConversations(ctx) { + const user = await ctx.auth.authenticate(); + const data = await WsService_1.default.messageStore.getConversations(user.id); + const result = { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched conversations.', + data, + }; + return this.sendResponse(ctx, result.data, result.message, result.status); + } +}; +ChatController = __decorate([ + (0, standalone_1.inject)() +], ChatController); +exports.default = ChatController; +new standalone_1.Ioc().make(ChatController); +//# sourceMappingURL=ChatController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/ChatController.js.map b/build/app/Controllers/Http/Api/v1/ChatController.js.map new file mode 100644 index 0000000..0ed2c31 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/ChatController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ChatController.js","sourceRoot":"","sources":["../../../../../../app/Controllers/Http/Api/v1/ChatController.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,gEAA8D;AAQ9D,8GAAgE;AAKhE,6FAA+C;AAE/C,0EAAkD;AAGlD,IAAqB,cAAc,GAAnC,MAAqB,cAAe,SAAQ,wBAAc;IAKjD,KAAK,CAAC,gBAAgB,CAAC,GAAwB;QACpD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,mBAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,MAAM,GAAkC;YAC5C,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,wBAAc,CAAC,EAAE;YACzB,OAAO,EAAE,wBAAwB;YACjC,IAAI;SACL,CAAC;QAEF,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;CACF,CAAA;AAjBoB,cAAc;IADlC,IAAA,mBAAM,GAAE;GACY,cAAc,CAiBlC;kBAjBoB,cAAc;AAmBnC,IAAI,gBAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC"} \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/CoursesController.js b/build/app/Controllers/Http/Api/v1/CoursesController.js new file mode 100644 index 0000000..cbd8141 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/CoursesController.js @@ -0,0 +1,178 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const CourseService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/CourseService")); +const AddCourseToUserValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Course/AddCourseToUserValidator")); +const AttachStudentsValitator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Course/AttachStudentsValitator")); +const DetachStudentstValitator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Course/DetachStudentstValitator")); +const CreateCourseValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Course/CreateCourseValidator")); +const DelCourseFromUserValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Course/DelCourseFromUserValidator")); +const SetCourseStatusValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Course/SetCourseStatusValidator")); +const UpdateCourseValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Course/UpdateCourseValidator")); +const FetchCoursesValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Course/FetchCoursesValidator")); +const BaseController_1 = __importDefault(require("../../BaseController")); +let CoursesController = class CoursesController extends BaseController_1.default { + constructor(courseService) { + super(); + Object.defineProperty(this, "courseService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.courseService = courseService; + } + async list(ctx) { + const payload = await ctx.request.validate(FetchCoursesValidator_1.default); + const result = await this.courseService.fetchCourses(payload); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async show(ctx) { + const result = await this.courseService.fetchCourse(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async showTeacher(ctx) { + const result = await this.courseService.fetchCourseTeacher(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async showCategory(ctx) { + const result = await this.courseService.fetchCourseCategory(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async showLessons(ctx) { + const result = await this.courseService.fetchCourseLessons(ctx.params.id, ctx); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async showStudents(ctx) { + const result = await this.courseService.fetchCourseStudents(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async create(ctx) { + const payload = await ctx.request.validate(CreateCourseValidator_1.default); + const result = await this.courseService.createCourse(payload); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async delete(ctx) { + const result = await this.courseService.deleteCourse(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async update(ctx) { + const payload = await ctx.request.validate(UpdateCourseValidator_1.default); + const result = await this.courseService.updateCourse(ctx.params.id, payload); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async attachStudent(ctx) { + const payload = await ctx.request.validate(AddCourseToUserValidator_1.default); + const result = await this.courseService.attachUserCourse(ctx.params.id, payload.student_id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async attachStudentList(ctx) { + const payload = await ctx.request.validate(AttachStudentsValitator_1.default); + const result = await this.courseService.attachStudentList(ctx.params.id, payload.students); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async detachStudent(ctx) { + const payload = await ctx.request.validate(DelCourseFromUserValidator_1.default); + const result = await this.courseService.detachUserCourse(ctx.params.id, payload.student_id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async detachStudentList(ctx) { + const payload = await ctx.request.validate(DetachStudentstValitator_1.default); + const result = await this.courseService.detachStudentList(ctx.params.id, payload.students); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async studentsCount(ctx) { + const result = await this.courseService.fetchStudentsCount(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async showLikes(ctx) { + const result = await this.courseService.fetchCourseLikesCount(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async setLike(ctx) { + const result = await this.courseService.attachUserLike(ctx.params.id, ctx.auth); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async unsetLike(ctx) { + const result = await this.courseService.detachUserLike(ctx.params.id, ctx.auth); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async setStatus(ctx) { + const payload = await ctx.request.validate(SetCourseStatusValidator_1.default); + const result = await this.courseService.setCourseStatus(ctx.params.id, payload.status); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } +}; +CoursesController = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [CourseService_1.default]) +], CoursesController); +exports.default = CoursesController; +new standalone_1.Ioc().make(CoursesController); +//# sourceMappingURL=CoursesController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/CoursesController.js.map b/build/app/Controllers/Http/Api/v1/CoursesController.js.map new file mode 100644 index 0000000..278c4bb --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/CoursesController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CoursesController.js","sourceRoot":"","sources":["../../../../../../app/Controllers/Http/Api/v1/CoursesController.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/ImagesController.js b/build/app/Controllers/Http/Api/v1/ImagesController.js new file mode 100644 index 0000000..9d4d327 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/ImagesController.js @@ -0,0 +1,66 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const ImageService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/ImageService")); +const CreateImageValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Image/CreateImageValidator")); +const BaseController_1 = __importDefault(require("../../BaseController")); +let ImagesController = class ImagesController extends BaseController_1.default { + constructor(imageService) { + super(); + Object.defineProperty(this, "imageService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.imageService = imageService; + } + async list(ctx) { + const result = await this.imageService.fetchImages(); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async show(ctx) { + const result = await this.imageService.fetchImage(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async create(ctx) { + const payload = await ctx.request.validate(CreateImageValidator_1.default); + const result = await this.imageService.createImage(payload); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async delete(ctx) { + const result = await this.imageService.deleteImage(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } +}; +ImagesController = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [ImageService_1.default]) +], ImagesController); +exports.default = ImagesController; +new standalone_1.Ioc().make(ImagesController); +//# sourceMappingURL=ImagesController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/ImagesController.js.map b/build/app/Controllers/Http/Api/v1/ImagesController.js.map new file mode 100644 index 0000000..e8ec984 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/ImagesController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ImagesController.js","sourceRoot":"","sources":["../../../../../../app/Controllers/Http/Api/v1/ImagesController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gEAAyE;AAEzE,mGAAqD;AACrD,2HAA6E;AAC7E,0EAAkD;AAGlD,IAAqB,gBAAgB,GAArC,MAAqB,gBAAiB,SAAQ,wBAAc;IAG1D,YAAY,YAA0B;QACpC,KAAK,EAAE,CAAC;QAHV;;;;;WAAmC;QAIjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,GAAwB;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE;YACnC,MAAM,IAAI,sBAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,GAAwB;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE;YACnC,MAAM,IAAI,sBAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAwB;QAC1C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAAoB,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE;YACnC,MAAM,IAAI,sBAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAwB;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE;YACnC,MAAM,IAAI,sBAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;CACF,CAAA;AAhDoB,gBAAgB;IADpC,IAAA,mBAAM,GAAE;qCAImB,sBAAY;GAHnB,gBAAgB,CAgDpC;kBAhDoB,gBAAgB;AAkDrC,IAAI,gBAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/LessonsController.js b/build/app/Controllers/Http/Api/v1/LessonsController.js new file mode 100644 index 0000000..c3292af --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/LessonsController.js @@ -0,0 +1,113 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +const LessonService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/LessonService")); +const LessonMaterial_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/LessonMaterial")); +const CreateLessonValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Lesson/CreateLessonValidator")); +const UpdateLessonValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Lesson/UpdateLessonValidator")); +const BaseController_1 = __importDefault(require("../../BaseController")); +let LessonsController = class LessonsController extends BaseController_1.default { + constructor(lessonService) { + super(); + Object.defineProperty(this, "lessonService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.lessonService = lessonService; + } + async list(ctx) { + const result = await this.lessonService.fetchLessons(); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async show(ctx) { + const result = await this.lessonService.fetchLesson(ctx.params.id, ctx); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async create(ctx) { + const payload = await ctx.request.validate(CreateLessonValidator_1.default); + const result = await this.lessonService.createLesson(payload); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async delete(ctx) { + const result = await this.lessonService.deleteLesson(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async update(ctx) { + const payload = await ctx.request.validate(UpdateLessonValidator_1.default); + const result = await this.lessonService.updateLesson(ctx.params.id, payload); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async getContent(ctx) { + const result = await this.lessonService.fetchLessonContent(ctx.params.id, ctx); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async getMaterial(ctx) { + const { fileName } = ctx.request.params(); + const { data, message, status, success, error } = await this.lessonService.fetchMaterialFile(ctx, fileName); + if (!success && error) { + throw new standalone_1.Exception(message, status, error.code); + } + if (data instanceof LessonMaterial_1.default) { + return this.sendFileFromDrive(`materials/${data.name}`, ctx); + } + return this.sendResponse(ctx, data, message, status); + } + async saveOrder(ctx) { + const saveOrderSchema = Validator_1.schema.create({ + ids: Validator_1.schema.array([Validator_1.rules.minLength(1)]).members(Validator_1.schema.string()), + }); + const payload = await ctx.request.validate({ schema: saveOrderSchema }); + const { data, message, status, success, error } = await this.lessonService.updateOrder(payload.ids); + if (!success && error) { + throw new standalone_1.Exception(message, status, error.code); + } + return this.sendResponse(ctx, data, message, status); + } + async getVideoProgress(ctx) { + const { data, message, status, success, error } = await this.lessonService.fetchLessonProgress(ctx.params.id, ctx); + if (!success && error) { + throw new standalone_1.Exception(message, status, error.code); + } + return this.sendResponse(ctx, data, message, status); + } +}; +LessonsController = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [LessonService_1.default]) +], LessonsController); +exports.default = LessonsController; +new standalone_1.Ioc().make(LessonsController); +//# sourceMappingURL=LessonsController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/LessonsController.js.map b/build/app/Controllers/Http/Api/v1/LessonsController.js.map new file mode 100644 index 0000000..f81efb4 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/LessonsController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LessonsController.js","sourceRoot":"","sources":["../../../../../../app/Controllers/Http/Api/v1/LessonsController.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/MeController.js b/build/app/Controllers/Http/Api/v1/MeController.js new file mode 100644 index 0000000..42e3294 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/MeController.js @@ -0,0 +1,105 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +const MeService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/MeService")); +const ChangePasswordValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Password/ChangePasswordValidator")); +const UpdateContactsValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/Contacts/UpdateContactsValidator")); +const UpdateUserInfoValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/User/UpdateUserInfoValidator")); +const BaseController_1 = __importDefault(require("../../BaseController")); +let MeController = class MeController extends BaseController_1.default { + constructor(meService) { + super(); + Object.defineProperty(this, "meService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.meService = meService; + } + async show(ctx) { + const result = await this.meService.fetchUserData(ctx.auth); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async changePassword(ctx) { + const payload = await ctx.request.validate(ChangePasswordValidator_1.default); + const result = await this.meService.changeUserPassword(payload.oldPassword, payload.newPassword, ctx.auth); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async changeEmail(ctx) { + const payload = await ctx.request.validate({ + schema: Validator_1.schema.create({ + email: Validator_1.schema.string({}, [Validator_1.rules.email(), Validator_1.rules.unique({ table: 'users', column: 'email' })]), + }), + messages: { + 'email.unique': 'Email is not available.', + }, + }); + const result = await MeService_1.default.changeUserEmail(payload.email); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async changeEmailConfirm(ctx) { + const confirmChangeEmailSchema = Validator_1.schema.create({ + email: Validator_1.schema.string({}, [Validator_1.rules.email(), Validator_1.rules.unique({ table: 'users', column: 'email' })]), + confirmationCode: Validator_1.schema.number(), + }); + const payload = await ctx.request.validate({ schema: confirmChangeEmailSchema }); + const result = await MeService_1.default.changeUserEmailConfirm(ctx, payload.email, payload.confirmationCode); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async updateContacts(ctx) { + const payload = await ctx.request.validate(UpdateContactsValidator_1.default); + const result = await this.meService.updateUserContacts(payload, ctx.auth); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async updateInfo(ctx) { + const payload = await ctx.request.validate(UpdateUserInfoValidator_1.default); + const result = await this.meService.updateUserInfo(payload, ctx.auth); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async chatHistory(ctx) { + const result = await this.meService.fetchChatHistory(ctx.params.chat_id, ctx.auth); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } +}; +MeController = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [MeService_1.default]) +], MeController); +exports.default = MeController; +new standalone_1.Ioc().make(MeController); +//# sourceMappingURL=MeController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/MeController.js.map b/build/app/Controllers/Http/Api/v1/MeController.js.map new file mode 100644 index 0000000..c7ac7fe --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/MeController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MeController.js","sourceRoot":"","sources":["../../../../../../app/Controllers/Http/Api/v1/MeController.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/StatController.js b/build/app/Controllers/Http/Api/v1/StatController.js new file mode 100644 index 0000000..e8ba5cc --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/StatController.js @@ -0,0 +1,43 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const StatService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/StatService")); +const BaseController_1 = __importDefault(require("../../BaseController")); +let StatController = class StatController extends BaseController_1.default { + constructor(statService) { + super(); + Object.defineProperty(this, "statService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.statService = statService; + } + async index(ctx) { + const result = await this.statService.fetchStatData(); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } +}; +StatController = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [StatService_1.default]) +], StatController); +exports.default = StatController; +new standalone_1.Ioc().make(StatController); +//# sourceMappingURL=StatController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/StatController.js.map b/build/app/Controllers/Http/Api/v1/StatController.js.map new file mode 100644 index 0000000..a1051dd --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/StatController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"StatController.js","sourceRoot":"","sources":["../../../../../../app/Controllers/Http/Api/v1/StatController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gEAAyE;AAEzE,iGAAmD;AAEnD,0EAAkD;AAGlD,IAAqB,cAAc,GAAnC,MAAqB,cAAe,SAAQ,wBAAc;IAGxD,YAAY,WAAwB;QAClC,KAAK,EAAE,CAAC;QAHV;;;;;WAAiC;QAI/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAMM,KAAK,CAAC,KAAK,CAAC,GAAwB;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE;YACnC,MAAM,IAAI,sBAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;CACF,CAAA;AArBoB,cAAc;IADlC,IAAA,mBAAM,GAAE;qCAIkB,qBAAW;GAHjB,cAAc,CAqBlC;kBArBoB,cAAc;AAuBnC,IAAI,gBAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC"} \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/UsersController.js b/build/app/Controllers/Http/Api/v1/UsersController.js new file mode 100644 index 0000000..e0ad745 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/UsersController.js @@ -0,0 +1,93 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const UserService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/UserService")); +const AddRoleToUserValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/User/AddRoleToUserValidator")); +const CreateUserValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/User/CreateUserValidator")); +const DelRoleFromUserValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/User/DelRoleFromUserValidator")); +const UpdateUserValidator_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Validators/User/UpdateUserValidator")); +const BaseController_1 = __importDefault(require("../../BaseController")); +let UsersController = class UsersController extends BaseController_1.default { + constructor(userService) { + super(); + Object.defineProperty(this, "userService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.userService = userService; + } + async list(ctx) { + const result = await this.userService.fetchUsers(ctx.request.qs()); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status, result.meta); + } + async show(ctx) { + const result = await this.userService.fetchUser(ctx.params.id); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async create(ctx) { + const payload = await ctx.request.validate(CreateUserValidator_1.default); + const result = await this.userService.createUser(payload, ctx); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async update(ctx) { + const payload = await ctx.request.validate(UpdateUserValidator_1.default); + const result = await this.userService.updateUser(ctx.params.id, payload, ctx); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async delete(ctx) { + const result = await this.userService.deleteUser(ctx.params.id, ctx); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async attachRoles(ctx) { + const payload = await ctx.request.validate(AddRoleToUserValidator_1.default); + const result = await this.userService.attachRolesToUser(ctx.params.id, payload.roles); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } + async detachRoles(ctx) { + const payload = await ctx.request.validate(DelRoleFromUserValidator_1.default); + const result = await this.userService.detachRolesFromUser(ctx.params.id, payload.roles); + if (!result.success && result.error) { + throw new standalone_1.Exception(result.message, result.status, result.error.code); + } + return this.sendResponse(ctx, result.data, result.message, result.status); + } +}; +UsersController = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [UserService_1.default]) +], UsersController); +exports.default = UsersController; +new standalone_1.Ioc().make(UsersController); +//# sourceMappingURL=UsersController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/Api/v1/UsersController.js.map b/build/app/Controllers/Http/Api/v1/UsersController.js.map new file mode 100644 index 0000000..e96ff72 --- /dev/null +++ b/build/app/Controllers/Http/Api/v1/UsersController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UsersController.js","sourceRoot":"","sources":["../../../../../../app/Controllers/Http/Api/v1/UsersController.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Controllers/Http/BaseController.js b/build/app/Controllers/Http/BaseController.js new file mode 100644 index 0000000..3a984fd --- /dev/null +++ b/build/app/Controllers/Http/BaseController.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Drive_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Drive")); +const path_1 = require("path"); +class BaseController { + sendResponse(ctx, data, message, status = 200, meta) { + const response = { + status, + message, + data, + meta, + }; + return ctx.response.status(response.status).send(response); + } + sendStream(ctx, ...args) { + return ctx.response.stream(...args); + } + sendFile(ctx, ...args) { + return ctx.response.attachment(...args); + } + async sendFileFromDrive(pathname, ctx) { + if (!(await Drive_1.default.exists(pathname))) + return ctx.response.notFound(); + const { size } = await Drive_1.default.getStats(pathname); + ctx.response.type((0, path_1.extname)(pathname)); + ctx.response.header('content-length', size); + const stream = await Drive_1.default.getStream(pathname); + return this.sendStream(ctx, stream); + } +} +exports.default = BaseController; +//# sourceMappingURL=BaseController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/BaseController.js.map b/build/app/Controllers/Http/BaseController.js.map new file mode 100644 index 0000000..2ea3fc6 --- /dev/null +++ b/build/app/Controllers/Http/BaseController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../../../../app/Controllers/Http/BaseController.ts"],"names":[],"mappings":";;;;;AAGA,oFAA2C;AAC3C,+BAA+B;AAE/B,MAAqB,cAAc;IAC1B,YAAY,CAAC,GAAwB,EAAE,IAAY,EAAE,OAAe,EAAE,MAAM,GAAG,GAAG,EAAE,IAAU;QACnG,MAAM,QAAQ,GAAG;YACf,MAAM;YACN,OAAO;YACP,IAAI;YACJ,IAAI;SACL,CAAC;QAEF,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAEM,UAAU,CAAC,GAAwB,EAAE,GAAG,IAA4C;QACzF,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,QAAQ,CAAC,GAAwB,EAAE,GAAG,IAAgD;QAC3F,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,GAAwB;QAIvE,IAAI,CAAC,CAAC,MAAM,eAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAEpE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC,CAAC;QACrC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AAnCD,iCAmCC"} \ No newline at end of file diff --git a/build/app/Controllers/Http/VideosController.js b/build/app/Controllers/Http/VideosController.js new file mode 100644 index 0000000..d880173 --- /dev/null +++ b/build/app/Controllers/Http/VideosController.js @@ -0,0 +1,49 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const LessonVideo_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/LessonVideo")); +const LessonService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/LessonService")); +const BaseController_1 = __importDefault(require("./BaseController")); +let VideosController = class VideosController extends BaseController_1.default { + constructor(lessonService) { + super(); + Object.defineProperty(this, "lessonService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.lessonService = lessonService; + } + async getVideo(ctx) { + const { fileName } = ctx.request.params(); + const { data, message, status, success, error } = await this.lessonService.fetchVideoFile(ctx, fileName); + if (!success && error) { + throw new standalone_1.Exception(message, status, error.code); + } + if (data instanceof LessonVideo_1.default) { + ctx.response.header('Accept-Ranges', 'bytes'); + return this.sendFileFromDrive(`videos/${data.name}`, ctx); + } + return this.sendResponse(ctx, data, message, status); + } +}; +VideosController = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [LessonService_1.default]) +], VideosController); +exports.default = VideosController; +new standalone_1.Ioc().make(VideosController); +//# sourceMappingURL=VideosController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Http/VideosController.js.map b/build/app/Controllers/Http/VideosController.js.map new file mode 100644 index 0000000..b24f263 --- /dev/null +++ b/build/app/Controllers/Http/VideosController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"VideosController.js","sourceRoot":"","sources":["../../../../app/Controllers/Http/VideosController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gEAAyE;AAMzE,+FAAiD;AAKjD,qGAAuD;AAEvD,sEAA8C;AAG9C,IAAqB,gBAAgB,GAArC,MAAqB,gBAAiB,SAAQ,wBAAc;IAG1D,YAAY,aAA4B;QACtC,KAAK,EAAE,CAAC;QAHV;;;;;WAAqC;QAInC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAMM,KAAK,CAAC,QAAQ,CAAC,GAAwB;QAC5C,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEzG,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE;YACrB,MAAM,IAAI,sBAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,YAAY,qBAAW,EAAE;YAI/B,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAK9C,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;SAC3D;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AAlCoB,gBAAgB;IADpC,IAAA,mBAAM,GAAE;qCAIoB,uBAAa;GAHrB,gBAAgB,CAkCpC;kBAlCoB,gBAAgB;AAoCrC,IAAI,gBAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC"} \ No newline at end of file diff --git a/build/app/Controllers/Ws/OnlineController.js b/build/app/Controllers/Ws/OnlineController.js new file mode 100644 index 0000000..ed3c69f --- /dev/null +++ b/build/app/Controllers/Ws/OnlineController.js @@ -0,0 +1,68 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class OnlineController { + constructor(socket, io, sessionStore) { + Object.defineProperty(this, "socket", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "io", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "sessionStore", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.socket = socket; + this.io = io; + this.sessionStore = sessionStore; + } + handle() { + this.onConnected(this.socket); + this.socket.on('disconnect', reason => this.onDisconnected(reason)); + } + sendOnline(online) { + this.io.sockets.emit('user:online', online); + } + setUserOnline() { + const { sessionId, userId, userName } = this.socket.data; + if (sessionId && userId && userName) { + this.sessionStore + .saveSession(sessionId, { userId, userName, connected: true }) + .then(() => this.sessionStore.getOnlineSessions()) + .then(online => this.sendOnline(online)); + } + } + async setUserOffline() { + if (this.socket.data.userName && this.socket.data.sessionId && this.socket.data.userId) { + const matchingSockets = await this.io.in(this.socket.data.userId).allSockets(); + const isDisconnected = matchingSockets.size === 0; + if (isDisconnected) { + const { sessionId, userId, userName } = this.socket.data; + this.sessionStore + .saveSession(sessionId, { userId, userName, connected: false }) + .then(() => this.sessionStore.getOnlineSessions()) + .then(online => this.socket.broadcast.emit('user:online', online)); + } + } + } + async onConnected(socket) { + this.setUserOnline(); + if (this.socket.data.userName && this.socket.data.sessionId && this.socket.data.userId) { + socket.broadcast.emit('user:connected', { userId: this.socket.data.userId, userName: this.socket.data.userName }); + } + socket.on('user:status', () => this.setUserOnline()); + } + onDisconnected(_reason) { + this.setUserOffline(); + } +} +exports.default = OnlineController; +//# sourceMappingURL=OnlineController.js.map \ No newline at end of file diff --git a/build/app/Controllers/Ws/OnlineController.js.map b/build/app/Controllers/Ws/OnlineController.js.map new file mode 100644 index 0000000..69b4c35 --- /dev/null +++ b/build/app/Controllers/Ws/OnlineController.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OnlineController.js","sourceRoot":"","sources":["../../../../app/Controllers/Ws/OnlineController.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Datatypes/Enums/CodeErrorEnum.js b/build/app/Datatypes/Enums/CodeErrorEnum.js new file mode 100644 index 0000000..f83f84b --- /dev/null +++ b/build/app/Datatypes/Enums/CodeErrorEnum.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var CodeErrorEnum; +(function (CodeErrorEnum) { + CodeErrorEnum["NOT_FOUND"] = "E_NOT_FOUND"; + CodeErrorEnum["BAD_REQUEST"] = "E_BAD_REQUEST"; + CodeErrorEnum["CONFIRM_CODE_EXIST"] = "E_CONFIRM_CODE_EXIST"; +})(CodeErrorEnum || (CodeErrorEnum = {})); +exports.default = CodeErrorEnum; +//# sourceMappingURL=CodeErrorEnum.js.map \ No newline at end of file diff --git a/build/app/Datatypes/Enums/CodeErrorEnum.js.map b/build/app/Datatypes/Enums/CodeErrorEnum.js.map new file mode 100644 index 0000000..6a7ca46 --- /dev/null +++ b/build/app/Datatypes/Enums/CodeErrorEnum.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CodeErrorEnum.js","sourceRoot":"","sources":["../../../../app/Datatypes/Enums/CodeErrorEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,aAIJ;AAJD,WAAK,aAAa;IAChB,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;IAC7B,4DAA2C,CAAA;AAC7C,CAAC,EAJI,aAAa,KAAb,aAAa,QAIjB;AAED,kBAAe,aAAa,CAAC"} \ No newline at end of file diff --git a/build/app/Datatypes/Enums/ColorEnum.js b/build/app/Datatypes/Enums/ColorEnum.js new file mode 100644 index 0000000..b3f970c --- /dev/null +++ b/build/app/Datatypes/Enums/ColorEnum.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ColorEnum; +(function (ColorEnum) { + ColorEnum["IndianRed"] = "#CD5C5C"; + ColorEnum["FireBrick"] = "#B22222"; + ColorEnum["Tomato"] = "#FF6347"; + ColorEnum["Orange"] = "#FFA500"; + ColorEnum["Gold"] = "#FFD700"; + ColorEnum["Purple"] = "#800080"; + ColorEnum["Indigo"] = "#4B0082"; + ColorEnum["Teal"] = "#008080"; + ColorEnum["Cyan"] = "#0BC5EA"; + ColorEnum["Crimson"] = "#DC143C"; + ColorEnum["Chocolate"] = "#D2691E"; + ColorEnum["Salmon"] = "#FA8072"; + ColorEnum["Violet"] = "#EE82EE"; + ColorEnum["Blue"] = "#0000FF"; + ColorEnum["SteelBlue"] = "#4682B4"; + ColorEnum["RosyBrown"] = "#BC8F8F"; + ColorEnum["DarkSlateGray"] = "#2F4F4F"; + ColorEnum["DimGray"] = "#696969"; + ColorEnum["MediumVioletRed"] = "#C71585"; + ColorEnum["MediumOrchid"] = "#BA55D3"; + ColorEnum["MediumPurple"] = "#9370DB"; + ColorEnum["MediumSlateBlue"] = "#7B68EE"; + ColorEnum["MediumSeaGreen"] = "#3CB371"; + ColorEnum["MediumAquamarine"] = "#66CDAA"; + ColorEnum["MediumTurquoise"] = "#48D1CC"; +})(ColorEnum || (ColorEnum = {})); +exports.default = ColorEnum; +//# sourceMappingURL=ColorEnum.js.map \ No newline at end of file diff --git a/build/app/Datatypes/Enums/ColorEnum.js.map b/build/app/Datatypes/Enums/ColorEnum.js.map new file mode 100644 index 0000000..64c59b2 --- /dev/null +++ b/build/app/Datatypes/Enums/ColorEnum.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ColorEnum.js","sourceRoot":"","sources":["../../../../app/Datatypes/Enums/ColorEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,SA0BJ;AA1BD,WAAK,SAAS;IACZ,kCAAqB,CAAA;IACrB,kCAAqB,CAAA;IACrB,+BAAkB,CAAA;IAClB,+BAAkB,CAAA;IAClB,6BAAgB,CAAA;IAChB,+BAAkB,CAAA;IAClB,+BAAkB,CAAA;IAClB,6BAAgB,CAAA;IAChB,6BAAgB,CAAA;IAChB,gCAAmB,CAAA;IACnB,kCAAqB,CAAA;IACrB,+BAAkB,CAAA;IAClB,+BAAkB,CAAA;IAClB,6BAAgB,CAAA;IAChB,kCAAqB,CAAA;IACrB,kCAAqB,CAAA;IACrB,sCAAyB,CAAA;IACzB,gCAAmB,CAAA;IACnB,wCAA2B,CAAA;IAC3B,qCAAwB,CAAA;IACxB,qCAAwB,CAAA;IACxB,wCAA2B,CAAA;IAC3B,uCAA0B,CAAA;IAC1B,yCAA4B,CAAA;IAC5B,wCAA2B,CAAA;AAC7B,CAAC,EA1BI,SAAS,KAAT,SAAS,QA0Bb;AAED,kBAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/build/app/Datatypes/Enums/CourseStatusEnum.js b/build/app/Datatypes/Enums/CourseStatusEnum.js new file mode 100644 index 0000000..cf77fbb --- /dev/null +++ b/build/app/Datatypes/Enums/CourseStatusEnum.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var CourseStatusEnum; +(function (CourseStatusEnum) { + CourseStatusEnum["PUBLISHED"] = "PUBLISHED"; + CourseStatusEnum["DRAFT"] = "DRAFT"; +})(CourseStatusEnum || (CourseStatusEnum = {})); +exports.default = CourseStatusEnum; +//# sourceMappingURL=CourseStatusEnum.js.map \ No newline at end of file diff --git a/build/app/Datatypes/Enums/CourseStatusEnum.js.map b/build/app/Datatypes/Enums/CourseStatusEnum.js.map new file mode 100644 index 0000000..98a5f73 --- /dev/null +++ b/build/app/Datatypes/Enums/CourseStatusEnum.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CourseStatusEnum.js","sourceRoot":"","sources":["../../../../app/Datatypes/Enums/CourseStatusEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,gBAGJ;AAHD,WAAK,gBAAgB;IACnB,2CAAuB,CAAA;IACvB,mCAAe,CAAA;AACjB,CAAC,EAHI,gBAAgB,KAAhB,gBAAgB,QAGpB;AAED,kBAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/build/app/Datatypes/Enums/HttpStatusEnum.js b/build/app/Datatypes/Enums/HttpStatusEnum.js new file mode 100644 index 0000000..f6523fe --- /dev/null +++ b/build/app/Datatypes/Enums/HttpStatusEnum.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var StatusCodeEnum; +(function (StatusCodeEnum) { + StatusCodeEnum[StatusCodeEnum["OK"] = 200] = "OK"; + StatusCodeEnum[StatusCodeEnum["CREATED"] = 201] = "CREATED"; + StatusCodeEnum[StatusCodeEnum["NO_CONTENT"] = 204] = "NO_CONTENT"; + StatusCodeEnum[StatusCodeEnum["BAD_REQUEST"] = 400] = "BAD_REQUEST"; + StatusCodeEnum[StatusCodeEnum["UNAUTHORIZED"] = 401] = "UNAUTHORIZED"; + StatusCodeEnum[StatusCodeEnum["FORBIDDEN"] = 403] = "FORBIDDEN"; + StatusCodeEnum[StatusCodeEnum["NOT_FOUND"] = 404] = "NOT_FOUND"; + StatusCodeEnum[StatusCodeEnum["CONFLICT"] = 409] = "CONFLICT"; + StatusCodeEnum[StatusCodeEnum["INTERNAL_SERVER"] = 500] = "INTERNAL_SERVER"; + StatusCodeEnum[StatusCodeEnum["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE"; +})(StatusCodeEnum || (StatusCodeEnum = {})); +exports.default = StatusCodeEnum; +//# sourceMappingURL=HttpStatusEnum.js.map \ No newline at end of file diff --git a/build/app/Datatypes/Enums/HttpStatusEnum.js.map b/build/app/Datatypes/Enums/HttpStatusEnum.js.map new file mode 100644 index 0000000..8992427 --- /dev/null +++ b/build/app/Datatypes/Enums/HttpStatusEnum.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HttpStatusEnum.js","sourceRoot":"","sources":["../../../../app/Datatypes/Enums/HttpStatusEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,cAWJ;AAXD,WAAK,cAAc;IACjB,iDAAQ,CAAA;IACR,2DAAa,CAAA;IACb,iEAAgB,CAAA;IAChB,mEAAiB,CAAA;IACjB,qEAAkB,CAAA;IAClB,+DAAe,CAAA;IACf,+DAAe,CAAA;IACf,6DAAc,CAAA;IACd,2EAAqB,CAAA;IACrB,mFAAyB,CAAA;AAC3B,CAAC,EAXI,cAAc,KAAd,cAAc,QAWlB;AAED,kBAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/build/app/Datatypes/Enums/RoleEnum.js b/build/app/Datatypes/Enums/RoleEnum.js new file mode 100644 index 0000000..54acd79 --- /dev/null +++ b/build/app/Datatypes/Enums/RoleEnum.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var RoleEnum; +(function (RoleEnum) { + RoleEnum["ADMIN"] = "admin"; + RoleEnum["TEACHER"] = "teacher"; + RoleEnum["STUDENT"] = "student"; +})(RoleEnum || (RoleEnum = {})); +exports.default = RoleEnum; +//# sourceMappingURL=RoleEnum.js.map \ No newline at end of file diff --git a/build/app/Datatypes/Enums/RoleEnum.js.map b/build/app/Datatypes/Enums/RoleEnum.js.map new file mode 100644 index 0000000..fdb225d --- /dev/null +++ b/build/app/Datatypes/Enums/RoleEnum.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RoleEnum.js","sourceRoot":"","sources":["../../../../app/Datatypes/Enums/RoleEnum.ts"],"names":[],"mappings":";;AAAA,IAAK,QAIJ;AAJD,WAAK,QAAQ;IACX,2BAAe,CAAA;IACf,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;AACrB,CAAC,EAJI,QAAQ,KAAR,QAAQ,QAIZ;AAED,kBAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/build/app/Datatypes/Interfaces/IResponse.js b/build/app/Datatypes/Interfaces/IResponse.js new file mode 100644 index 0000000..9624cb8 --- /dev/null +++ b/build/app/Datatypes/Interfaces/IResponse.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IResponse.js.map \ No newline at end of file diff --git a/build/app/Datatypes/Interfaces/IResponse.js.map b/build/app/Datatypes/Interfaces/IResponse.js.map new file mode 100644 index 0000000..6668bb7 --- /dev/null +++ b/build/app/Datatypes/Interfaces/IResponse.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IResponse.js","sourceRoot":"","sources":["../../../../app/Datatypes/Interfaces/IResponse.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/app/Exceptions/Handler.js b/build/app/Exceptions/Handler.js new file mode 100644 index 0000000..d8d4ad9 --- /dev/null +++ b/build/app/Exceptions/Handler.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Logger_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Logger")); +const HttpExceptionHandler_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/HttpExceptionHandler")); +class ExceptionHandler extends HttpExceptionHandler_1.default { + constructor() { + super(Logger_1.default); + } +} +exports.default = ExceptionHandler; +//# sourceMappingURL=Handler.js.map \ No newline at end of file diff --git a/build/app/Exceptions/Handler.js.map b/build/app/Exceptions/Handler.js.map new file mode 100644 index 0000000..2579542 --- /dev/null +++ b/build/app/Exceptions/Handler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../../app/Exceptions/Handler.ts"],"names":[],"mappings":";;;;;AAeA,sFAA6C;AAC7C,kHAAyE;AAEzE,MAAqB,gBAAiB,SAAQ,8BAAoB;IAChE;QACE,KAAK,CAAC,gBAAM,CAAC,CAAC;IAChB,CAAC;CACF;AAJD,mCAIC"} \ No newline at end of file diff --git a/build/app/Helpers/ColorHelper.js b/build/app/Helpers/ColorHelper.js new file mode 100644 index 0000000..3e71588 --- /dev/null +++ b/build/app/Helpers/ColorHelper.js @@ -0,0 +1,40 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Color_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Color")); +const utils = __importStar(global[Symbol.for('ioc.use')]("App/Utils")); +class ColorHelper { + static async generateRandomColor() { + const colors = await Color_1.default.query(); + if (colors.length === 0) + return null; + return colors[utils.generateRandomInt({ min: 0, max: colors.length - 1 })]; + } +} +exports.default = ColorHelper; +//# sourceMappingURL=ColorHelper.js.map \ No newline at end of file diff --git a/build/app/Helpers/ColorHelper.js.map b/build/app/Helpers/ColorHelper.js.map new file mode 100644 index 0000000..4d43a99 --- /dev/null +++ b/build/app/Helpers/ColorHelper.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ColorHelper.js","sourceRoot":"","sources":["../../../app/Helpers/ColorHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAAqC;AACrC,uEAAmC;AAEnC,MAAqB,WAAW;IACvB,MAAM,CAAC,KAAK,CAAC,mBAAmB;QACrC,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,OAAO,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF;AAND,8BAMC"} \ No newline at end of file diff --git a/build/app/Helpers/CookieHelper.js b/build/app/Helpers/CookieHelper.js new file mode 100644 index 0000000..922ff5d --- /dev/null +++ b/build/app/Helpers/CookieHelper.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class CookieHelper { + static parseCookieString(string) { + const values = string + .split(';') + .map(v => v.split('=')) + .reduce((acc, value) => { + const [key, ...rest] = value; + acc[decodeURIComponent(key.trim())] = decodeURIComponent(rest.join('=').trim()); + return acc; + }, {}); + return values; + } +} +exports.default = CookieHelper; +//# sourceMappingURL=CookieHelper.js.map \ No newline at end of file diff --git a/build/app/Helpers/CookieHelper.js.map b/build/app/Helpers/CookieHelper.js.map new file mode 100644 index 0000000..24dcadb --- /dev/null +++ b/build/app/Helpers/CookieHelper.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CookieHelper.js","sourceRoot":"","sources":["../../../app/Helpers/CookieHelper.ts"],"names":[],"mappings":";;AAAA,MAAqB,YAAY;IACxB,MAAM,CAAC,iBAAiB,CAAC,MAAc;QAC5C,MAAM,MAAM,GAAG,MAAM;aAClB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACtB,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACrB,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;YAC7B,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChF,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAET,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAbD,+BAaC"} \ No newline at end of file diff --git a/build/app/Helpers/CourseHelper.js b/build/app/Helpers/CourseHelper.js new file mode 100644 index 0000000..19e02f8 --- /dev/null +++ b/build/app/Helpers/CourseHelper.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class CourseHelper { + static getVideoFileNames(course) { + const data = course.lessons.map(l => { + if (!l.video) + return null; + return { path: 'videos/', name: l.video.name }; + }); + return data; + } + static getMaterialFileNames(course) { + const data = course.lessons.flatMap(l => l.materials.map(m => ({ path: 'materials/', name: m.name }))); + return data; + } + static getImageFileName(course) { + if (!course.image) + return null; + const data = { path: 'images/courses/', name: course.image.name }; + return data; + } +} +exports.default = CourseHelper; +//# sourceMappingURL=CourseHelper.js.map \ No newline at end of file diff --git a/build/app/Helpers/CourseHelper.js.map b/build/app/Helpers/CourseHelper.js.map new file mode 100644 index 0000000..b06d231 --- /dev/null +++ b/build/app/Helpers/CourseHelper.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CourseHelper.js","sourceRoot":"","sources":["../../../app/Helpers/CourseHelper.ts"],"names":[],"mappings":";;AAOA,MAAqB,YAAY;IACxB,MAAM,CAAC,iBAAiB,CAAC,MAAc;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAClC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,MAAc;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvG,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,MAAc;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AApBD,+BAoBC"} \ No newline at end of file diff --git a/build/app/Helpers/OpaqueTokenHelper.js b/build/app/Helpers/OpaqueTokenHelper.js new file mode 100644 index 0000000..3822e00 --- /dev/null +++ b/build/app/Helpers/OpaqueTokenHelper.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const crypto_1 = __importDefault(require("crypto")); +class OpaqueTokenHelper { + static parseToken(token) { + const parts = token.split('.'); + if (parts.length !== 2) { + throw new Error('E_INVALID_API_TOKEN'); + } + const id = Buffer.from(parts[0], 'base64').toString('utf-8'); + if (!id) { + throw new Error('E_INVALID_API_TOKEN'); + } + const hashed = crypto_1.default.createHash('sha256').update(parts[1]).digest('hex'); + return { + hashed, + id, + }; + } +} +exports.default = OpaqueTokenHelper; +//# sourceMappingURL=OpaqueTokenHelper.js.map \ No newline at end of file diff --git a/build/app/Helpers/OpaqueTokenHelper.js.map b/build/app/Helpers/OpaqueTokenHelper.js.map new file mode 100644 index 0000000..c7c75cc --- /dev/null +++ b/build/app/Helpers/OpaqueTokenHelper.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OpaqueTokenHelper.js","sourceRoot":"","sources":["../../../app/Helpers/OpaqueTokenHelper.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,MAAqB,iBAAiB;IAO7B,MAAM,CAAC,UAAU,CAAC,KAAa;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QAED,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,CAAC,EAAE,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QAED,MAAM,MAAM,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE1E,OAAO;YACL,MAAM;YACN,EAAE;SACH,CAAC;IACJ,CAAC;CACF;AA3BD,oCA2BC"} \ No newline at end of file diff --git a/build/app/Helpers/RoleHelper.js b/build/app/Helpers/RoleHelper.js new file mode 100644 index 0000000..c1be1e7 --- /dev/null +++ b/build/app/Helpers/RoleHelper.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class RoleHelper { + static userHasRoles(userRoles, roles) { + for (let i = 0; i < roles.length; i += 1) { + if (!userRoles.map(r => r.slug).includes(roles[i])) { + return false; + } + } + return true; + } + static userContainRoles(userRoles, roles) { + return userRoles.map(r => r.slug).some(r => roles.includes(r)); + } +} +exports.default = RoleHelper; +//# sourceMappingURL=RoleHelper.js.map \ No newline at end of file diff --git a/build/app/Helpers/RoleHelper.js.map b/build/app/Helpers/RoleHelper.js.map new file mode 100644 index 0000000..d1031f2 --- /dev/null +++ b/build/app/Helpers/RoleHelper.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RoleHelper.js","sourceRoot":"","sources":["../../../app/Helpers/RoleHelper.ts"],"names":[],"mappings":";;AAGA,MAAqB,UAAU;IAStB,MAAM,CAAC,YAAY,CAAC,SAAiB,EAAE,KAAiB;QAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBAIlD,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,SAAiB,EAAE,KAAiB;QACjE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF;AAxBD,6BAwBC"} \ No newline at end of file diff --git a/build/app/Middleware/Auth.js b/build/app/Middleware/Auth.js new file mode 100644 index 0000000..67deb9a --- /dev/null +++ b/build/app/Middleware/Auth.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/auth/build/standalone"); +class AuthMiddleware { + constructor() { + Object.defineProperty(this, "redirectTo", { + enumerable: true, + configurable: true, + writable: true, + value: '/login' + }); + } + async authenticate(auth, guards) { + let guardLastAttempted; + const authResults = await Promise.all(guards.map(guard => auth.use(guard).check())); + for (let i = 0; i < authResults.length; i += 1) { + if (authResults[i]) + return; + } + throw new standalone_1.AuthenticationException('Unauthorized access', 'E_UNAUTHORIZED_ACCESS', guardLastAttempted, this.redirectTo); + } + async handle(ctx, next, customGuards) { + const token = ctx.request.cookie('token'); + if (token) { + ctx.request.headers().authorization = `Bearer ${token}`; + } + const guards = customGuards.length ? customGuards : [ctx.auth.name]; + await this.authenticate(ctx.auth, guards); + await next(); + } +} +exports.default = AuthMiddleware; +//# sourceMappingURL=Auth.js.map \ No newline at end of file diff --git a/build/app/Middleware/Auth.js.map b/build/app/Middleware/Auth.js.map new file mode 100644 index 0000000..88efd7f --- /dev/null +++ b/build/app/Middleware/Auth.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../../app/Middleware/Auth.ts"],"names":[],"mappings":";;AAEA,gEAA0E;AAS1E,MAAqB,cAAc;IAAnC;QAIE;;;;mBAAuB,QAAQ;WAAC;IAuDlC,CAAC;IA7CW,KAAK,CAAC,YAAY,CAAC,IAAiC,EAAE,MAA4B;QAO1F,IAAI,kBAAsC,CAAC;QAC3C,MAAM,WAAW,GAAc,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE/F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAI9C,IAAI,WAAW,CAAC,CAAC,CAAC;gBAAE,OAAO;SAC5B;QAKD,MAAM,IAAI,oCAAuB,CAC/B,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAwB,EAAE,IAAyB,EAAE,YAAkC;QAIzG,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;SACzD;QAMD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;CACF;AA3DD,iCA2DC"} \ No newline at end of file diff --git a/build/app/Middleware/Role.js b/build/app/Middleware/Role.js new file mode 100644 index 0000000..e0a49ff --- /dev/null +++ b/build/app/Middleware/Role.js @@ -0,0 +1,38 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const User_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/User")); +class Role { + constructor() { + Object.defineProperty(this, "error", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.error = { + message: 'You dont have permission to perform that action.', + status: 403, + code: 'E_ACCESS_DENIED', + }; + } + check(roles, userRoles) { + if (!roles.some(role => userRoles.includes(role))) { + throw new standalone_1.Exception(this.error.message, this.error.status, this.error.code); + } + } + async handle({ auth }, next, roles) { + const { userId } = auth.use('api').token?.meta; + const user = await User_1.default.query().where('id', userId).preload('roles').first(); + if (!user) { + throw new standalone_1.Exception('Cannot identify current user.', this.error.status, this.error.code); + } + this.check(roles, user.roles.map(role => role.slug)); + await next(); + } +} +exports.default = Role; +//# sourceMappingURL=Role.js.map \ No newline at end of file diff --git a/build/app/Middleware/Role.js.map b/build/app/Middleware/Role.js.map new file mode 100644 index 0000000..4af1b48 --- /dev/null +++ b/build/app/Middleware/Role.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../app/Middleware/Role.ts"],"names":[],"mappings":";;;;;AAAA,gEAA4D;AAE5D,iFAAmC;AAEnC,MAAqB,IAAI;IAOvB;QANA;;;;;WAIE;QAGA,IAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,kDAAkD;YAC3D,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,iBAAiB;SACxB,CAAC;IACJ,CAAC;IASS,KAAK,CAAC,KAAe,EAAE,SAAmB;QAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;YAIjD,MAAM,IAAI,sBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC7E;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAuB,EAAE,IAAyB,EAAE,KAAe;QAC3F,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,cAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAE7E,IAAI,CAAC,IAAI,EAAE;YAIT,MAAM,IAAI,sBAAS,CAAC,+BAA+B,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1F;QAED,IAAI,CAAC,KAAK,CACR,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAClC,CAAC;QACF,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;CACF;AAhDD,uBAgDC"} \ No newline at end of file diff --git a/build/app/Middleware/Ws/Auth.js b/build/app/Middleware/Ws/Auth.js new file mode 100644 index 0000000..6a504d7 --- /dev/null +++ b/build/app/Middleware/Ws/Auth.js @@ -0,0 +1,45 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const nanoid_1 = require("nanoid"); +const Redis_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Addons/Redis")); +const CookieHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/CookieHelper")); +const OpaqueTokenHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/OpaqueTokenHelper")); +const WsService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/WsService")); +class AuthMiddleware { + static async authenticate(socket, next) { + const cookie = socket.handshake.headers?.cookie; + if (!cookie) { + return next(new Error('SocketErrors.MissingParameter')); + } + const token = CookieHelper_1.default.parseCookieString(cookie)?.token; + if (!token) { + return next(new Error('SocketErrors.MissingParameter')); + } + const tokenData = JSON.parse(Buffer.from(token.split('.')[0].split(':')[1], 'base64').toString('utf-8')); + const parsed = OpaqueTokenHelper_1.default.parseToken(tokenData.message); + const data = await Redis_1.default.get(`api:${parsed.id}`); + if (!data) { + return next(new Error('SocketErrors.BadCredentials')); + } + const sessionId = socket.handshake.auth.sessionId; + if (sessionId) { + const session = await WsService_1.default.sessionStore.findSession(sessionId); + if (session) { + socket.data.sessionId = sessionId; + socket.data.userId = session.userId; + socket.data.userName = session.userName; + return next(); + } + } + const parsedData = JSON.parse(data); + socket.data.sessionId = (0, nanoid_1.nanoid)(); + socket.data.userId = parsedData.user_id; + socket.data.userName = parsedData.userName; + return next(); + } +} +exports.default = AuthMiddleware; +//# sourceMappingURL=Auth.js.map \ No newline at end of file diff --git a/build/app/Middleware/Ws/Auth.js.map b/build/app/Middleware/Ws/Auth.js.map new file mode 100644 index 0000000..7b36e88 --- /dev/null +++ b/build/app/Middleware/Ws/Auth.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../../../app/Middleware/Ws/Auth.ts"],"names":[],"mappings":";;;;;AACA,mCAAgC;AAChC,sFAA6C;AAC7C,kGAAoD;AACpD,4GAA8D;AAC9D,6FAAuH;AAIvH,MAAqB,cAAc;IAS1B,MAAM,CAAC,KAAK,CAAC,YAAY,CAC9B,MAAyF,EACzF,IAA+C;QAK/C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;SACzD;QAED,MAAM,KAAK,GAAG,sBAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;QAE5D,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;SACzD;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,2BAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;SACvD;QAKD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAA+B,CAAC;QAExE,IAAI,SAAS,EAAE;YACb,MAAM,OAAO,GAAG,MAAM,mBAAE,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7D,IAAI,OAAO,EAAE;gBACX,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAExC,OAAO,IAAI,EAAE,CAAC;aACf;SACF;QAKD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAKpC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAA,eAAM,GAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,OAAiB,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAkB,CAAC;QAErD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;CACF;AAnED,iCAmEC"} \ No newline at end of file diff --git a/build/app/Models/Category.js b/build/app/Models/Category.js new file mode 100644 index 0000000..048c28a --- /dev/null +++ b/build/app/Models/Category.js @@ -0,0 +1,119 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const luxon_1 = require("luxon"); +const nanoid_1 = require("nanoid"); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const ColorHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/ColorHelper")); +const Color_1 = __importDefault(require("./Color")); +class Category extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "title", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "description", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "color_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "color", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + static assignCategoryId(category) { + category.id = (0, nanoid_1.nanoid)(); + } + static async assignRandomColor(category) { + const color = await ColorHelper_1.default.generateRandomColor(); + if (color) { + category.color_id = color.id; + } + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", String) +], Category.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Category.prototype, "title", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Object) +], Category.prototype, "description", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", Object) +], Category.prototype, "color_id", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => Color_1.default, { + foreignKey: 'color_id', + }), + __metadata("design:type", Object) +], Category.prototype, "color", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true }), + __metadata("design:type", luxon_1.DateTime) +], Category.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true }), + __metadata("design:type", luxon_1.DateTime) +], Category.prototype, "updatedAt", void 0); +__decorate([ + (0, Orm_1.beforeCreate)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Category]), + __metadata("design:returntype", void 0) +], Category, "assignCategoryId", null); +__decorate([ + (0, Orm_1.beforeCreate)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Category]), + __metadata("design:returntype", Promise) +], Category, "assignRandomColor", null); +exports.default = Category; +//# sourceMappingURL=Category.js.map \ No newline at end of file diff --git a/build/app/Models/Category.js.map b/build/app/Models/Category.js.map new file mode 100644 index 0000000..08df7e1 --- /dev/null +++ b/build/app/Models/Category.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Category.js","sourceRoot":"","sources":["../../../app/Models/Category.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,iCAAiC;AACjC,mCAAgC;AAChC,gEAA8F;AAC9F,gGAAkD;AAClD,oDAA4B;AAE5B,MAAqB,QAAS,SAAQ,eAAS;IAA/C;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAqB;QAGrB;;;;;WAAkC;QAGlC;;;;;WAA+B;QAK/B;;;;;WAAsC;QAGtC;;;;;WAA2B;QAG3B;;;;;WAA2B;IAmB7B,CAAC;IAZQ,MAAM,CAAC,gBAAgB,CAAC,QAAkB;QAC/C,QAAQ,CAAC,EAAE,GAAG,IAAA,eAAM,GAAE,CAAC;IACzB,CAAC;IAGM,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAkB;QACtD,MAAM,KAAK,GAAG,MAAM,qBAAW,CAAC,mBAAmB,EAAE,CAAC;QAEtD,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;SAC9B;IACH,CAAC;CACF;AAvCC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;oCACV;AAGlB;IADC,IAAA,YAAM,GAAE;;uCACY;AAGrB;IADC,IAAA,YAAM,GAAE;;6CACyB;AAGlC;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;0CACC;AAK/B;IAHC,IAAA,eAAS,EAAC,GAAG,EAAE,CAAC,eAAK,EAAE;QACtB,UAAU,EAAE,UAAU;KACvB,CAAC;;uCACoC;AAGtC;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACpB,gBAAQ;2CAAC;AAG3B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACtC,gBAAQ;2CAAC;AAO3B;IADC,IAAA,kBAAY,GAAE;;qCAC0B,QAAQ;;sCAEhD;AAGD;IADC,IAAA,kBAAY,GAAE;;qCACiC,QAAQ;;uCAMvD;AAxCH,2BAyCC"} \ No newline at end of file diff --git a/build/app/Models/Color.js b/build/app/Models/Color.js new file mode 100644 index 0000000..69f0076 --- /dev/null +++ b/build/app/Models/Color.js @@ -0,0 +1,53 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const ColorEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/ColorEnum")); +class Color extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "name", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "hex", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", Number) +], Color.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Color.prototype, "name", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Color.prototype, "hex", void 0); +exports.default = Color; +//# sourceMappingURL=Color.js.map \ No newline at end of file diff --git a/build/app/Models/Color.js.map b/build/app/Models/Color.js.map new file mode 100644 index 0000000..dd35ddf --- /dev/null +++ b/build/app/Models/Color.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Color.js","sourceRoot":"","sources":["../../../app/Models/Color.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gEAA0D;AAC1D,oGAAsD;AAEtD,MAAqB,KAAM,SAAQ,eAAS;IAA5C;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAoB;QAGpB;;;;;WAAsB;IACxB,CAAC;CAAA;AAPC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;iCACV;AAGlB;IADC,IAAA,YAAM,GAAE;;mCACW;AAGpB;IADC,IAAA,YAAM,GAAE;;kCACa;AARxB,wBASC"} \ No newline at end of file diff --git a/build/app/Models/Contact.js b/build/app/Models/Contact.js new file mode 100644 index 0000000..3a75091 --- /dev/null +++ b/build/app/Models/Contact.js @@ -0,0 +1,116 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const luxon_1 = require("luxon"); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const User_1 = __importDefault(require("./User")); +class Contact extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "user_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "phone_number", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "vk_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "twitter_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "telegram_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "user", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", Number) +], Contact.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", String) +], Contact.prototype, "user_id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Object) +], Contact.prototype, "phone_number", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Object) +], Contact.prototype, "vk_id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Object) +], Contact.prototype, "twitter_id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Object) +], Contact.prototype, "telegram_id", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => User_1.default, { + foreignKey: 'user_id', + }), + __metadata("design:type", Object) +], Contact.prototype, "user", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, serializeAs: null }), + __metadata("design:type", luxon_1.DateTime) +], Contact.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true, serializeAs: null }), + __metadata("design:type", luxon_1.DateTime) +], Contact.prototype, "updatedAt", void 0); +exports.default = Contact; +//# sourceMappingURL=Contact.js.map \ No newline at end of file diff --git a/build/app/Models/Contact.js.map b/build/app/Models/Contact.js.map new file mode 100644 index 0000000..227c279 --- /dev/null +++ b/build/app/Models/Contact.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Contact.js","sourceRoot":"","sources":["../../../app/Models/Contact.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,gEAAgF;AAChF,kDAA0B;AAE1B,MAAqB,OAAQ,SAAQ,eAAS;IAA9C;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAuB;QAGvB;;;;;WAAmC;QAGnC;;;;;WAA4B;QAG5B;;;;;WAAiC;QAGjC;;;;;WAAkC;QAKlC;;;;;WAAoC;QAGpC;;;;;WAA2B;QAG3B;;;;;WAA2B;IAC7B,CAAC;CAAA;AA3BC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;mCACV;AAGlB;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;wCACP;AAGvB;IADC,IAAA,YAAM,GAAE;;6CAC0B;AAGnC;IADC,IAAA,YAAM,GAAE;;sCACmB;AAG5B;IADC,IAAA,YAAM,GAAE;;2CACwB;AAGjC;IADC,IAAA,YAAM,GAAE;;4CACyB;AAKlC;IAHC,IAAA,eAAS,EAAC,GAAG,EAAE,CAAC,cAAI,EAAE;QACrB,UAAU,EAAE,SAAS;KACtB,CAAC;;qCACkC;AAGpC;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8BACvC,gBAAQ;0CAAC;AAG3B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8BACzD,gBAAQ;0CAAC;AA5B7B,0BA6BC"} \ No newline at end of file diff --git a/build/app/Models/Course.js b/build/app/Models/Course.js new file mode 100644 index 0000000..e6f20da --- /dev/null +++ b/build/app/Models/Course.js @@ -0,0 +1,246 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const nanoid_1 = require("nanoid"); +const luxon_1 = require("luxon"); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const AttachmentLite_1 = global[Symbol.for('ioc.use')]("Adonis/Addons/AttachmentLite"); +const ColorHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/ColorHelper")); +const Category_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Category")); +const Lesson_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Lesson")); +const User_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/User")); +const CourseStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/CourseStatusEnum")); +const Color_1 = __importDefault(require("./Color")); +class Course extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "image", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "title", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "description", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "education_description", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "teacher_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "category_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "color_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "color", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "status", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "category", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "teacher", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lessons", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "students", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "likes", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + static assignCourseId(course) { + course.id = (0, nanoid_1.nanoid)(); + } + static async assignRandomColor(course) { + const color = await ColorHelper_1.default.generateRandomColor(); + if (color) { + course.color_id = color.id; + } + } + serializeExtras() { + return { + students_count: this.$extras.students_count, + likes_count: this.$extras.likes_count, + lessons_count: this.$extras.lessons_count, + }; + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", String) +], Course.prototype, "id", void 0); +__decorate([ + (0, AttachmentLite_1.attachment)({ folder: 'images/courses', preComputeUrl: true }), + __metadata("design:type", Object) +], Course.prototype, "image", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Course.prototype, "title", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Course.prototype, "description", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Object) +], Course.prototype, "education_description", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", String) +], Course.prototype, "teacher_id", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", String) +], Course.prototype, "category_id", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", Object) +], Course.prototype, "color_id", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => Color_1.default, { + foreignKey: 'color_id', + }), + __metadata("design:type", Object) +], Course.prototype, "color", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Course.prototype, "status", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => Category_1.default, { + foreignKey: 'category_id', + }), + __metadata("design:type", Object) +], Course.prototype, "category", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => User_1.default, { + foreignKey: 'teacher_id', + }), + __metadata("design:type", Object) +], Course.prototype, "teacher", void 0); +__decorate([ + (0, Orm_1.hasMany)(() => Lesson_1.default, { + foreignKey: 'course_id', + }), + __metadata("design:type", Object) +], Course.prototype, "lessons", void 0); +__decorate([ + (0, Orm_1.manyToMany)(() => User_1.default, { + pivotTable: 'users_courses', + }), + __metadata("design:type", Object) +], Course.prototype, "students", void 0); +__decorate([ + (0, Orm_1.manyToMany)(() => User_1.default, { + pivotTable: 'courses_likes', + pivotTimestamps: { + createdAt: 'liked_on', + updatedAt: false, + }, + pivotColumns: ['liked_on'], + }), + __metadata("design:type", Object) +], Course.prototype, "likes", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true }), + __metadata("design:type", luxon_1.DateTime) +], Course.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true }), + __metadata("design:type", luxon_1.DateTime) +], Course.prototype, "updatedAt", void 0); +__decorate([ + (0, Orm_1.beforeCreate)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Course]), + __metadata("design:returntype", void 0) +], Course, "assignCourseId", null); +__decorate([ + (0, Orm_1.beforeCreate)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Course]), + __metadata("design:returntype", Promise) +], Course, "assignRandomColor", null); +exports.default = Course; +//# sourceMappingURL=Course.js.map \ No newline at end of file diff --git a/build/app/Models/Course.js.map b/build/app/Models/Course.js.map new file mode 100644 index 0000000..2c715ea --- /dev/null +++ b/build/app/Models/Course.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Course.js","sourceRoot":"","sources":["../../../app/Models/Course.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Models/Image.js b/build/app/Models/Image.js new file mode 100644 index 0000000..9dc8e91 --- /dev/null +++ b/build/app/Models/Image.js @@ -0,0 +1,80 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const luxon_1 = require("luxon"); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +class Image extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "path", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "name", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "ext", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", Number) +], Image.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Image.prototype, "path", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Image.prototype, "name", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Image.prototype, "ext", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true }), + __metadata("design:type", luxon_1.DateTime) +], Image.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true }), + __metadata("design:type", luxon_1.DateTime) +], Image.prototype, "updatedAt", void 0); +exports.default = Image; +//# sourceMappingURL=Image.js.map \ No newline at end of file diff --git a/build/app/Models/Image.js.map b/build/app/Models/Image.js.map new file mode 100644 index 0000000..421762b --- /dev/null +++ b/build/app/Models/Image.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../app/Models/Image.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAAiC;AACjC,gEAA0D;AAE1D,MAAqB,KAAM,SAAQ,eAAS;IAA5C;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAoB;QAGpB;;;;;WAAoB;QAGpB;;;;;WAAmB;QAGnB;;;;;WAA2B;QAG3B;;;;;WAA2B;IAC7B,CAAC;CAAA;AAhBC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;iCACV;AAGlB;IADC,IAAA,YAAM,GAAE;;mCACW;AAGpB;IADC,IAAA,YAAM,GAAE;;mCACW;AAGpB;IADC,IAAA,YAAM,GAAE;;kCACU;AAGnB;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACpB,gBAAQ;wCAAC;AAG3B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACtC,gBAAQ;wCAAC;AAjB7B,wBAkBC"} \ No newline at end of file diff --git a/build/app/Models/Lesson.js b/build/app/Models/Lesson.js new file mode 100644 index 0000000..9b1af76 --- /dev/null +++ b/build/app/Models/Lesson.js @@ -0,0 +1,227 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const luxon_1 = require("luxon"); +const nanoid_1 = require("nanoid"); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const ColorHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/ColorHelper")); +const Course_1 = __importDefault(require("./Course")); +const LessonMaterial_1 = __importDefault(require("./LessonMaterial")); +const LessonContent_1 = __importDefault(require("./LessonContent")); +const LessonProgress_1 = __importDefault(require("./LessonProgress")); +const LessonVideo_1 = __importDefault(require("./LessonVideo")); +const Color_1 = __importDefault(require("./Color")); +class Lesson extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "course_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "title", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "display_order", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "description", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "linked_video_url", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "duration", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "course", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "color_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "color", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "content", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "video", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "materials", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "progress", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + static assignLessonId(lesson) { + lesson.id = (0, nanoid_1.nanoid)(); + } + static async assignRandomColor(course) { + const color = await ColorHelper_1.default.generateRandomColor(); + if (color) { + course.color_id = color.id; + } + } + serializeExtras() { + return { + materials_count: this.$extras.materials_count, + }; + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", String) +], Lesson.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Lesson.prototype, "course_id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Lesson.prototype, "title", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", Number) +], Lesson.prototype, "display_order", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Lesson.prototype, "description", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Object) +], Lesson.prototype, "linked_video_url", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Lesson.prototype, "duration", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => Course_1.default, { + foreignKey: 'course_id', + }), + __metadata("design:type", Object) +], Lesson.prototype, "course", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", Object) +], Lesson.prototype, "color_id", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => Color_1.default, { + foreignKey: 'color_id', + }), + __metadata("design:type", Object) +], Lesson.prototype, "color", void 0); +__decorate([ + (0, Orm_1.hasOne)(() => LessonContent_1.default, { + foreignKey: 'lesson_id', + }), + __metadata("design:type", Object) +], Lesson.prototype, "content", void 0); +__decorate([ + (0, Orm_1.hasOne)(() => LessonVideo_1.default, { + foreignKey: 'lesson_id', + }), + __metadata("design:type", Object) +], Lesson.prototype, "video", void 0); +__decorate([ + (0, Orm_1.hasMany)(() => LessonMaterial_1.default, { foreignKey: 'lesson_id' }), + __metadata("design:type", Object) +], Lesson.prototype, "materials", void 0); +__decorate([ + (0, Orm_1.hasOne)(() => LessonProgress_1.default, { + foreignKey: 'lesson_id', + }), + __metadata("design:type", Object) +], Lesson.prototype, "progress", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true }), + __metadata("design:type", luxon_1.DateTime) +], Lesson.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true }), + __metadata("design:type", luxon_1.DateTime) +], Lesson.prototype, "updatedAt", void 0); +__decorate([ + (0, Orm_1.beforeCreate)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Lesson]), + __metadata("design:returntype", void 0) +], Lesson, "assignLessonId", null); +__decorate([ + (0, Orm_1.beforeCreate)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Course_1.default]), + __metadata("design:returntype", Promise) +], Lesson, "assignRandomColor", null); +exports.default = Lesson; +//# sourceMappingURL=Lesson.js.map \ No newline at end of file diff --git a/build/app/Models/Lesson.js.map b/build/app/Models/Lesson.js.map new file mode 100644 index 0000000..14ee002 --- /dev/null +++ b/build/app/Models/Lesson.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Lesson.js","sourceRoot":"","sources":["../../../app/Models/Lesson.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,iCAAiC;AACjC,mCAAgC;AAChC,gEAU+B;AAC/B,gGAAkD;AAClD,sDAA8B;AAC9B,sEAA8C;AAC9C,oEAA4C;AAC5C,sEAA8C;AAC9C,gEAAwC;AACxC,oDAA4B;AAE5B,MAAqB,MAAO,SAAQ,eAAS;IAA7C;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAyB;QAGzB;;;;;WAAqB;QAGrB;;;;;WAA6B;QAG7B;;;;;WAA2B;QAG3B;;;;;WAAuC;QAGvC;;;;;WAAwB;QAKxB;;;;;WAAwC;QAGxC;;;;;WAA+B;QAK/B;;;;;WAAsC;QAKtC;;;;;WAA6C;QAK7C;;;;;WAAyC;QAGzC;;;;;WAAiD;QAKjD;;;;;WAA+C;QAG/C;;;;;WAA2B;QAG3B;;;;;WAA2B;IA4B7B,CAAC;IArBQ,MAAM,CAAC,cAAc,CAAC,MAAc;QACzC,MAAM,CAAC,EAAE,GAAG,IAAA,eAAM,GAAE,CAAC;IACvB,CAAC;IAGM,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAc;QAClD,MAAM,KAAK,GAAG,MAAM,qBAAW,CAAC,mBAAmB,EAAE,CAAC;QAEtD,IAAI,KAAK,EAAE;YACT,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;SAC5B;IACH,CAAC;IAKM,eAAe;QACpB,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;SAC9C,CAAC;IACJ,CAAC;CACF;AAnFC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;kCACV;AAGlB;IADC,IAAA,YAAM,GAAE;;yCACgB;AAGzB;IADC,IAAA,YAAM,GAAE;;qCACY;AAGrB;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;6CACD;AAG7B;IADC,IAAA,YAAM,GAAE;;2CACkB;AAG3B;IADC,IAAA,YAAM,GAAE;;gDAC8B;AAGvC;IADC,IAAA,YAAM,GAAE;;wCACe;AAKxB;IAHC,IAAA,eAAS,EAAC,GAAG,EAAE,CAAC,gBAAM,EAAE;QACvB,UAAU,EAAE,WAAW;KACxB,CAAC;;sCACsC;AAGxC;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;wCACC;AAK/B;IAHC,IAAA,eAAS,EAAC,GAAG,EAAE,CAAC,eAAK,EAAE;QACtB,UAAU,EAAE,UAAU;KACvB,CAAC;;qCACoC;AAKtC;IAHC,IAAA,YAAM,EAAC,GAAG,EAAE,CAAC,uBAAa,EAAE;QAC3B,UAAU,EAAE,WAAW;KACxB,CAAC;;uCAC2C;AAK7C;IAHC,IAAA,YAAM,EAAC,GAAG,EAAE,CAAC,qBAAW,EAAE;QACzB,UAAU,EAAE,WAAW;KACxB,CAAC;;qCACuC;AAGzC;IADC,IAAA,aAAO,EAAC,GAAG,EAAE,CAAC,wBAAc,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;;yCACV;AAKjD;IAHC,IAAA,YAAM,EAAC,GAAG,EAAE,CAAC,wBAAc,EAAE;QAC5B,UAAU,EAAE,WAAW;KACxB,CAAC;;wCAC6C;AAG/C;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACpB,gBAAQ;yCAAC;AAG3B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACtC,gBAAQ;yCAAC;AAO3B;IADC,IAAA,kBAAY,GAAE;;qCACsB,MAAM;;kCAE1C;AAGD;IADC,IAAA,kBAAY,GAAE;;qCAC+B,gBAAM;;qCAMnD;AA3EH,yBAqFC"} \ No newline at end of file diff --git a/build/app/Models/LessonContent.js b/build/app/Models/LessonContent.js new file mode 100644 index 0000000..8cbab8a --- /dev/null +++ b/build/app/Models/LessonContent.js @@ -0,0 +1,84 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const luxon_1 = require("luxon"); +const Lesson_1 = __importDefault(require("./Lesson")); +class LessonContent extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lesson_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "body", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lesson", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", Number) +], LessonContent.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonContent.prototype, "lesson_id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonContent.prototype, "body", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => Lesson_1.default, { foreignKey: 'lesson_id' }), + __metadata("design:type", Object) +], LessonContent.prototype, "lesson", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, serializeAs: null }), + __metadata("design:type", luxon_1.DateTime) +], LessonContent.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true, serializeAs: null }), + __metadata("design:type", luxon_1.DateTime) +], LessonContent.prototype, "updatedAt", void 0); +exports.default = LessonContent; +//# sourceMappingURL=LessonContent.js.map \ No newline at end of file diff --git a/build/app/Models/LessonContent.js.map b/build/app/Models/LessonContent.js.map new file mode 100644 index 0000000..10ffd6d --- /dev/null +++ b/build/app/Models/LessonContent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LessonContent.js","sourceRoot":"","sources":["../../../app/Models/LessonContent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,gEAAgF;AAChF,iCAAiC;AACjC,sDAA8B;AAE9B,MAAqB,aAAc,SAAQ,eAAS;IAApD;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAyB;QAGzB;;;;;WAAoB;QAGpB;;;;;WAAwC;QAGxC;;;;;WAA2B;QAG3B;;;;;WAA2B;IAC7B,CAAC;CAAA;AAhBC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;yCACV;AAGlB;IADC,IAAA,YAAM,GAAE;;gDACgB;AAGzB;IADC,IAAA,YAAM,GAAE;;2CACW;AAGpB;IADC,IAAA,eAAS,EAAC,GAAG,EAAE,CAAC,gBAAM,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;;6CACb;AAGxC;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8BACvC,gBAAQ;gDAAC;AAG3B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8BACzD,gBAAQ;gDAAC;AAjB7B,gCAkBC"} \ No newline at end of file diff --git a/build/app/Models/LessonMaterial.js b/build/app/Models/LessonMaterial.js new file mode 100644 index 0000000..d59c6f2 --- /dev/null +++ b/build/app/Models/LessonMaterial.js @@ -0,0 +1,116 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const luxon_1 = require("luxon"); +const Lesson_1 = __importDefault(require("./Lesson")); +class LessonMaterial extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "name", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "size", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "clientName", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "ext", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lesson_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lesson", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", Number) +], LessonMaterial.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonMaterial.prototype, "name", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Number) +], LessonMaterial.prototype, "size", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonMaterial.prototype, "clientName", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonMaterial.prototype, "ext", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonMaterial.prototype, "lesson_id", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => Lesson_1.default, { + foreignKey: 'lesson_id', + }), + __metadata("design:type", Object) +], LessonMaterial.prototype, "lesson", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true }), + __metadata("design:type", luxon_1.DateTime) +], LessonMaterial.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true }), + __metadata("design:type", luxon_1.DateTime) +], LessonMaterial.prototype, "updatedAt", void 0); +exports.default = LessonMaterial; +//# sourceMappingURL=LessonMaterial.js.map \ No newline at end of file diff --git a/build/app/Models/LessonMaterial.js.map b/build/app/Models/LessonMaterial.js.map new file mode 100644 index 0000000..f8bd024 --- /dev/null +++ b/build/app/Models/LessonMaterial.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LessonMaterial.js","sourceRoot":"","sources":["../../../app/Models/LessonMaterial.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,gEAAgF;AAChF,iCAAiC;AACjC,sDAA8B;AAE9B,MAAqB,cAAe,SAAQ,eAAS;IAArD;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAoB;QAGpB;;;;;WAAoB;QAGpB;;;;;WAA0B;QAG1B;;;;;WAAmB;QAGnB;;;;;WAAyB;QAKzB;;;;;WAAwC;QAGxC;;;;;WAA2B;QAG3B;;;;;WAA2B;IAC7B,CAAC;CAAA;AA3BC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;0CACV;AAGlB;IADC,IAAA,YAAM,GAAE;;4CACW;AAGpB;IADC,IAAA,YAAM,GAAE;;4CACW;AAGpB;IADC,IAAA,YAAM,GAAE;;kDACiB;AAG1B;IADC,IAAA,YAAM,GAAE;;2CACU;AAGnB;IADC,IAAA,YAAM,GAAE;;iDACgB;AAKzB;IAHC,IAAA,eAAS,EAAC,GAAG,EAAE,CAAC,gBAAM,EAAE;QACvB,UAAU,EAAE,WAAW;KACxB,CAAC;;8CACsC;AAGxC;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACpB,gBAAQ;iDAAC;AAG3B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACtC,gBAAQ;iDAAC;AA5B7B,iCA6BC"} \ No newline at end of file diff --git a/build/app/Models/LessonProgress.js b/build/app/Models/LessonProgress.js new file mode 100644 index 0000000..3a881b3 --- /dev/null +++ b/build/app/Models/LessonProgress.js @@ -0,0 +1,88 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const Lesson_1 = __importDefault(require("./Lesson")); +const User_1 = __importDefault(require("./User")); +class LessonProgress extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lesson_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "user_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "is_watched", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lesson", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "user", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true, serializeAs: null }), + __metadata("design:type", Number) +], LessonProgress.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", String) +], LessonProgress.prototype, "lesson_id", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", String) +], LessonProgress.prototype, "user_id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Boolean) +], LessonProgress.prototype, "is_watched", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => Lesson_1.default, { + foreignKey: 'lesson_id', + }), + __metadata("design:type", Object) +], LessonProgress.prototype, "lesson", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => User_1.default, { + foreignKey: 'user_id', + }), + __metadata("design:type", Object) +], LessonProgress.prototype, "user", void 0); +exports.default = LessonProgress; +//# sourceMappingURL=LessonProgress.js.map \ No newline at end of file diff --git a/build/app/Models/LessonProgress.js.map b/build/app/Models/LessonProgress.js.map new file mode 100644 index 0000000..9b918fb --- /dev/null +++ b/build/app/Models/LessonProgress.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LessonProgress.js","sourceRoot":"","sources":["../../../app/Models/LessonProgress.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,gEAAgF;AAChF,sDAA8B;AAC9B,kDAA0B;AAE1B,MAAqB,cAAe,SAAQ,eAAS;IAArD;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAyB;QAGzB;;;;;WAAuB;QAGvB;;;;;WAA2B;QAK3B;;;;;WAAwC;QAKxC;;;;;WAAoC;IACtC,CAAC;CAAA;AApBC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;0CAC7B;AAGlB;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;iDACL;AAGzB;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;+CACP;AAGvB;IADC,IAAA,YAAM,GAAE;;kDACkB;AAK3B;IAHC,IAAA,eAAS,EAAC,GAAG,EAAE,CAAC,gBAAM,EAAE;QACvB,UAAU,EAAE,WAAW;KACxB,CAAC;;8CACsC;AAKxC;IAHC,IAAA,eAAS,EAAC,GAAG,EAAE,CAAC,cAAI,EAAE;QACrB,UAAU,EAAE,SAAS;KACtB,CAAC;;4CACkC;AArBtC,iCAsBC"} \ No newline at end of file diff --git a/build/app/Models/LessonVideo.js b/build/app/Models/LessonVideo.js new file mode 100644 index 0000000..6cd50e2 --- /dev/null +++ b/build/app/Models/LessonVideo.js @@ -0,0 +1,126 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const luxon_1 = require("luxon"); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const Lesson_1 = __importDefault(require("./Lesson")); +class LessonVideo extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lesson_id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "name", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "size", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "clientName", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "ext", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "url", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lesson", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", Number) +], LessonVideo.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", String) +], LessonVideo.prototype, "lesson_id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonVideo.prototype, "name", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Number) +], LessonVideo.prototype, "size", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonVideo.prototype, "clientName", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonVideo.prototype, "ext", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], LessonVideo.prototype, "url", void 0); +__decorate([ + (0, Orm_1.belongsTo)(() => Lesson_1.default, { + foreignKey: 'lesson_id', + }), + __metadata("design:type", Object) +], LessonVideo.prototype, "lesson", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true }), + __metadata("design:type", luxon_1.DateTime) +], LessonVideo.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true }), + __metadata("design:type", luxon_1.DateTime) +], LessonVideo.prototype, "updatedAt", void 0); +exports.default = LessonVideo; +//# sourceMappingURL=LessonVideo.js.map \ No newline at end of file diff --git a/build/app/Models/LessonVideo.js.map b/build/app/Models/LessonVideo.js.map new file mode 100644 index 0000000..2c999f0 --- /dev/null +++ b/build/app/Models/LessonVideo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LessonVideo.js","sourceRoot":"","sources":["../../../app/Models/LessonVideo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,iCAAiC;AACjC,gEAAgF;AAChF,sDAA8B;AAE9B,MAAqB,WAAY,SAAQ,eAAS;IAAlD;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAyB;QAGzB;;;;;WAAoB;QAGpB;;;;;WAAoB;QAGpB;;;;;WAA0B;QAG1B;;;;;WAAmB;QAGnB;;;;;WAAmB;QAKnB;;;;;WAAwC;QAGxC;;;;;WAA2B;QAG3B;;;;;WAA2B;IAC7B,CAAC;CAAA;AA9BC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;uCACV;AAGlB;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;8CACL;AAGzB;IADC,IAAA,YAAM,GAAE;;yCACW;AAGpB;IADC,IAAA,YAAM,GAAE;;yCACW;AAGpB;IADC,IAAA,YAAM,GAAE;;+CACiB;AAG1B;IADC,IAAA,YAAM,GAAE;;wCACU;AAGnB;IADC,IAAA,YAAM,GAAE;;wCACU;AAKnB;IAHC,IAAA,eAAS,EAAC,GAAG,EAAE,CAAC,gBAAM,EAAE;QACvB,UAAU,EAAE,WAAW;KACxB,CAAC;;2CACsC;AAGxC;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACpB,gBAAQ;8CAAC;AAG3B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACtC,gBAAQ;8CAAC;AA/B7B,8BAgCC"} \ No newline at end of file diff --git a/build/app/Models/Role.js b/build/app/Models/Role.js new file mode 100644 index 0000000..0ee6a06 --- /dev/null +++ b/build/app/Models/Role.js @@ -0,0 +1,86 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const luxon_1 = require("luxon"); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const User_1 = __importDefault(require("./User")); +class Role extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "name", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "slug", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "users", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", Number) +], Role.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Role.prototype, "name", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], Role.prototype, "slug", void 0); +__decorate([ + (0, Orm_1.manyToMany)(() => User_1.default, { + pivotTable: 'users_roles', + }), + __metadata("design:type", Object) +], Role.prototype, "users", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, serializeAs: null }), + __metadata("design:type", luxon_1.DateTime) +], Role.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true, serializeAs: null }), + __metadata("design:type", luxon_1.DateTime) +], Role.prototype, "updatedAt", void 0); +exports.default = Role; +//# sourceMappingURL=Role.js.map \ No newline at end of file diff --git a/build/app/Models/Role.js.map b/build/app/Models/Role.js.map new file mode 100644 index 0000000..7183ad8 --- /dev/null +++ b/build/app/Models/Role.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../app/Models/Role.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,iCAAiC;AACjC,gEAAkF;AAClF,kDAA0B;AAE1B,MAAqB,IAAK,SAAQ,eAAS;IAA3C;;QAEE;;;;;WAAkB;QAGlB;;;;;WAAoB;QAGpB;;;;;WAAoB;QAKpB;;;;;WAAsC;QAGtC;;;;;WAA2B;QAG3B;;;;;WAA2B;IAC7B,CAAC;CAAA;AAlBC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;gCACV;AAGlB;IADC,IAAA,YAAM,GAAE;;kCACW;AAGpB;IADC,IAAA,YAAM,GAAE;;kCACW;AAKpB;IAHC,IAAA,gBAAU,EAAC,GAAG,EAAE,CAAC,cAAI,EAAE;QACtB,UAAU,EAAE,aAAa;KAC1B,CAAC;;mCACoC;AAGtC;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8BACvC,gBAAQ;uCAAC;AAG3B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8BACzD,gBAAQ;uCAAC;AAnB7B,uBAoBC"} \ No newline at end of file diff --git a/build/app/Models/User.js b/build/app/Models/User.js new file mode 100644 index 0000000..e57d3ea --- /dev/null +++ b/build/app/Models/User.js @@ -0,0 +1,217 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const luxon_1 = require("luxon"); +const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); +const Hash_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Hash")); +const nanoid_1 = require("nanoid"); +const Role_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Role")); +const Contact_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Contact")); +const Course_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Course")); +const LessonProgress_1 = __importDefault(require("./LessonProgress")); +class User extends Orm_1.BaseModel { + constructor() { + super(...arguments); + Object.defineProperty(this, "id", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "first_name", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "last_name", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "login", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "email", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "password", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "contacts", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "roles", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "courses", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "likes", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lessons_progress", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "about", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "last_login", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "createdAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "updatedAt", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + get fullname() { + return `${this.first_name} ${this.last_name}`; + } + static assignUui(user) { + user.id = (0, nanoid_1.nanoid)(); + } + static async hashPassword(user) { + if (user.$dirty.password) { + user.password = await Hash_1.default.make(user.password); + } + } +} +__decorate([ + (0, Orm_1.column)({ isPrimary: true }), + __metadata("design:type", String) +], User.prototype, "id", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], User.prototype, "first_name", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], User.prototype, "last_name", void 0); +__decorate([ + (0, Orm_1.computed)(), + __metadata("design:type", Object), + __metadata("design:paramtypes", []) +], User.prototype, "fullname", null); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", String) +], User.prototype, "login", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", String) +], User.prototype, "email", void 0); +__decorate([ + (0, Orm_1.column)({ serializeAs: null }), + __metadata("design:type", String) +], User.prototype, "password", void 0); +__decorate([ + (0, Orm_1.hasOne)(() => Contact_1.default, { + foreignKey: 'user_id', + }), + __metadata("design:type", Object) +], User.prototype, "contacts", void 0); +__decorate([ + (0, Orm_1.manyToMany)(() => Role_1.default, { + pivotTable: 'users_roles', + }), + __metadata("design:type", Object) +], User.prototype, "roles", void 0); +__decorate([ + (0, Orm_1.manyToMany)(() => Course_1.default, { + pivotTable: 'users_courses', + }), + __metadata("design:type", Object) +], User.prototype, "courses", void 0); +__decorate([ + (0, Orm_1.manyToMany)(() => Course_1.default, { + pivotTable: 'courses_likes', + }), + __metadata("design:type", Object) +], User.prototype, "likes", void 0); +__decorate([ + (0, Orm_1.hasMany)(() => LessonProgress_1.default, { + foreignKey: 'user_id', + }), + __metadata("design:type", Object) +], User.prototype, "lessons_progress", void 0); +__decorate([ + (0, Orm_1.column)(), + __metadata("design:type", Object) +], User.prototype, "about", void 0); +__decorate([ + Orm_1.column.dateTime(), + __metadata("design:type", Object) +], User.prototype, "last_login", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true }), + __metadata("design:type", luxon_1.DateTime) +], User.prototype, "createdAt", void 0); +__decorate([ + Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true }), + __metadata("design:type", luxon_1.DateTime) +], User.prototype, "updatedAt", void 0); +__decorate([ + (0, Orm_1.beforeCreate)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [User]), + __metadata("design:returntype", void 0) +], User, "assignUui", null); +__decorate([ + (0, Orm_1.beforeSave)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", [User]), + __metadata("design:returntype", Promise) +], User, "hashPassword", null); +exports.default = User; +//# sourceMappingURL=User.js.map \ No newline at end of file diff --git a/build/app/Models/User.js.map b/build/app/Models/User.js.map new file mode 100644 index 0000000..644d524 --- /dev/null +++ b/build/app/Models/User.js.map @@ -0,0 +1 @@ +{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../app/Models/User.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,iCAAiC;AACjC,gEAY+B;AAC/B,kFAAyC;AACzC,mCAAgC;AAChC,iFAAmC;AACnC,uFAAyC;AACzC,qFAAuC;AACvC,sEAA8C;AAE9C,MAAqB,IAAK,SAAQ,eAAS;IAA3C;;QAEE;;;;;WAAkB;QAGlB;;;;;WAA0B;QAG1B;;;;;WAAyB;QAQzB;;;;;WAAqB;QAGrB;;;;;WAAqB;QAGrB;;;;;WAAwB;QAKxB;;;;;WAAwC;QAKxC;;;;;WAAsC;QAKtC;;;;;WAA0C;QAK1C;;;;;WAAwC;QAKxC;;;;;WAAwD;QAGxD;;;;;WAA4B;QAG5B;;;;;WAAmC;QAGnC;;;;;WAA2B;QAG3B;;;;;WAA2B;IAqB7B,CAAC;IArEC,IAAW,QAAQ;QACjB,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAChD,CAAC;IAqDM,MAAM,CAAC,SAAS,CAAC,IAAU;QAChC,IAAI,CAAC,EAAE,GAAG,IAAA,eAAM,GAAE,CAAC;IACrB,CAAC;IAOM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAU;QACzC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,MAAM,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChD;IACH,CAAC;CACF;AA9EC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;gCACV;AAGlB;IADC,IAAA,YAAM,GAAE;;wCACiB;AAG1B;IADC,IAAA,YAAM,GAAE;;uCACgB;AAGzB;IADC,IAAA,cAAQ,GAAE;;;oCAGV;AAGD;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;mCACT;AAGrB;IADC,IAAA,YAAM,GAAE;;mCACY;AAGrB;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;sCACN;AAKxB;IAHC,IAAA,YAAM,EAAC,GAAG,EAAE,CAAC,iBAAO,EAAE;QACrB,UAAU,EAAE,SAAS;KACtB,CAAC;;sCACsC;AAKxC;IAHC,IAAA,gBAAU,EAAC,GAAG,EAAE,CAAC,cAAI,EAAE;QACtB,UAAU,EAAE,aAAa;KAC1B,CAAC;;mCACoC;AAKtC;IAHC,IAAA,gBAAU,EAAC,GAAG,EAAE,CAAC,gBAAM,EAAE;QACxB,UAAU,EAAE,eAAe;KAC5B,CAAC;;qCACwC;AAK1C;IAHC,IAAA,gBAAU,EAAC,GAAG,EAAE,CAAC,gBAAM,EAAE;QACxB,UAAU,EAAE,eAAe;KAC5B,CAAC;;mCACsC;AAKxC;IAHC,IAAA,aAAO,EAAC,GAAG,EAAE,CAAC,wBAAc,EAAE;QAC7B,UAAU,EAAE,SAAS;KACtB,CAAC;;8CACsD;AAGxD;IADC,IAAA,YAAM,GAAE;;mCACmB;AAG5B;IADC,YAAM,CAAC,QAAQ,EAAE;;wCACiB;AAGnC;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACpB,gBAAQ;uCAAC;AAG3B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACtC,gBAAQ;uCAAC;AAO3B;IADC,IAAA,kBAAY,GAAE;;qCACe,IAAI;;2BAEjC;AAOD;IADC,IAAA,gBAAU,GAAE;;qCAC0B,IAAI;;8BAI1C;AA/EH,uBAgFC"} \ No newline at end of file diff --git a/build/app/Policies/LessonPolicy.js b/build/app/Policies/LessonPolicy.js new file mode 100644 index 0000000..c546b62 --- /dev/null +++ b/build/app/Policies/LessonPolicy.js @@ -0,0 +1,21 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Bouncer_1 = global[Symbol.for('ioc.use')]("Adonis/Addons/Bouncer"); +const RoleHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/RoleHelper")); +const RoleEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/RoleEnum")); +class LessonPolicy extends Bouncer_1.BasePolicy { + async view(user, lesson) { + await user.load(loader => loader.load('roles').load('courses')); + await lesson.load('course'); + const isAdminOrTeacher = RoleHelper_1.default.userContainRoles(user.roles, [RoleEnum_1.default.ADMIN, RoleEnum_1.default.TEACHER]); + if (isAdminOrTeacher) { + return true; + } + return !!user.courses.find(course => course.id === lesson.course.id); + } +} +exports.default = LessonPolicy; +//# sourceMappingURL=LessonPolicy.js.map \ No newline at end of file diff --git a/build/app/Policies/LessonPolicy.js.map b/build/app/Policies/LessonPolicy.js.map new file mode 100644 index 0000000..e161f9d --- /dev/null +++ b/build/app/Policies/LessonPolicy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LessonPolicy.js","sourceRoot":"","sources":["../../../app/Policies/LessonPolicy.ts"],"names":[],"mappings":";;;;;AAAA,yEAAwD;AAKxD,8FAAgD;AAWhD,kGAAoD;AAEpD,MAAqB,YAAa,SAAQ,oBAAU;IAC3C,KAAK,CAAC,IAAI,CAAC,IAAU,EAAE,MAAc;QAI1C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5B,MAAM,gBAAgB,GAAG,oBAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,kBAAQ,CAAC,KAAK,EAAE,kBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAErG,IAAI,gBAAgB,EAAE;YACpB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;CACF;AAhBD,+BAgBC"} \ No newline at end of file diff --git a/build/app/Policies/RolePolicy.js b/build/app/Policies/RolePolicy.js new file mode 100644 index 0000000..cbd138f --- /dev/null +++ b/build/app/Policies/RolePolicy.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Bouncer_1 = global[Symbol.for('ioc.use')]("Adonis/Addons/Bouncer"); +const RoleHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/RoleHelper")); +const RoleEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/RoleEnum")); +class RolePolicy extends Bouncer_1.BasePolicy { + async manage(user, roles) { + await user.load('roles'); + const isAdmin = RoleHelper_1.default.userContainRoles(user.roles, [RoleEnum_1.default.ADMIN]); + const isTeacher = RoleHelper_1.default.userContainRoles(user.roles, [RoleEnum_1.default.TEACHER]); + if (isAdmin) { + return true; + } + if (!(roles.includes(RoleEnum_1.default.TEACHER) || roles.includes(RoleEnum_1.default.ADMIN)) && isTeacher) { + return true; + } + } +} +exports.default = RolePolicy; +//# sourceMappingURL=RolePolicy.js.map \ No newline at end of file diff --git a/build/app/Policies/RolePolicy.js.map b/build/app/Policies/RolePolicy.js.map new file mode 100644 index 0000000..01a4b43 --- /dev/null +++ b/build/app/Policies/RolePolicy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RolePolicy.js","sourceRoot":"","sources":["../../../app/Policies/RolePolicy.ts"],"names":[],"mappings":";;;;;AAAA,yEAAwD;AAUxD,8FAAgD;AAKhD,kGAAoD;AAEpD,MAAqB,UAAW,SAAQ,oBAAU;IACzC,KAAK,CAAC,MAAM,CAAC,IAAU,EAAE,KAAsB;QACpD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzB,MAAM,OAAO,GAAG,oBAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,kBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,oBAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,kBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9E,IAAI,OAAO,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAKD,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,SAAS,EAAE;YACtF,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF;AAlBD,6BAkBC"} \ No newline at end of file diff --git a/build/app/Repositories/CategoryRepository.js b/build/app/Repositories/CategoryRepository.js new file mode 100644 index 0000000..13f3bc5 --- /dev/null +++ b/build/app/Repositories/CategoryRepository.js @@ -0,0 +1,50 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Category_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Category")); +class CategoryRepository { + constructor() { + Object.defineProperty(this, "Category", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.Category = Category_1.default; + } + async getAll() { + const categories = await this.Category.query().preload('color'); + return categories; + } + async getById(id) { + const category = await this.Category.query().preload('color').where('id', id).first(); + return category; + } + async create(data) { + const category = await this.Category.create({ + title: data.title, + description: data.description, + }); + return category; + } + async delete(id) { + const category = await this.Category.query().where('id', id).first(); + if (category) { + await category.delete(); + return category; + } + return null; + } + async update(id, data) { + const category = await this.Category.query().where('id', id).first(); + if (category) { + await category.merge(data).save(); + return category; + } + return null; + } +} +exports.default = CategoryRepository; +//# sourceMappingURL=CategoryRepository.js.map \ No newline at end of file diff --git a/build/app/Repositories/CategoryRepository.js.map b/build/app/Repositories/CategoryRepository.js.map new file mode 100644 index 0000000..8c98edc --- /dev/null +++ b/build/app/Repositories/CategoryRepository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CategoryRepository.js","sourceRoot":"","sources":["../../../app/Repositories/CategoryRepository.ts"],"names":[],"mappings":";;;;;AAGA,yFAA2C;AAQ3C,MAAqB,kBAAkB;IAGrC;QAFA;;;;;WAAkC;QAGhC,IAAI,CAAC,QAAQ,GAAG,kBAAQ,CAAC;IAC3B,CAAC;IAOM,KAAK,CAAC,MAAM;QACjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,UAAU,CAAC;IACpB,CAAC;IAQM,KAAK,CAAC,OAAO,CAAC,EAAmB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACtF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAQM,KAAK,CAAC,MAAM,CAAC,IAAgD;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAQM,KAAK,CAAC,MAAM,CAAC,EAAmB;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAErE,IAAI,QAAQ,EAAE;YACZ,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC;SACjB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IASM,KAAK,CAAC,MAAM,CAAC,EAAmB,EAAE,IAAgD;QACvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAErE,IAAI,QAAQ,EAAE;YACZ,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,QAAQ,CAAC;SACjB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA7ED,qCA6EC"} \ No newline at end of file diff --git a/build/app/Repositories/ContactRepository.js b/build/app/Repositories/ContactRepository.js new file mode 100644 index 0000000..656d94b --- /dev/null +++ b/build/app/Repositories/ContactRepository.js @@ -0,0 +1,39 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Contact_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Contact")); +class ContactRepository { + constructor() { + Object.defineProperty(this, "Contact", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.Contact = Contact_1.default; + } + async getByUser(userId) { + const contacts = await this.Contact.query().where('user_id', userId).first(); + return contacts; + } + async create(user, data) { + const contacts = await this.Contact.create(data); + await contacts.related('user').associate(user); + await user.load('contacts'); + await user.load('roles'); + return contacts; + } + async update(user, data) { + const contacts = await this.Contact.query().where('user_id', user.id).first(); + if (contacts) { + await contacts.merge(data).save(); + await user.load('contacts'); + return contacts; + } + return null; + } +} +exports.default = ContactRepository; +//# sourceMappingURL=ContactRepository.js.map \ No newline at end of file diff --git a/build/app/Repositories/ContactRepository.js.map b/build/app/Repositories/ContactRepository.js.map new file mode 100644 index 0000000..3f86fbc --- /dev/null +++ b/build/app/Repositories/ContactRepository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ContactRepository.js","sourceRoot":"","sources":["../../../app/Repositories/ContactRepository.ts"],"names":[],"mappings":";;;;;AAGA,uFAAyC;AASzC,MAAqB,iBAAiB;IAGpC;QAFA;;;;;WAAgC;QAG9B,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC;IACzB,CAAC;IAQM,KAAK,CAAC,SAAS,CAAC,MAAuB;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7E,OAAO,QAAQ,CAAC;IAClB,CAAC;IASM,KAAK,CAAC,MAAM,CAAC,IAAU,EAAE,IAAgD;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAKjD,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAK/C,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IASM,KAAK,CAAC,MAAM,CAAC,IAAU,EAAE,IAAgD;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAE9E,IAAI,QAAQ,EAAE;YACZ,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE5B,OAAO,QAAQ,CAAC;SACjB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA7DD,oCA6DC"} \ No newline at end of file diff --git a/build/app/Repositories/CourseRepository.js b/build/app/Repositories/CourseRepository.js new file mode 100644 index 0000000..2ae8962 --- /dev/null +++ b/build/app/Repositories/CourseRepository.js @@ -0,0 +1,177 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Database_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Database")); +const AttachmentLite_1 = global[Symbol.for('ioc.use')]("Adonis/Addons/AttachmentLite"); +const Course_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Course")); +class CourseRepository { + constructor() { + Object.defineProperty(this, "Database", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "Course", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.Database = Database_1.default; + this.Course = Course_1.default; + } + async getByTeacherId(id) { + const data = await this.Course.query() + .preload('lessons', q => q.preload('video').preload('materials')) + .where('teacher_id', id); + return data; + } + async getByCategoryId(id) { + const data = await this.Course.query() + .preload('lessons', q => q.preload('video').preload('materials')) + .where('category_id', id); + return data; + } + async setStatus(id, status) { + const data = await this.Course.query().where('id', id).update({ status }).first(); + return data; + } + async getAll(params) { + const { status, category_id, limit } = params || {}; + const query = this.Course.query(); + if (category_id) { + query.andWhereHas('category', q => q.where('id', category_id)); + } + if (status) { + query.andWhere('status', status); + } + if (limit) { + query.limit(limit); + } + const courses = await query + .preload('color') + .preload('category') + .withCount('students') + .withCount('likes') + .withCount('lessons') + .orderBy('created_at', 'desc'); + return courses; + } + async getById(id) { + const course = await this.Course.query() + .preload('teacher') + .preload('color') + .preload('category', q => q.preload('color')) + .preload('lessons', q => q.preload('color').orderBy('display_order', 'asc').withCount('materials')) + .preload('students', q => q.preload('roles').preload('contacts')) + .withCount('likes') + .withCount('lessons') + .withCount('students') + .where('id', id) + .first(); + return course; + } + async getByIdWithoutRelations(id, params) { + const { status } = params || {}; + const query = this.Course.query().where('id', id); + if (status) { + query.where('status', status); + } + const course = await query.first(); + return course; + } + async getLikesCount(id) { + const likes = await this.Database.query().from('courses_likes').where('course_id', id).count('* as count'); + return likes[0].count; + } + async getTeacher(id) { + const course = await this.Course.query() + .select('teacher_id') + .preload('teacher', user => user.preload('contacts').preload('roles')) + .where('id', id) + .first(); + return course && course.teacher; + } + async getCategory(id) { + const course = await this.Course.query().select('category_id').preload('category').where('id', id).first(); + return course && course.category; + } + async getLessons(id, userId) { + const course = await this.Course.query() + .select('id') + .preload('lessons', q => q + .preload('progress', p => p.where('user_id', userId)) + .preload('color') + .orderBy('display_order', 'asc')) + .where('id', id) + .first(); + return course && course.lessons; + } + async getStudents(id) { + const course = await this.Course.query().preload('students').where('id', id).first(); + return course && course.students; + } + async getStudentsCount(id) { + const students = await this.Database.query().from('users_courses').where('course_id', id).count('* as count'); + return students[0].count; + } + async create(data) { + const course = new this.Course(); + course.title = data.title; + course.description = data.description; + course.education_description = data.education_description; + course.status = data.status; + course.teacher_id = data.teacher_id; + course.category_id = data.category_id; + if (data.image) { + course.image = AttachmentLite_1.Attachment.fromFile(data.image); + } + await course.save(); + return course; + } + async delete(id) { + const course = await this.Course.query() + .preload('category') + .preload('lessons', q => q.preload('video').preload('materials')) + .withCount('students') + .withCount('likes') + .withCount('lessons') + .where('id', id) + .first(); + if (course) { + await course.delete(); + return course; + } + return null; + } + async update(id, data) { + const course = await this.Course.query() + .preload('teacher') + .preload('category') + .preload('lessons') + .where('id', id) + .first(); + if (course) { + course.merge({ + title: data.title, + description: data.description, + education_description: data.education_description, + teacher_id: data.teacher_id, + category_id: data.category_id, + }); + if (data.image) { + course.image = AttachmentLite_1.Attachment.fromFile(data.image); + } + await course.load('category'); + await course.load('teacher'); + await course.save(); + return course; + } + return null; + } +} +exports.default = CourseRepository; +//# sourceMappingURL=CourseRepository.js.map \ No newline at end of file diff --git a/build/app/Repositories/CourseRepository.js.map b/build/app/Repositories/CourseRepository.js.map new file mode 100644 index 0000000..baa6e2f --- /dev/null +++ b/build/app/Repositories/CourseRepository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CourseRepository.js","sourceRoot":"","sources":["../../../app/Repositories/CourseRepository.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Repositories/ImageRepository.js b/build/app/Repositories/ImageRepository.js new file mode 100644 index 0000000..38494cd --- /dev/null +++ b/build/app/Repositories/ImageRepository.js @@ -0,0 +1,46 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Drive_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Drive")); +const Image_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Image")); +class ImageRepository { + constructor() { + Object.defineProperty(this, "Image", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.Image = Image_1.default; + } + async getById(id) { + const image = await this.Image.query().where('id', id).first(); + return image; + } + async getByFileName(name) { + const image = await this.Image.query().where('name', name).first(); + return image; + } + async getAll() { + const images = await this.Image.query(); + return images; + } + async create({ file, location }) { + await file.moveToDisk(location); + const image = await this.Image.create({ name: file.fileName, path: file.filePath, ext: file.extname }); + return image; + } + async delete(id) { + const image = await this.Image.query().where('id', id).first(); + if (image) { + await Drive_1.default.delete(image.path); + await image.delete(); + return image; + } + return null; + } +} +exports.default = ImageRepository; +//# sourceMappingURL=ImageRepository.js.map \ No newline at end of file diff --git a/build/app/Repositories/ImageRepository.js.map b/build/app/Repositories/ImageRepository.js.map new file mode 100644 index 0000000..266bfe5 --- /dev/null +++ b/build/app/Repositories/ImageRepository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ImageRepository.js","sourceRoot":"","sources":["../../../app/Repositories/ImageRepository.ts"],"names":[],"mappings":";;;;;AACA,oFAA2C;AAC3C,mFAAqC;AAErC,MAAqB,eAAe;IAGlC;QAFA;;;;;WAA4B;QAG1B,IAAI,CAAC,KAAK,GAAG,eAAK,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,EAAU;QAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAAY;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAqD;QAIvF,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAKhC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvG,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,EAAU;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAE/D,IAAI,KAAK,EAAE;YAIT,MAAM,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAK/B,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArDD,kCAqDC"} \ No newline at end of file diff --git a/build/app/Repositories/LessonProgressRepository.js b/build/app/Repositories/LessonProgressRepository.js new file mode 100644 index 0000000..0ded91e --- /dev/null +++ b/build/app/Repositories/LessonProgressRepository.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const LessonProgress_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/LessonProgress")); +class LessonProgressRepository { + constructor() { + Object.defineProperty(this, "LessonProgress", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.LessonProgress = LessonProgress_1.default; + } + async get(user_id, lesson_id) { + const progress = await this.LessonProgress.query() + .where('user_id', user_id) + .andWhere('lesson_id', lesson_id) + .first(); + return progress; + } + async create(data) { + const progress = await this.LessonProgress.create(data); + return progress; + } +} +exports.default = LessonProgressRepository; +//# sourceMappingURL=LessonProgressRepository.js.map \ No newline at end of file diff --git a/build/app/Repositories/LessonProgressRepository.js.map b/build/app/Repositories/LessonProgressRepository.js.map new file mode 100644 index 0000000..14555f7 --- /dev/null +++ b/build/app/Repositories/LessonProgressRepository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LessonProgressRepository.js","sourceRoot":"","sources":["../../../app/Repositories/LessonProgressRepository.ts"],"names":[],"mappings":";;;;;AAAA,qGAAuD;AAEvD,MAAqB,wBAAwB;IAG3C;QAFA;;;;;WAA8C;QAG5C,IAAI,CAAC,cAAc,GAAG,wBAAc,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,SAAiB;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;aAC/C,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC;aACzB,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;aAChC,KAAK,EAAE,CAAC;QAEX,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAiE;QACnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AApBD,2CAoBC"} \ No newline at end of file diff --git a/build/app/Repositories/LessonRepository.js b/build/app/Repositories/LessonRepository.js new file mode 100644 index 0000000..3d69caa --- /dev/null +++ b/build/app/Repositories/LessonRepository.js @@ -0,0 +1,175 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Drive_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Drive")); +const Helpers_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Helpers"); +const Lesson_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Lesson")); +const LessonMaterial_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/LessonMaterial")); +const LessonVideo_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/LessonVideo")); +class LessonRepository { + constructor() { + Object.defineProperty(this, "Lesson", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "LessonMaterial", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "LessonVideo", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "Drive", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.Lesson = Lesson_1.default; + this.LessonMaterial = LessonMaterial_1.default; + this.LessonVideo = LessonVideo_1.default; + this.Drive = Drive_1.default; + } + async getAll() { + const lessons = await this.Lesson.query(); + return lessons; + } + async getById(id) { + const lesson = await this.Lesson.query().where('id', id).preload('color').withCount('materials').first(); + return lesson; + } + async getContentById(id) { + const lesson = await this.Lesson.query().preload('content').where('id', id).first(); + return lesson && lesson.content; + } + async getMaterialFileByName(fileName) { + const material = await this.LessonMaterial.query().where('name', fileName).first(); + return material; + } + async getMaterialFileById(id) { + const material = await this.LessonMaterial.query().where('id', id).first(); + return material; + } + async getVideoFileByName(fileName) { + const video = await this.LessonVideo.query().where('name', fileName).first(); + return video; + } + async create(course, data) { + await course.loadCount('lessons'); + const lesson = await this.Lesson.create({ + title: data.title, + description: data.description, + duration: data.duration.toFormat('HH:mm:ss'), + display_order: Number.parseInt(course.$extras.lessons_count, 10) + 1, + course_id: course.id, + linked_video_url: !data.video ? data.linked_video_url : null, + }); + await lesson.related('content').create({ body: '' }); + if (data.video) { + await this.createVideo(lesson, data.video); + } + if (data.materials) { + await this.createMaterials(lesson, data.materials); + } + await lesson.load(loader => loader.load('content').load('materials').load('video').load('progress')); + return lesson; + } + async update(id, data) { + const lesson = await this.Lesson.query().preload('video').preload('color').where('id', id).first(); + if (lesson) { + lesson.merge({ + title: data.title, + description: data.description, + course_id: data.course_id, + ...(data.duration && { duration: data.duration.toFormat('HH:mm:ss') }), + }); + if (data.linked_video_url && !data.video) { + if (lesson.video) { + await this.Drive.delete(`videos/${lesson.video.name}`); + } + await lesson.related('video').query().delete(); + lesson.merge({ linked_video_url: data.linked_video_url }); + } + if (data.video) { + if (lesson.video) { + await this.Drive.delete(`videos/${lesson.video.name}`); + } + await lesson.related('video').query().delete(); + await this.createVideo(lesson, data.video); + lesson.merge({ linked_video_url: null }); + } + if (data.materials && data.materials !== null) { + await this.deleteMaterials(lesson); + await this.createMaterials(lesson, data.materials); + } + else if (data.materials === null) + await this.deleteMaterials(lesson); + await lesson.load(loader => loader.load('video').load('materials')); + await lesson.save(); + return lesson; + } + return null; + } + async delete(id) { + const lesson = await this.Lesson.query().where('id', id).preload('video').preload('color').first(); + if (lesson) { + if (lesson.video) { + await this.Drive.delete(`videos/${lesson.video.name}`); + } + await this.deleteMaterials(lesson); + await lesson.delete(); + return lesson; + } + return null; + } + async createVideo(lesson, video) { + const videoName = `${(0, Helpers_1.cuid)()}.${video.extname}`; + await video.moveToDisk('videos', { name: videoName }); + if (video.state === 'moved') { + await lesson.related('video').create({ + name: videoName, + clientName: video.clientName, + ext: video.extname, + size: video.size, + url: `/video/${videoName}`, + }); + } + } + async createMaterials(lesson, materials) { + const files = await Promise.all(materials.map(async (file) => { + const name = `${(0, Helpers_1.cuid)()}.${file.extname}`; + await file.moveToDisk('materials', { name }); + return { file, name }; + })); + const promises = await Promise.all(files.map(async ({ file, name }) => { + if (file.state === 'moved' && file.fileName && file.extname) { + const material = new LessonMaterial_1.default(); + material.name = name; + material.size = file.size; + material.clientName = file.clientName; + material.ext = file.extname; + return material; + } + return null; + })); + await lesson.related('materials').createMany(promises.filter((l) => l !== null)); + } + async deleteMaterials(lesson) { + await lesson.load('materials'); + await Promise.all(lesson.materials.map(async (material) => { + await this.Drive.delete(`materials/${material.name}`); + await material.delete(); + })); + } +} +exports.default = LessonRepository; +//# sourceMappingURL=LessonRepository.js.map \ No newline at end of file diff --git a/build/app/Repositories/LessonRepository.js.map b/build/app/Repositories/LessonRepository.js.map new file mode 100644 index 0000000..2ea1753 --- /dev/null +++ b/build/app/Repositories/LessonRepository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LessonRepository.js","sourceRoot":"","sources":["../../../app/Repositories/LessonRepository.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Repositories/RoleRepository.js b/build/app/Repositories/RoleRepository.js new file mode 100644 index 0000000..12c1262 --- /dev/null +++ b/build/app/Repositories/RoleRepository.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Role_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Role")); +class RoleRepository { + constructor() { + Object.defineProperty(this, "Role", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.Role = Role_1.default; + } + async getAll(params) { + const { roles } = params || {}; + const query = this.Role.query(); + if (roles) { + query.whereIn('slug', roles); + } + const data = await query; + return data; + } + async getBySlug(slug) { + const role = await this.Role.query().where('slug', slug).first(); + return role; + } +} +exports.default = RoleRepository; +//# sourceMappingURL=RoleRepository.js.map \ No newline at end of file diff --git a/build/app/Repositories/RoleRepository.js.map b/build/app/Repositories/RoleRepository.js.map new file mode 100644 index 0000000..191b830 --- /dev/null +++ b/build/app/Repositories/RoleRepository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RoleRepository.js","sourceRoot":"","sources":["../../../app/Repositories/RoleRepository.ts"],"names":[],"mappings":";;;;;AAGA,iFAAmC;AAEnC,MAAqB,cAAc;IAGjC;QAFA;;;;;WAA0B;QAGxB,IAAI,CAAC,IAAI,GAAG,cAAI,CAAC;IACnB,CAAC;IAQM,KAAK,CAAC,MAAM,CAAC,MAAY;QAC9B,MAAM,EAAE,KAAK,EAAE,GAAQ,MAAM,IAAI,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAEhC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SAC9B;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAQM,KAAK,CAAC,SAAS,CAAC,IAAY;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnCD,iCAmCC"} \ No newline at end of file diff --git a/build/app/Repositories/UserRepository.js b/build/app/Repositories/UserRepository.js new file mode 100644 index 0000000..aa5fee2 --- /dev/null +++ b/build/app/Repositories/UserRepository.js @@ -0,0 +1,125 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Hash_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Hash")); +const luxon_1 = require("luxon"); +const User_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/User")); +class UserRepository { + constructor() { + Object.defineProperty(this, "User", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.User = User_1.default; + } + async getById(id) { + const data = await this.User.query().preload('contacts').preload('roles').where('id', id).first(); + return data; + } + async getByIds(ids) { + const data = await this.User.query().preload('contacts').preload('roles').whereIn('id', ids); + return data; + } + async getByColumn(column, value) { + const data = await this.User.query().preload('contacts').preload('roles').where(column, value).first(); + return data; + } + async getAllByRole(role) { + const data = await this.User.query() + .preload('contacts') + .preload('roles') + .whereHas('roles', q => q.where('slug', role)); + return data; + } + async getAll(params) { + const { search, email, login, first_name, last_name, role, page, limit } = params || {}; + const query = this.User.query(); + if (email) { + query.where('email', 'like', `%${email}%`); + } + if (login) { + query.where('login', 'like', `%${login}%`); + } + if (first_name) { + query.where('first_name', 'like', `%${first_name}%`); + } + if (last_name) { + query.where('last_name', 'like', `%${last_name}%`); + } + if (search) { + query + .orWhere('first_name', 'ilike', `%${search}%`) + .orWhere('last_name', 'ilike', `%${search}%`) + .orWhereRaw(`CONCAT(first_name, ' ', last_name) ilike ?`, [search]) + .orWhere('email', 'like', `${search}`) + .orWhere('id', 'like', `${search}`); + } + if (role) { + query.whereHas('roles', q => q.where('slug', role)); + } + query.preload('contacts').preload('roles').orderBy('created_at', 'desc'); + if (limit && page) { + const data = await query.paginate(page, limit); + return data.toJSON(); + } + const data = await query; + return data; + } + async create(data) { + const user = await this.User.create({ + first_name: data.first_name.charAt(0).toUpperCase() + data.first_name.substr(1), + last_name: data.last_name.charAt(0).toUpperCase() + data.last_name.substr(1), + login: data.login, + email: data.email, + password: data.password, + }); + await user.load('contacts'); + await user.load('roles'); + return user; + } + async update(id, data) { + const user = await this.User.query().preload('contacts').preload('roles').where('id', id).first(); + const { role, ...updatedFields } = data; + if (user) { + await user.merge(updatedFields).save(); + return user; + } + return null; + } + async updateLastLogin(id) { + await this.User.query().where('id', id).update({ last_login: luxon_1.DateTime.now() }).first(); + } + async updateInfo(id, data) { + const user = await this.User.query().preload('contacts').preload('roles').where('id', id).first(); + const { about } = data; + if (user) { + await user.merge({ about }).save(); + return { about: user.about }; + } + return null; + } + async updateRoles(user, roles) { + await user.related('roles').detach(); + await user.related('roles').attach(roles.map(role => role.id)); + await user.load('roles'); + return user.roles.map(role => role); + } + async delete(id) { + const user = await this.User.query().preload('contacts').preload('roles').where('id', id).first(); + if (user) { + await user.delete(); + return user; + } + return null; + } + async updatePassword(password, id) { + const hashedPass = await Hash_1.default.make(password); + return this.User.query().where('id', id).update({ password: hashedPass }).first(); + } +} +exports.default = UserRepository; +//# sourceMappingURL=UserRepository.js.map \ No newline at end of file diff --git a/build/app/Repositories/UserRepository.js.map b/build/app/Repositories/UserRepository.js.map new file mode 100644 index 0000000..4268fe1 --- /dev/null +++ b/build/app/Repositories/UserRepository.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserRepository.js","sourceRoot":"","sources":["../../../app/Repositories/UserRepository.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Services/AuthService.js b/build/app/Services/AuthService.js new file mode 100644 index 0000000..8f02cc6 --- /dev/null +++ b/build/app/Services/AuthService.js @@ -0,0 +1,94 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const Hash_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Hash")); +const HttpStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/HttpStatusEnum")); +const UserRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/UserRepository")); +let AuthService = class AuthService { + constructor(userRepository) { + Object.defineProperty(this, "userRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "authGuard", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.userRepository = userRepository; + } + async login(login, password, ctx) { + const user = await this.userRepository.getByColumn('login', login); + if (!user) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'User not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + if (!(await Hash_1.default.verify(user.password, password))) { + return { + success: false, + status: HttpStatusEnum_1.default.UNAUTHORIZED, + message: 'Invalid credentials.', + data: {}, + error: { + code: 'E_INVALID_CREDENTIALS', + }, + }; + } + const token = await ctx.auth.use(this.authGuard).generate(user, { + expiresIn: '1d', + userId: user.id, + userRoles: user.roles.map(role => role.slug), + userName: user.fullname, + }); + ctx.response.cookie('token', token.token); + await this.userRepository.updateLastLogin(user.id); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Login success.', + data: { + userId: user.id, + ...token.toJSON(), + }, + }; + } + async logout(ctx) { + ctx.response.clearCookie('token'); + await ctx.auth.use(this.authGuard).revoke(); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Logout success.', + data: {}, + }; + } +}; +AuthService = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [UserRepository_1.default]) +], AuthService); +exports.default = AuthService; +new standalone_1.Ioc().make(AuthService); +//# sourceMappingURL=AuthService.js.map \ No newline at end of file diff --git a/build/app/Services/AuthService.js.map b/build/app/Services/AuthService.js.map new file mode 100644 index 0000000..3b5e435 --- /dev/null +++ b/build/app/Services/AuthService.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AuthService.js","sourceRoot":"","sources":["../../../app/Services/AuthService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gEAA8D;AAE9D,kFAAyC;AAMzC,8GAAgE;AAKhE,2GAA6D;AAG7D,IAAqB,WAAW,GAAhC,MAAqB,WAAW;IAK9B,YAAY,cAA8B;QAJ1C;;;;;WAAuC;QAEvC;;;;;WAAyB;QAGvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAUM,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,QAAgB,EAAE,GAAwB;QAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEnE,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,wBAAc,CAAC,SAAS;gBAChC,OAAO,EAAE,iBAAiB;gBAC1B,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE;oBACL,IAAI,EAAE,aAAa;iBACpB;aACF,CAAC;SACH;QAKD,IAAI,CAAC,CAAC,MAAM,cAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE;YACjD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,wBAAc,CAAC,YAAY;gBACnC,OAAO,EAAE,sBAAsB;gBAC/B,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE;oBACL,IAAI,EAAE,uBAAuB;iBAC9B;aACF,CAAC;SACH;QAKD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC9D,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QAKH,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAK1C,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,wBAAc,CAAC,EAAE;YACzB,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,GAAG,KAAK,CAAC,MAAM,EAAE;aAClB;SACF,CAAC;IACJ,CAAC;IAQM,KAAK,CAAC,MAAM,CAAC,GAAwB;QAC1C,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QAE5C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,wBAAc,CAAC,EAAE;YACzB,OAAO,EAAE,iBAAiB;YAC1B,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;CACF,CAAA;AA/FoB,WAAW;IAD/B,IAAA,mBAAM,GAAE;qCAMqB,wBAAc;GALvB,WAAW,CA+F/B;kBA/FoB,WAAW;AAiGhC,IAAI,gBAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC"} \ No newline at end of file diff --git a/build/app/Services/CategoryService.js b/build/app/Services/CategoryService.js new file mode 100644 index 0000000..328b391 --- /dev/null +++ b/build/app/Services/CategoryService.js @@ -0,0 +1,134 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const HttpStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/HttpStatusEnum")); +const CategoryRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/CategoryRepository")); +const CourseRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/CourseRepository")); +const CourseService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/CourseService")); +let CategoryService = class CategoryService { + constructor(categoryRepository, courseRepository, courseService) { + Object.defineProperty(this, "categoryRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "courseRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "courseService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.categoryRepository = categoryRepository; + this.courseRepository = courseRepository; + this.courseService = courseService; + } + async fetchCategories() { + const data = await this.categoryRepository.getAll(); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched all categories.', + data, + }; + } + async fetchCategory(id) { + const data = await this.categoryRepository.getById(id); + if (!data) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Category not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched category.', + data, + }; + } + async createCategory(data) { + const category = await this.categoryRepository.create(data); + return { + success: true, + status: HttpStatusEnum_1.default.CREATED, + message: 'Category created.', + data: category, + }; + } + async deleteCategory(id) { + const data = await this.categoryRepository.getById(id); + if (!data) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Category not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const courses = await this.courseRepository.getByCategoryId(id); + await this.courseService.deleteAllFiles(courses); + await this.categoryRepository.delete(id); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Category deleted.', + data, + }; + } + async updateCategory(id, data) { + const category = await this.categoryRepository.update(id, data); + if (!category) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Category not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Category updated.', + data: category, + }; + } +}; +CategoryService = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [CategoryRepository_1.default, + CourseRepository_1.default, + CourseService_1.default]) +], CategoryService); +exports.default = CategoryService; +new standalone_1.Ioc().make(CategoryService); +//# sourceMappingURL=CategoryService.js.map \ No newline at end of file diff --git a/build/app/Services/CategoryService.js.map b/build/app/Services/CategoryService.js.map new file mode 100644 index 0000000..d2d0620 --- /dev/null +++ b/build/app/Services/CategoryService.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CategoryService.js","sourceRoot":"","sources":["../../../app/Services/CategoryService.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Services/CourseService.js b/build/app/Services/CourseService.js new file mode 100644 index 0000000..f094d96 --- /dev/null +++ b/build/app/Services/CourseService.js @@ -0,0 +1,564 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const RoleEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/RoleEnum")); +const HttpStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/HttpStatusEnum")); +const RoleHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/RoleHelper")); +const CourseRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/CourseRepository")); +const UserRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/UserRepository")); +const CategoryRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/CategoryRepository")); +const Drive_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Drive")); +const CourseHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/CourseHelper")); +let CourseService = class CourseService { + constructor(courseRepository, userRepository, categoryRepository) { + Object.defineProperty(this, "courseRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "userRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "categoryRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.courseRepository = courseRepository; + this.userRepository = userRepository; + this.categoryRepository = categoryRepository; + } + async fetchCourses(params) { + const data = await this.courseRepository.getAll(params); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched all courses.', + data, + }; + } + async fetchCourse(id) { + const data = await this.courseRepository.getById(id); + if (!data) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched course.', + data, + }; + } + async fetchCourseTeacher(id) { + const data = await this.courseRepository.getTeacher(id); + if (!data) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched course teacher.', + data, + }; + } + async fetchCourseCategory(id) { + const data = await this.courseRepository.getCategory(id); + if (!data) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched course category.', + data, + }; + } + async fetchCourseLessons(id, ctx) { + const user = await ctx.auth.use('api').authenticate(); + const data = await this.courseRepository.getLessons(id, user.id); + if (!data) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched course lessons.', + data, + }; + } + async fetchCourseStudents(id) { + const data = await this.courseRepository.getStudents(id); + if (!data) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched course students.', + data, + }; + } + async fetchStudentsCount(id) { + const count = await this.courseRepository.getStudentsCount(id); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched students count.', + data: { count }, + }; + } + async createCourse(data) { + const user = await this.userRepository.getById(data.teacher_id); + if (!user) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Teacher not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const isHasPermissions = RoleHelper_1.default.userContainRoles(user.roles, [RoleEnum_1.default.ADMIN, RoleEnum_1.default.TEACHER]); + if (!isHasPermissions) { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: `User with id "${user.id}" does not have sufficient permissions.`, + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + const category = await this.categoryRepository.getById(data.category_id); + if (!category) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Category not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const course = await this.courseRepository.create(data); + return { + success: true, + status: HttpStatusEnum_1.default.CREATED, + message: 'Course created.', + data: course, + }; + } + async deleteCourse(id) { + const course = await this.courseRepository.delete(id); + if (!course) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await this.deleteAllFiles([course]); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Course deleted.', + data: course, + }; + } + async updateCourse(id, data) { + const course = await this.courseRepository.getById(id); + if (!course) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + if (data.teacher_id) { + const teacher = await this.userRepository.getById(data.teacher_id); + if (!teacher) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Teacher not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await teacher.load('roles'); + const isTeacherOrAdmin = RoleHelper_1.default.userContainRoles(teacher.roles, [RoleEnum_1.default.ADMIN, RoleEnum_1.default.TEACHER]); + if (!isTeacherOrAdmin) { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: 'Author is not a teacher or admin.', + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + } + const updated = await this.courseRepository.update(id, data); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Course updated.', + data: updated || {}, + }; + } + async attachUserCourse(id, studentId) { + const course = await this.courseRepository.getById(id); + if (!course) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const student = await this.userRepository.getById(studentId); + if (!student) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Student not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const isStudent = RoleHelper_1.default.userHasRoles(student.roles, [RoleEnum_1.default.STUDENT]); + if (!isStudent) { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: `User cannot be added to the course without "${RoleEnum_1.default.STUDENT}" role.`, + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + try { + await course.related('students').attach([student.id]); + } + catch (error) { + if (error.code === '23505') { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: 'Student already attached to that course.', + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + throw new Error(error); + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Student attached.', + data: {}, + }; + } + async attachStudentList(id, ids) { + const course = await this.courseRepository.getById(id); + if (!course) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const students = await this.userRepository.getByIds(ids); + try { + await course.related('students').attach(students.map(s => s.id)); + } + catch (error) { + if (error.code === '23505') { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: 'Some student already attached to that course.', + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + throw new Error(error); + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Student list successfully attached.', + data: {}, + }; + } + async detachStudentList(id, ids) { + const course = await this.courseRepository.getById(id); + if (!course) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const students = await this.userRepository.getByIds(ids); + try { + await course.related('students').detach(students.map(s => s.id)); + } + catch (error) { + throw new Error(error); + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Student list successfully detached from course.', + data: {}, + }; + } + async detachUserCourse(id, studentId) { + const course = await this.courseRepository.getById(id); + if (!course) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const isAttached = course.students.find(student => student.id === studentId); + if (!isAttached) { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: 'Student not attached to that course.', + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + const student = await this.userRepository.getById(studentId); + if (!student) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Student not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await course.related('students').detach([student.id]); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Student detached.', + data: {}, + }; + } + async attachUserLike(id, auth) { + const user = await auth.use('api').authenticate(); + const course = await this.courseRepository.getById(id); + if (!course) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + try { + await course.related('likes').attach([user.id]); + } + catch (error) { + if (error.code === '23505') { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: 'You are already liked this course.', + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + throw new Error(error); + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Like attached.', + data: {}, + }; + } + async detachUserLike(id, auth) { + const user = await auth.use('api').authenticate(); + const course = await this.courseRepository.getById(id); + if (!course) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + try { + await course.related('likes').detach([user.id]); + } + catch (error) { + throw new Error(error); + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Like detached.', + data: {}, + }; + } + async setCourseStatus(id, status) { + const data = await this.courseRepository.setStatus(id, status); + if (!data) { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: `Cannot set status for course with id "${id}"`, + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Status changed.', + data: {}, + }; + } + async fetchCourseLikesCount(id) { + const count = await this.courseRepository.getLikesCount(id); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched course likes count.', + data: { count }, + }; + } + async deleteAllFiles(courses) { + const images = courses.map(course => CourseHelper_1.default.getImageFileName(course)).filter(Boolean); + const videos = courses.flatMap(course => CourseHelper_1.default.getVideoFileNames(course)).filter(Boolean); + const materials = courses.flatMap(course => CourseHelper_1.default.getMaterialFileNames(course)); + const promises = videos + .concat(images, materials) + .map(file => Drive_1.default.delete(`${file.path}${file.name.substring(file.name.lastIndexOf('/') + 1)}`)); + await Promise.all(promises); + } +}; +CourseService = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [CourseRepository_1.default, + UserRepository_1.default, + CategoryRepository_1.default]) +], CourseService); +exports.default = CourseService; +new standalone_1.Ioc().make(CourseService); +//# sourceMappingURL=CourseService.js.map \ No newline at end of file diff --git a/build/app/Services/CourseService.js.map b/build/app/Services/CourseService.js.map new file mode 100644 index 0000000..5412beb --- /dev/null +++ b/build/app/Services/CourseService.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CourseService.js","sourceRoot":"","sources":["../../../app/Services/CourseService.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Services/ImageService.js b/build/app/Services/ImageService.js new file mode 100644 index 0000000..6438cb7 --- /dev/null +++ b/build/app/Services/ImageService.js @@ -0,0 +1,93 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const HttpStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/HttpStatusEnum")); +const ImageRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/ImageRepository")); +let ImageService = class ImageService { + constructor(imageRepository) { + Object.defineProperty(this, "imageRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.imageRepository = imageRepository; + } + async fetchImages() { + const images = await this.imageRepository.getAll(); + return { + success: true, + message: 'Fetched all images.', + status: HttpStatusEnum_1.default.OK, + data: images, + }; + } + async fetchImage(id) { + const image = await this.imageRepository.getById(id); + if (!image) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Image not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + message: 'Fetched image.', + status: HttpStatusEnum_1.default.OK, + data: image, + }; + } + async createImage(data) { + const image = await this.imageRepository.create({ file: data.image, location: 'images' }); + return { + success: true, + message: 'Image created.', + status: HttpStatusEnum_1.default.OK, + data: image, + }; + } + async deleteImage(id) { + const image = await this.imageRepository.delete(id); + if (!image) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Image not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + message: 'Image deleted.', + status: HttpStatusEnum_1.default.OK, + data: image, + }; + } +}; +ImageService = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [ImageRepository_1.default]) +], ImageService); +exports.default = ImageService; +new standalone_1.Ioc().make(ImageService); +//# sourceMappingURL=ImageService.js.map \ No newline at end of file diff --git a/build/app/Services/ImageService.js.map b/build/app/Services/ImageService.js.map new file mode 100644 index 0000000..6be6bec --- /dev/null +++ b/build/app/Services/ImageService.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ImageService.js","sourceRoot":"","sources":["../../../app/Services/ImageService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gEAA8D;AAC9D,8GAAgE;AAEhE,6GAA+D;AAI/D,IAAqB,YAAY,GAAjC,MAAqB,YAAY;IAG/B,YAAY,eAAgC;QAF5C;;;;;WAAyC;QAGvC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;QAEnD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,qBAAqB;YAC9B,MAAM,EAAE,wBAAc,CAAC,EAAE;YACzB,IAAI,EAAE,MAAM;SACb,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,EAAU;QAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAErD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,wBAAc,CAAC,SAAS;gBAChC,OAAO,EAAE,kBAAkB;gBAC3B,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE;oBACL,IAAI,EAAE,aAAa;iBACpB;aACF,CAAC;SACH;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,gBAAgB;YACzB,MAAM,EAAE,wBAAc,CAAC,EAAE;YACzB,IAAI,EAAE,KAAK;SACZ,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,IAA6C;QACpE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE1F,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,gBAAgB;YACzB,MAAM,EAAE,wBAAc,CAAC,EAAE;YACzB,IAAI,EAAE,KAAK;SACZ,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,EAAU;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,wBAAc,CAAC,SAAS;gBAChC,OAAO,EAAE,kBAAkB;gBAC3B,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE;oBACL,IAAI,EAAE,aAAa;iBACpB;aACF,CAAC;SACH;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,gBAAgB;YACzB,MAAM,EAAE,wBAAc,CAAC,EAAE;YACzB,IAAI,EAAE,KAAK;SACZ,CAAC;IACJ,CAAC;CACF,CAAA;AA1EoB,YAAY;IADhC,IAAA,mBAAM,GAAE;qCAIsB,yBAAe;GAHzB,YAAY,CA0EhC;kBA1EoB,YAAY;AA4EjC,IAAI,gBAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC"} \ No newline at end of file diff --git a/build/app/Services/LessonService.js b/build/app/Services/LessonService.js new file mode 100644 index 0000000..2fc3afa --- /dev/null +++ b/build/app/Services/LessonService.js @@ -0,0 +1,258 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const Database_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Database")); +const HttpStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/HttpStatusEnum")); +const CourseRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/CourseRepository")); +const LessonProgressRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/LessonProgressRepository")); +const LessonRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/LessonRepository")); +let LessonService = class LessonService { + constructor(courseRepository, lessonRepository, lessonProgressRepository) { + Object.defineProperty(this, "courseRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lessonRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "lessonProgressRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.courseRepository = courseRepository; + this.lessonRepository = lessonRepository; + this.lessonProgressRepository = lessonProgressRepository; + } + async fetchLessons() { + const lessons = await this.lessonRepository.getAll(); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched all lessons.', + data: lessons, + }; + } + async fetchLesson(id, ctx) { + const lesson = await this.lessonRepository.getById(id); + if (!lesson) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Lesson not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await ctx.bouncer.with('LessonPolicy').authorize('view', lesson); + await lesson.load(loader => loader.load('content').load('materials').load('video')); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched lesson.', + data: lesson, + }; + } + async fetchMaterialFile(ctx, name) { + const material = await this.lessonRepository.getMaterialFileByName(name); + if (!material) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + data: {}, + message: 'Material not found.', + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await material.load('lesson'); + await ctx.bouncer.with('LessonPolicy').authorize('view', material.lesson); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched lesson material.', + data: material, + }; + } + async fetchVideoFile(ctx, name) { + const video = await this.lessonRepository.getVideoFileByName(name); + if (!video) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + data: {}, + message: 'Video not found.', + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await video.load('lesson'); + await ctx.bouncer.with('LessonPolicy').authorize('view', video.lesson); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched lesson video.', + data: video, + }; + } + async fetchLessonProgress(id, ctx) { + const user = await ctx.auth.use('api').authenticate(); + const lesson = await this.lessonRepository.getById(id); + if (!lesson) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Lesson not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await ctx.bouncer.with('LessonPolicy').authorize('view', lesson); + const progress = await this.lessonProgressRepository.get(user.id, lesson.id); + if (!progress) { + await this.lessonProgressRepository.create({ user_id: user.id, lesson_id: lesson.id, is_watched: true }); + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched lesson progress', + data: { + progress, + }, + }; + } + async createLesson(data) { + const course = await this.courseRepository.getByIdWithoutRelations(data.course_id); + if (!course) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Course not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const lesson = await this.lessonRepository.create(course, data); + return { + success: true, + status: HttpStatusEnum_1.default.CREATED, + message: 'Lesson created.', + data: lesson, + }; + } + async deleteLesson(id) { + const lesson = await this.lessonRepository.delete(id); + if (!lesson) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Lesson not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Lesson deleted.', + data: lesson, + }; + } + async updateLesson(id, data) { + const lesson = await this.lessonRepository.update(id, data); + if (!lesson) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Lesson not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Lesson updated.', + data: lesson, + }; + } + async fetchLessonContent(id, ctx) { + const lesson = await this.lessonRepository.getById(id); + if (!lesson) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Lesson not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await ctx.bouncer.with('LessonPolicy').authorize('view', lesson); + await lesson.load(loader => loader.load('content').load('materials')); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched lesson content.', + data: lesson.content, + }; + } + async updateOrder(ids) { + const params = ids + .map((id, i) => ({ id, i: i + 1 })) + .reduce((result, { id, i }) => result.concat(id, i), []); + const query = ` + UPDATE lessons + SET display_order = t.display_order + FROM (VALUES ${ids.map(() => `(?, ??)`).join(',')}) as t(id, display_order) + WHERE t.id = lessons.id + `; + await Database_1.default.rawQuery(query, params); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Order updated.', + data: {}, + }; + } +}; +LessonService = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [CourseRepository_1.default, + LessonRepository_1.default, + LessonProgressRepository_1.default]) +], LessonService); +exports.default = LessonService; +new standalone_1.Ioc().make(LessonService); +//# sourceMappingURL=LessonService.js.map \ No newline at end of file diff --git a/build/app/Services/LessonService.js.map b/build/app/Services/LessonService.js.map new file mode 100644 index 0000000..9b7c0ef --- /dev/null +++ b/build/app/Services/LessonService.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LessonService.js","sourceRoot":"","sources":["../../../app/Services/LessonService.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Services/MeService.js b/build/app/Services/MeService.js new file mode 100644 index 0000000..8de2ab1 --- /dev/null +++ b/build/app/Services/MeService.js @@ -0,0 +1,268 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const Redis_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Addons/Redis")); +const Mail_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Addons/Mail")); +const Hash_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Hash")); +const Logger_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Logger")); +const RoleEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/RoleEnum")); +const HttpStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/HttpStatusEnum")); +const CodeErrorEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/CodeErrorEnum")); +const ContactRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/ContactRepository")); +const UserRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/UserRepository")); +const RoleHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/RoleHelper")); +const WsService_1 = __importDefault(require("./WsService")); +let MeService = class MeService { + constructor(userRepository, contactRepository) { + Object.defineProperty(this, "userRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "contactRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "authGuard", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.userRepository = userRepository; + this.contactRepository = contactRepository; + } + async fetchUserData(auth) { + const user = await auth.use(this.authGuard).authenticate(); + await user.load(loader => { + loader + .load('roles') + .load('contacts') + .load('likes', q => q.select('id')); + }); + if (RoleHelper_1.default.userHasRoles(user.roles, [RoleEnum_1.default.STUDENT])) { + await user.load('courses', q => { + q.preload('category', loader => loader.preload('color')); + q.withCount('students'); + q.withCount('likes'); + q.withCount('lessons'); + }); + } + const notifications = await WsService_1.default.notificationStore.getNotifications(user.id); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched authorized user data.', + data: { + ...user.toJSON(), + notifications, + }, + }; + } + async changeUserPassword(oldPassword, newPassword, auth) { + const user = await auth.use(this.authGuard).authenticate(); + if (!(await Hash_1.default.verify(user.password, oldPassword))) { + return { + success: false, + status: HttpStatusEnum_1.default.UNAUTHORIZED, + message: 'Invalid credentials.', + data: {}, + error: { + code: 'E_INVALID_CREDENTIALS', + }, + }; + } + const passwordUpdated = await this.userRepository.updatePassword(newPassword, user.id); + if (passwordUpdated) { + Logger_1.default.info(`Password of user with id: "${user.id}" was updated.`); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Password updated.', + data: {}, + }; + } + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: 'Unable to change password', + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + static async changeUserEmail(email) { + const isConfirmationCodeExist = await Redis_1.default.get(`code.change.email:${email}`); + if (isConfirmationCodeExist) { + return { + success: false, + status: HttpStatusEnum_1.default.SERVICE_UNAVAILABLE, + message: 'Please wait a few seconds before send new confirmation code.', + data: {}, + error: { + code: CodeErrorEnum_1.default.CONFIRM_CODE_EXIST, + }, + }; + } + const EXPIRE_SECONDS = 120; + const confirmationCode = Math.floor(1000 + Math.random() * 9000).toString(); + try { + await Mail_1.default.send(message => { + message.to(email).subject('Confirmation code.').htmlView('emails/change_email_confirm', { confirmationCode }); + }); + } + catch (error) { + Logger_1.default.error(`Email send error: ${error}`); + return { + success: false, + status: HttpStatusEnum_1.default.SERVICE_UNAVAILABLE, + message: 'Unable send confirmation code.', + data: { + error, + }, + error: { + code: 'E_SERVICE_UNAVAILABLE', + }, + }; + } + await Redis_1.default.set(`code.change.email:${email}`, confirmationCode, 'EX', EXPIRE_SECONDS); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'The confirmation code has been sent.', + data: { + expired_seconds: EXPIRE_SECONDS, + }, + }; + } + static async changeUserEmailConfirm(ctx, email, code) { + const user = await ctx.auth.use('api').authenticate(); + const confirmationCode = await Redis_1.default.get(`code.change.email:${email}`); + if (confirmationCode === null) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Cannot find the confirmation code for this email.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + if (Number.parseInt(confirmationCode, 10) !== code) { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: 'Confirmation code is invalid.', + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + await user.merge({ email }).save(); + await Redis_1.default.del(`code.change.email:${email}`); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'User email updated.', + data: { email }, + }; + } + async updateUserContacts(data, auth) { + const user = await auth.use(this.authGuard).authenticate(); + const contacts = await this.contactRepository.update(user, data); + if (contacts) { + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'User contacts updated.', + data: contacts, + }; + } + await this.contactRepository.create(user, data); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'User contacts updated.', + data: user.contacts, + }; + } + async updateUserInfo(data, auth) { + const user = await auth.use(this.authGuard).authenticate(); + const { about, ...newContacts } = data; + if (Object.keys(data).length === 0) { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: 'You must specify at least one field.', + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + if (about !== undefined) { + await this.userRepository.updateInfo(user.id, data); + } + if (data.phone_number !== undefined || data.twitter_id !== undefined || data.telegram_id !== undefined) { + const contacts = await this.contactRepository.update(user, newContacts); + if (!contacts) { + await this.contactRepository.create(user, newContacts); + } + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'User contacts updated.', + data: { ...data }, + }; + } + async fetchChatHistory(chatId, auth) { + const firstUser = await auth.use(this.authGuard).authenticate(); + const secondUser = await this.userRepository.getById(chatId); + if (!secondUser) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Chat not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const history = await WsService_1.default.messageStore.getHistory(firstUser.id, secondUser.id); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Chat history fetched.', + data: { + history, + }, + }; + } +}; +MeService = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [UserRepository_1.default, ContactRepository_1.default]) +], MeService); +exports.default = MeService; +new standalone_1.Ioc().make(MeService); +//# sourceMappingURL=MeService.js.map \ No newline at end of file diff --git a/build/app/Services/MeService.js.map b/build/app/Services/MeService.js.map new file mode 100644 index 0000000..e456d98 --- /dev/null +++ b/build/app/Services/MeService.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MeService.js","sourceRoot":"","sources":["../../../app/Services/MeService.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Services/StatService.js b/build/app/Services/StatService.js new file mode 100644 index 0000000..a2dafe6 --- /dev/null +++ b/build/app/Services/StatService.js @@ -0,0 +1,39 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const HttpStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/HttpStatusEnum")); +const Database_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Database")); +const WsService_1 = __importDefault(require("./WsService")); +let StatService = class StatService { + async fetchStatData() { + const count = await Database_1.default.rawQuery(` + select (select count(*) from courses) as courses_count, + (select count(*) from lessons) as lessons_count + `); + const online = await WsService_1.default.sessionStore.getOnlineSessions(); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched stat.', + data: { + ...count.rows[0], + online: online.length, + }, + }; + } +}; +StatService = __decorate([ + (0, standalone_1.inject)() +], StatService); +exports.default = StatService; +new standalone_1.Ioc().make(StatService); +//# sourceMappingURL=StatService.js.map \ No newline at end of file diff --git a/build/app/Services/StatService.js.map b/build/app/Services/StatService.js.map new file mode 100644 index 0000000..b2d332e --- /dev/null +++ b/build/app/Services/StatService.js.map @@ -0,0 +1 @@ +{"version":3,"file":"StatService.js","sourceRoot":"","sources":["../../../app/Services/StatService.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,gEAA8D;AAE9D,8GAAgE;AAChE,2FAAkD;AAClD,4DAA6B;AAG7B,IAAqB,WAAW,GAAhC,MAAqB,WAAW;IAOvB,KAAK,CAAC,aAAa;QACxB,MAAM,KAAK,GAAG,MAAM,kBAAQ,CAAC,QAAQ,CACnC;;;OAGC,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,mBAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;QAEzD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,wBAAc,CAAC,EAAE;YACzB,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE;gBACJ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA3BoB,WAAW;IAD/B,IAAA,mBAAM,GAAE;GACY,WAAW,CA2B/B;kBA3BoB,WAAW;AA6BhC,IAAI,gBAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC"} \ No newline at end of file diff --git a/build/app/Services/UserService.js b/build/app/Services/UserService.js new file mode 100644 index 0000000..11029b0 --- /dev/null +++ b/build/app/Services/UserService.js @@ -0,0 +1,264 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const HttpStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/HttpStatusEnum")); +const RoleRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/RoleRepository")); +const UserRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/UserRepository")); +const CourseService_1 = __importDefault(require("./CourseService")); +const RoleEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/RoleEnum")); +const RoleHelper_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Helpers/RoleHelper")); +const CourseRepository_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Repositories/CourseRepository")); +let UserService = class UserService { + constructor(userRepository, roleRepository, courseRepository, courseService) { + Object.defineProperty(this, "userRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "roleRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "courseRepository", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "courseService", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.userRepository = userRepository; + this.roleRepository = roleRepository; + this.courseRepository = courseRepository; + this.courseService = courseService; + } + async fetchUser(id) { + const user = await this.userRepository.getById(id); + if (!user) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'User not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched user.', + data: user, + }; + } + async fetchUsers(params) { + const users = await this.userRepository.getAll(params); + const result = { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Fetched all users.', + data: {}, + }; + if (users instanceof Array) { + result.data = users; + return result; + } + result.data = users.data; + result.meta = { + pagination: users.meta, + }; + return result; + } + async createUser(data, ctx) { + const role = await this.roleRepository.getBySlug(data.role); + if (!role) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'Role not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await ctx.bouncer.with('RolePolicy').authorize('manage', [role.slug]); + const user = await this.userRepository.create(data); + await user.related('roles').attach([role.id]); + await user.load('roles'); + return { + success: true, + status: HttpStatusEnum_1.default.CREATED, + message: 'User created.', + data: user, + }; + } + async updateUser(id, data, ctx) { + const user = await this.userRepository.getById(id); + if (!user) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'User not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await ctx.bouncer.with('RolePolicy').authorize('manage', user.roles.map(r => r.slug)); + if (data.role) { + const role = await this.roleRepository.getBySlug(data.role); + if (role) { + await ctx.bouncer.with('RolePolicy').authorize('manage', [data.role]); + await this.userRepository.updateRoles(user, [role]); + } + } + const updated = await this.userRepository.update(id, data); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'User updated.', + data: updated || {}, + }; + } + async deleteUser(id, ctx) { + const user = await this.userRepository.getById(id); + if (!user) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'User not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + await ctx.bouncer.with('RolePolicy').authorize('manage', user.roles.map(r => r.slug)); + if (RoleHelper_1.default.userContainRoles(user.roles, [RoleEnum_1.default.TEACHER, RoleEnum_1.default.ADMIN])) { + const courses = await this.courseRepository.getByTeacherId(id); + await this.courseService.deleteAllFiles(courses); + } + await this.userRepository.delete(id); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'User deleted.', + data: user, + }; + } + async attachRolesToUser(id, input) { + const user = await this.userRepository.getById(id); + if (!user) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'User not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const roles = await this.roleRepository.getAll({ roles: input }); + let attachedRole; + roles.some(inputRole => { + const existed = user.roles.find(role => role.slug === inputRole.slug); + if (existed) { + attachedRole = inputRole; + return true; + } + return false; + }); + if (attachedRole) { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: `Role "${attachedRole.name}" already attached to that user.`, + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + await user.related('roles').attach([...roles.map(r => r.id)]); + await user.load('roles'); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Roles attached.', + data: user.roles, + }; + } + async detachRolesFromUser(id, input) { + const user = await this.userRepository.getById(id); + if (!user) { + return { + success: false, + status: HttpStatusEnum_1.default.NOT_FOUND, + message: 'User not found.', + data: {}, + error: { + code: 'E_NOT_FOUND', + }, + }; + } + const roles = await this.roleRepository.getAll({ roles: input }); + let notAttachedRole; + roles.forEach(role => { + if (!user.roles.map(r => r.id).includes(role.id)) { + notAttachedRole = role; + } + }); + if (notAttachedRole) { + return { + success: false, + status: HttpStatusEnum_1.default.BAD_REQUEST, + message: `Role "${notAttachedRole.name}" not attached to that user.`, + data: {}, + error: { + code: 'E_BAD_REQUEST', + }, + }; + } + await user.related('roles').detach([...roles.map(r => r.id)]); + await user.load('roles'); + return { + success: true, + status: HttpStatusEnum_1.default.OK, + message: 'Roles detached.', + data: user.roles, + }; + } +}; +UserService = __decorate([ + (0, standalone_1.inject)(), + __metadata("design:paramtypes", [UserRepository_1.default, + RoleRepository_1.default, + CourseRepository_1.default, + CourseService_1.default]) +], UserService); +exports.default = UserService; +new standalone_1.Ioc().make(UserService); +//# sourceMappingURL=UserService.js.map \ No newline at end of file diff --git a/build/app/Services/UserService.js.map b/build/app/Services/UserService.js.map new file mode 100644 index 0000000..d3fbe2b --- /dev/null +++ b/build/app/Services/UserService.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../../app/Services/UserService.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Services/WsService.js b/build/app/Services/WsService.js new file mode 100644 index 0000000..df2dde5 --- /dev/null +++ b/build/app/Services/WsService.js @@ -0,0 +1,108 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const socket_io_1 = require("socket.io"); +const Redis_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Addons/Redis")); +const Server_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Server")); +const luxon_1 = require("luxon"); +const OnlineController_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Controllers/Ws/OnlineController")); +const Auth_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Middleware/Ws/Auth")); +const SessionStore_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Store/SessionStore")); +const MessageStore_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Store/MessageStore")); +const NotificationStore_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Store/NotificationStore")); +class WsService { + constructor() { + Object.defineProperty(this, "io", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "sessionStore", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "messageStore", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "notificationStore", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "booted", { + enumerable: true, + configurable: true, + writable: true, + value: false + }); + } + boot() { + if (this.booted) { + return; + } + this.booted = true; + this.io = new socket_io_1.Server(Server_1.default.instance, { + cors: { + origin: 'http://localhost:3000', + credentials: true, + }, + }); + this.sessionStore = new SessionStore_1.default(Redis_1.default.connection('session')); + this.messageStore = new MessageStore_1.default(Redis_1.default.connection('message')); + this.notificationStore = new NotificationStore_1.default(Redis_1.default.connection('notification')); + this.sessionStore.destroyAllSessions().then(() => { + this.setupMiddlewares(); + this.listen(); + }); + } + listen() { + this.io.on('connection', async (socket) => { + const onlineController = new OnlineController_1.default(socket, this.io, this.sessionStore); + onlineController.handle(); + const { sessionId, userId, userName } = socket.data; + const isExistSocketData = !!(sessionId && userId && userName); + if (isExistSocketData) { + socket.join(userId); + } + socket.emit('user:session', { sessionId: socket.data.sessionId, userId: socket.data.userId }); + socket.on('chat:message', async ({ content, to }) => { + if (isExistSocketData) { + const message = { + content, + from: userId, + to, + time: luxon_1.DateTime.now().toISO(), + }; + await this.messageStore.add(userId, to, message); + if (userId !== to) { + const notification = await this.notificationStore.add(to, `You received a new private message`, 'MESSAGE'); + this.io.to(to).emit('chat:message', { ...message, notificationId: notification.id }); + } + else { + this.io.to(to).emit('chat:message', { ...message }); + } + } + }); + socket.on('notification:read', data => this.notificationStore.del(data.userId, data.ids)); + socket.on('user:logout', async () => { + if (isExistSocketData) { + await this.sessionStore.destroySession(sessionId); + } + }); + }); + } + setupMiddlewares() { + this.io.use(Auth_1.default.authenticate); + } +} +exports.default = new WsService(); +//# sourceMappingURL=WsService.js.map \ No newline at end of file diff --git a/build/app/Services/WsService.js.map b/build/app/Services/WsService.js.map new file mode 100644 index 0000000..79ff1a9 --- /dev/null +++ b/build/app/Services/WsService.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WsService.js","sourceRoot":"","sources":["../../../app/Services/WsService.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Store/MessageStore.js b/build/app/Store/MessageStore.js new file mode 100644 index 0000000..bc91177 --- /dev/null +++ b/build/app/Store/MessageStore.js @@ -0,0 +1,85 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Logger_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Logger")); +const User_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/User")); +const luxon_1 = require("luxon"); +const nanoid_1 = require("nanoid"); +const MESSAGE_TTL = 185 * 24 * 60 * 60; +const MAX_MESSAGES_HISTORY = 100; +class RedisMessageStore { + constructor(redisClient) { + Object.defineProperty(this, "redisClient", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.redisClient = redisClient; + } + async add(firstUserId, secondUserId, data) { + try { + const msgId = (0, nanoid_1.nanoid)(); + const msgKey = `${firstUserId}:${msgId}`; + const key = `message:${msgKey}`; + await this.redisClient + .multi() + .hmset(key, { + from: data.from, + to: data.to, + content: data.content, + time: luxon_1.DateTime.now().toISO(), + }) + .expire(key, MESSAGE_TTL) + .exec(); + const convKey = this.createConversationKey(firstUserId, secondUserId); + const msgKeys = await this.redisClient.lrange(convKey, 0, -1); + await this.redisClient.lpush(convKey, msgKey); + if (msgKeys.length >= MAX_MESSAGES_HISTORY) { + const deletedMsgKey = await this.redisClient.rpop(convKey); + await this.redisClient.del(`message:${deletedMsgKey}`); + } + return 'OK'; + } + catch (error) { + Logger_1.default.error(error); + return 'ERROR'; + } + } + async getHistory(firstUserId, secondUserId) { + const convKey = this.createConversationKey(firstUserId, secondUserId); + const msgKeys = await this.redisClient.lrange(convKey, 0, -1); + const messages = await Promise.all(msgKeys.map(key => `message:${key}`).map(key => this.getMessage(key))); + return messages.sort((m1, m2) => new Date(m1.time).valueOf() - new Date(m2.time).valueOf()); + } + async getConversations(userId) { + const conversations = await this.redisClient.keys(`conversation:*${userId}*`); + const userIds = conversations + .map(id => id.split(':')[1]) + .map(id => (userId !== id.split('&')[0] ? id.split('&')[0] : id.split('&')[1])); + const users = await User_1.default.query().select('id', 'first_name', 'last_name').where('id', 'in', userIds); + const result = await Promise.all(users.map(async (u) => { + const convKey = this.createConversationKey(userId, u.id); + const msgKey = await this.redisClient.lindex(convKey, 0); + const lastMessage = await this.getMessage(`message:${msgKey}`); + return { + userId: u.id, + fullname: `${u.first_name} ${u.last_name}`, + lastMessage, + }; + })); + return result; + } + async getMessage(key) { + const message = (await this.redisClient.hgetall(key)); + return message; + } + createConversationKey(userId1, userId2) { + const [id1, id2] = [userId1, userId2].sort(); + return `conversation:${id1}&${id2}`; + } +} +exports.default = RedisMessageStore; +//# sourceMappingURL=MessageStore.js.map \ No newline at end of file diff --git a/build/app/Store/MessageStore.js.map b/build/app/Store/MessageStore.js.map new file mode 100644 index 0000000..e52b1c2 --- /dev/null +++ b/build/app/Store/MessageStore.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MessageStore.js","sourceRoot":"","sources":["../../../app/Store/MessageStore.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/app/Store/NotificationStore.js b/build/app/Store/NotificationStore.js new file mode 100644 index 0000000..4b4643a --- /dev/null +++ b/build/app/Store/NotificationStore.js @@ -0,0 +1,58 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Logger_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Logger")); +const nanoid_1 = require("nanoid"); +const NOTIFICATION_TTL = 185 * 24 * 60 * 60; +class RedisNotificationStore { + constructor(redisClient) { + Object.defineProperty(this, "redisClient", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.redisClient = redisClient; + } + async add(userId, content, type) { + try { + const id = (0, nanoid_1.nanoid)(); + const key = `notification:${id}`; + const timestamp = Date.now(); + const notification = { + id, + content, + time: new Date(timestamp).toISOString(), + type, + }; + await this.redisClient.zadd(`user:${userId}`, timestamp, key); + await this.redisClient.multi().hmset(key, notification).expire(key, NOTIFICATION_TTL).exec(); + return notification; + } + catch (error) { + Logger_1.default.error(error); + return Promise.reject(error); + } + } + async getNotifications(userId) { + const keys = await this.redisClient.zrevrangebyscore(`user:${userId}`, '+inf', '-inf'); + const notifications = await Promise.all(keys.map(key => this.get(key))); + return notifications; + } + async get(key) { + const notification = (await this.redisClient.hgetall(key)); + return notification; + } + async del(userId, keys) { + if (keys.length === 0) + return 0; + const k = keys.map(v => `notification:${v}`); + const count = await this.redisClient.zrem(`user:${userId}`, k); + await this.redisClient.del(k); + return count; + } +} +exports.default = RedisNotificationStore; +//# sourceMappingURL=NotificationStore.js.map \ No newline at end of file diff --git a/build/app/Store/NotificationStore.js.map b/build/app/Store/NotificationStore.js.map new file mode 100644 index 0000000..0ea0e6e --- /dev/null +++ b/build/app/Store/NotificationStore.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationStore.js","sourceRoot":"","sources":["../../../app/Store/NotificationStore.ts"],"names":[],"mappings":";;;;;AACA,sFAA6C;AAC7C,mCAAgC;AAEhC,MAAM,gBAAgB,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAS5C,MAAM,sBAAsB;IAG1B,YAAY,WAAoC;QAFhD;;;;;WAA4C;QAG1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,IAA8B;QAC9E,IAAI;YACF,MAAM,EAAE,GAAG,IAAA,eAAM,GAAE,CAAC;YACpB,MAAM,GAAG,GAAG,gBAAgB,EAAE,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG;gBACnB,EAAE;gBACF,OAAO;gBACP,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;gBACvC,IAAI;aACL,CAAC;YAEF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;YAE7F,OAAO,YAAY,CAAC;SACrB;QAAC,OAAO,KAAK,EAAE;YACd,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAc;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxE,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,GAAW;QAC3B,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAqB,CAAC;QAC/E,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,IAAc;QAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEhC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE9B,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,kBAAe,sBAAsB,CAAC"} \ No newline at end of file diff --git a/build/app/Store/SessionStore.js b/build/app/Store/SessionStore.js new file mode 100644 index 0000000..3140246 --- /dev/null +++ b/build/app/Store/SessionStore.js @@ -0,0 +1,94 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const SESSION_TTL = 24 * 60 * 60; +class RedisSessionStore { + constructor(redisClient) { + Object.defineProperty(this, "redisClient", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.redisClient = redisClient; + } + transform(values) { + const [userId, userName, connected] = values; + if (!userId || !userName || !connected) + return undefined; + return { + userId, + userName, + connected: connected === 'true', + }; + } + async scanSessionKeys() { + const keys = new Set(); + let nextIndex = 0; + do { + const [nextIndexAsStr, result] = await this.redisClient.scan(nextIndex, 'MATCH', '*', 'COUNT', 100); + nextIndex = parseInt(nextIndexAsStr, 10); + result.forEach(s => keys.add(s)); + } while (nextIndex !== 0); + return keys; + } + async findSession(id) { + const values = await this.redisClient.hmget(id, 'userId', 'userName', 'connected'); + return this.transform(values); + } + async getSessions() { + const keys = await this.scanSessionKeys(); + const commands = Array.from(keys).map(key => { + const [, ...id] = key.split('-'); + return ['hmget', id.join('-'), 'userId', 'userName', 'connected']; + }); + return this.redisClient + .multi(commands) + .exec() + .then(results => { + if (results === null) + return []; + return results.map(([err, session]) => (err ? undefined : this.transform(session))); + }); + } + async getOnlineSessions() { + const sessions = await this.getSessions(); + const online = new Map(); + sessions.forEach(s => { + if (s?.connected === true) { + online.set(s.userId, s); + } + }); + return Array.from(online); + } + async saveSession(id, data) { + await this.redisClient + .multi() + .hmset(id, { + userId: data.userId, + userName: data.userName, + connected: data.connected, + }) + .expire(id, SESSION_TTL) + .exec(); + } + async destroySession(id) { + const session = await this.findSession(id); + if (session) { + return this.redisClient.del(id); + } + return 0; + } + async destroyAllSessions() { + const keys = await this.scanSessionKeys().then(values => Array.from(values).map(v => { + const [, ...key] = v.split('-'); + return key.join('-'); + })); + if (keys.length > 0) { + const deleted = await this.redisClient.del(keys); + return deleted; + } + return 0; + } +} +exports.default = RedisSessionStore; +//# sourceMappingURL=SessionStore.js.map \ No newline at end of file diff --git a/build/app/Store/SessionStore.js.map b/build/app/Store/SessionStore.js.map new file mode 100644 index 0000000..fd3d4b0 --- /dev/null +++ b/build/app/Store/SessionStore.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SessionStore.js","sourceRoot":"","sources":["../../../app/Store/SessionStore.ts"],"names":[],"mappings":";;AAKA,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEjC,MAAM,iBAAiB;IAGrB,YAAY,WAAoC;QAFhD;;;;;WAA4C;QAG1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAGO,SAAS,CAAC,MAAyB;QACzC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;QAE7C,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEzD,OAAO;YACL,MAAM;YACN,QAAQ;YACR,SAAS,EAAE,SAAS,KAAK,MAAM;SAChC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,GAAG;YAED,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACpG,SAAS,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC,QAAQ,SAAS,KAAK,CAAC,EAAE;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IAQM,KAAK,CAAC,WAAW,CAAC,EAAU;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAKM,KAAK,CAAC,WAAW;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1C,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW;aACpB,KAAK,CAAC,QAAQ,CAAC;aACf,IAAI,EAAE;aACN,IAAI,CAAC,OAAO,CAAC,EAAE;YACd,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAA6B,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClH,CAAC,CAAC,CAAC;IACP,CAAC;IAKM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgD,CAAC;QAEvE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,IAAI,CAAC,EAAE,SAAS,KAAK,IAAI,EAAE;gBACzB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAQM,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,IAAqB;QACxD,MAAM,IAAI,CAAC,WAAW;aACnB,KAAK,EAAE;aACP,KAAK,CAAC,EAAE,EAAE;YACT,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;aACD,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC;aACvB,IAAI,EAAE,CAAC;IACZ,CAAC;IAOM,KAAK,CAAC,cAAc,CAAC,EAAU;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAE3C,IAAI,OAAO,EAAE;YACX,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACjC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAOM,KAAK,CAAC,kBAAkB;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACtD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACzB,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,OAAO,CAAC;SAChB;QAED,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAED,kBAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/build/app/Utils/index.js b/build/app/Utils/index.js new file mode 100644 index 0000000..3533bab --- /dev/null +++ b/build/app/Utils/index.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.generateRandomInt = void 0; +const generateRandomInt = ({ min, max }) => { + return Math.floor(Math.random() * (max - min + 1) + min); +}; +exports.generateRandomInt = generateRandomInt; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/app/Utils/index.js.map b/build/app/Utils/index.js.map new file mode 100644 index 0000000..583a7b0 --- /dev/null +++ b/build/app/Utils/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../app/Utils/index.ts"],"names":[],"mappings":";;;AACO,MAAM,iBAAiB,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAgC,EAAU,EAAE;IACtF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC3D,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"} \ No newline at end of file diff --git a/build/app/Validators/Auth/AuthValidator.js b/build/app/Validators/Auth/AuthValidator.js new file mode 100644 index 0000000..a8a90a7 --- /dev/null +++ b/build/app/Validators/Auth/AuthValidator.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class AuthValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + login: Validator_1.schema.string(), + password: Validator_1.schema.string(), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = AuthValidator; +//# sourceMappingURL=AuthValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Auth/AuthValidator.js.map b/build/app/Validators/Auth/AuthValidator.js.map new file mode 100644 index 0000000..a494af0 --- /dev/null +++ b/build/app/Validators/Auth/AuthValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AuthValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Auth/AuthValidator.ts"],"names":[],"mappings":";;AAAA,2EAAoD;AAGpD,MAAqB,aAAa;IAChC,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,kBAAM,CAAC,MAAM,EAAE;gBACtB,QAAQ,EAAE,kBAAM,CAAC,MAAM,EAAE;aAC1B,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAP4B,CAAC;CAQnD;AATD,gCASC"} \ No newline at end of file diff --git a/build/app/Validators/Category/CreateCategoryValidator.js b/build/app/Validators/Category/CreateCategoryValidator.js new file mode 100644 index 0000000..62c03c4 --- /dev/null +++ b/build/app/Validators/Category/CreateCategoryValidator.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class CreateCategoryValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + title: Validator_1.schema.string(), + description: Validator_1.schema.string.optional(), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = CreateCategoryValidator; +//# sourceMappingURL=CreateCategoryValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Category/CreateCategoryValidator.js.map b/build/app/Validators/Category/CreateCategoryValidator.js.map new file mode 100644 index 0000000..99d31f0 --- /dev/null +++ b/build/app/Validators/Category/CreateCategoryValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CreateCategoryValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Category/CreateCategoryValidator.ts"],"names":[],"mappings":";;AAAA,2EAAoD;AAGpD,MAAqB,uBAAuB;IAC1C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,kBAAM,CAAC,MAAM,EAAE;gBACtB,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;aACtC,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAP4B,CAAC;CAQnD;AATD,0CASC"} \ No newline at end of file diff --git a/build/app/Validators/Category/UpdateCategoryValidator.js b/build/app/Validators/Category/UpdateCategoryValidator.js new file mode 100644 index 0000000..c2b7804 --- /dev/null +++ b/build/app/Validators/Category/UpdateCategoryValidator.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class UpdateCategoryValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + title: Validator_1.schema.string.optional(), + description: Validator_1.schema.string.nullableAndOptional(), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = UpdateCategoryValidator; +//# sourceMappingURL=UpdateCategoryValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Category/UpdateCategoryValidator.js.map b/build/app/Validators/Category/UpdateCategoryValidator.js.map new file mode 100644 index 0000000..080e63a --- /dev/null +++ b/build/app/Validators/Category/UpdateCategoryValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UpdateCategoryValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Category/UpdateCategoryValidator.ts"],"names":[],"mappings":";;AAAA,2EAAoD;AAGpD,MAAqB,uBAAuB;IAC1C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC/B,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE;aACjD,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAP4B,CAAC;CAQnD;AATD,0CASC"} \ No newline at end of file diff --git a/build/app/Validators/Contacts/CreateContactsValidator.js b/build/app/Validators/Contacts/CreateContactsValidator.js new file mode 100644 index 0000000..ed18ae7 --- /dev/null +++ b/build/app/Validators/Contacts/CreateContactsValidator.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class CreateContactsValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + phone_number: Validator_1.schema.string.nullableAndOptional({}, [ + Validator_1.rules.mobile({ + locale: ['ru-RU', 'en-US'], + strict: true, + }), + ]), + vk_id: Validator_1.schema.string.nullableAndOptional({}, [Validator_1.rules.regex(/^[a-zA-Z0-9_]+$/)]), + twitter_id: Validator_1.schema.string.nullableAndOptional({}, [Validator_1.rules.regex(/^[a-zA-Z0-9_]+$/)]), + telegram_id: Validator_1.schema.string.nullableAndOptional({}, [Validator_1.rules.regex(/^[a-zA-Z0-9_]+$/)]), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = CreateContactsValidator; +//# sourceMappingURL=CreateContactsValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Contacts/CreateContactsValidator.js.map b/build/app/Validators/Contacts/CreateContactsValidator.js.map new file mode 100644 index 0000000..172fec8 --- /dev/null +++ b/build/app/Validators/Contacts/CreateContactsValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CreateContactsValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Contacts/CreateContactsValidator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,uBAAuB;IAC1C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,YAAY,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBAClD,iBAAK,CAAC,MAAM,CAAC;wBACX,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;wBAC1B,MAAM,EAAE,IAAI;qBACb,CAAC;iBACH,CAAC;gBACF,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC9E,UAAU,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACnF,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACrF,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAd4B,CAAC;CAenD;AAhBD,0CAgBC"} \ No newline at end of file diff --git a/build/app/Validators/Contacts/UpdateContactsValidator.js b/build/app/Validators/Contacts/UpdateContactsValidator.js new file mode 100644 index 0000000..ed80a9b --- /dev/null +++ b/build/app/Validators/Contacts/UpdateContactsValidator.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class UpdateContactsValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + phone_number: Validator_1.schema.string.nullableAndOptional({}, [ + Validator_1.rules.mobile({ + locale: ['ru-RU', 'en-US'], + strict: true, + }), + Validator_1.rules.unique({ table: 'contacts', column: 'phone_number' }), + ]), + vk_id: Validator_1.schema.string.nullableAndOptional({}, [ + Validator_1.rules.regex(/^([a-zA-Z0-9_]){1,64}$/), + Validator_1.rules.unique({ table: 'contacts', column: 'vk_id' }), + ]), + twitter_id: Validator_1.schema.string.nullableAndOptional({}, [ + Validator_1.rules.regex(/(^|[^@\w])@(\w{1,15})\b/), + Validator_1.rules.unique({ table: 'contacts', column: 'twitter_id' }), + ]), + telegram_id: Validator_1.schema.string.nullableAndOptional({}, [ + Validator_1.rules.regex(/(^|[^@\w])@(\w{1,64})\b/), + Validator_1.rules.unique({ table: 'contacts', column: 'telegram_id' }), + ]), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: { + 'phone_number.unique': 'This phone number is not available.', + 'vk_id.unique': 'This ID is not available.', + 'twitter_id.unique': 'Twitter username is not available.', + 'telegram_id.unique': 'Telegram username is not available.', + } + }); + } +} +exports.default = UpdateContactsValidator; +//# sourceMappingURL=UpdateContactsValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Contacts/UpdateContactsValidator.js.map b/build/app/Validators/Contacts/UpdateContactsValidator.js.map new file mode 100644 index 0000000..af8b5d2 --- /dev/null +++ b/build/app/Validators/Contacts/UpdateContactsValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UpdateContactsValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Contacts/UpdateContactsValidator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,uBAAuB;IAC1C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,YAAY,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBAClD,iBAAK,CAAC,MAAM,CAAC;wBACX,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;wBAC1B,MAAM,EAAE,IAAI;qBACb,CAAC;oBACF,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;iBAC5D,CAAC;gBACF,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBAC3C,iBAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC;oBACrC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;iBACrD,CAAC;gBACF,UAAU,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBAChD,iBAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC;oBACtC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;iBAC1D,CAAC;gBACF,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBACjD,iBAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC;oBACtC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;iBAC3D,CAAC;aACH,CAAC;WAAC;QAEH;;;;mBAAkB;gBAChB,qBAAqB,EAAE,qCAAqC;gBAC5D,cAAc,EAAE,2BAA2B;gBAC3C,mBAAmB,EAAE,oCAAoC;gBACzD,oBAAoB,EAAE,qCAAqC;aAC5D;WAAC;IA7B+C,CAAC;CA8BnD;AA/BD,0CA+BC"} \ No newline at end of file diff --git a/build/app/Validators/Course/AddCourseToUserValidator.js b/build/app/Validators/Course/AddCourseToUserValidator.js new file mode 100644 index 0000000..4940678 --- /dev/null +++ b/build/app/Validators/Course/AddCourseToUserValidator.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class AddCourseToUserValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + student_id: Validator_1.schema.string({}, [Validator_1.rules.exists({ table: 'users', column: 'id' })]), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = AddCourseToUserValidator; +//# sourceMappingURL=AddCourseToUserValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Course/AddCourseToUserValidator.js.map b/build/app/Validators/Course/AddCourseToUserValidator.js.map new file mode 100644 index 0000000..dfaf1e2 --- /dev/null +++ b/build/app/Validators/Course/AddCourseToUserValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AddCourseToUserValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Course/AddCourseToUserValidator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,wBAAwB;IAC3C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,UAAU,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aAChF,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAN4B,CAAC;CAOnD;AARD,2CAQC"} \ No newline at end of file diff --git a/build/app/Validators/Course/AttachStudentsValitator.js b/build/app/Validators/Course/AttachStudentsValitator.js new file mode 100644 index 0000000..ac09ae2 --- /dev/null +++ b/build/app/Validators/Course/AttachStudentsValitator.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class AttachStudentsValitator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + students: Validator_1.schema.array().members(Validator_1.schema.string({}, [ + Validator_1.rules.exists({ table: 'users', column: 'id' }), + Validator_1.rules.unique({ + table: 'users_courses', + column: 'user_id', + where: { + course_id: this.ctx.params.id, + }, + }), + ])), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = AttachStudentsValitator; +//# sourceMappingURL=AttachStudentsValitator.js.map \ No newline at end of file diff --git a/build/app/Validators/Course/AttachStudentsValitator.js.map b/build/app/Validators/Course/AttachStudentsValitator.js.map new file mode 100644 index 0000000..cdd0ee7 --- /dev/null +++ b/build/app/Validators/Course/AttachStudentsValitator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AttachStudentsValitator.js","sourceRoot":"","sources":["../../../../app/Validators/Course/AttachStudentsValitator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,uBAAuB;IAC1C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,QAAQ,EAAE,kBAAM,CAAC,KAAK,EAAE,CAAC,OAAO,CAC9B,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE;oBAChB,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBAC9C,iBAAK,CAAC,MAAM,CAAC;wBACX,KAAK,EAAE,eAAe;wBACtB,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE;4BACL,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;yBAC9B;qBACF,CAAC;iBACH,CAAC,CACH;aACF,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAjB4B,CAAC;CAkBnD;AAnBD,0CAmBC"} \ No newline at end of file diff --git a/build/app/Validators/Course/CreateCourseValidator.js b/build/app/Validators/Course/CreateCourseValidator.js new file mode 100644 index 0000000..b0588f3 --- /dev/null +++ b/build/app/Validators/Course/CreateCourseValidator.js @@ -0,0 +1,42 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +const CourseStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/CourseStatusEnum")); +class CreateCourseValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + title: Validator_1.schema.string(), + description: Validator_1.schema.string(), + education_description: Validator_1.schema.string.nullable(), + image: Validator_1.schema.file.optional({ + size: '10mb', + extnames: ['jpg', 'jpeg', 'png', 'webp'], + }), + teacher_id: Validator_1.schema.string({}, [Validator_1.rules.exists({ table: 'users', column: 'id' })]), + category_id: Validator_1.schema.string({}, [Validator_1.rules.exists({ table: 'categories', column: 'id' })]), + status: Validator_1.schema.enum(Object.values(CourseStatusEnum_1.default)), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = CreateCourseValidator; +//# sourceMappingURL=CreateCourseValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Course/CreateCourseValidator.js.map b/build/app/Validators/Course/CreateCourseValidator.js.map new file mode 100644 index 0000000..3e8bbae --- /dev/null +++ b/build/app/Validators/Course/CreateCourseValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CreateCourseValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Course/CreateCourseValidator.ts"],"names":[],"mappings":";;;;;AAAA,2EAA2D;AAE3D,kHAAoE;AAEpE,MAAqB,qBAAqB;IACxC,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,kBAAM,CAAC,MAAM,EAAE;gBACtB,WAAW,EAAE,kBAAM,CAAC,MAAM,EAAE;gBAC5B,qBAAqB,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC/C,KAAK,EAAE,kBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC1B,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;iBACzC,CAAC;gBACF,UAAU,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/E,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACrF,MAAM,EAAE,kBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,0BAAgB,CAAC,CAAC;aACrD,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAf4B,CAAC;CAgBnD;AAjBD,wCAiBC"} \ No newline at end of file diff --git a/build/app/Validators/Course/DelCourseFromUserValidator.js b/build/app/Validators/Course/DelCourseFromUserValidator.js new file mode 100644 index 0000000..a8b6968 --- /dev/null +++ b/build/app/Validators/Course/DelCourseFromUserValidator.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class DelCourseFromUserValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + student_id: Validator_1.schema.string({}, [Validator_1.rules.exists({ table: 'users', column: 'id' })]), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = DelCourseFromUserValidator; +//# sourceMappingURL=DelCourseFromUserValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Course/DelCourseFromUserValidator.js.map b/build/app/Validators/Course/DelCourseFromUserValidator.js.map new file mode 100644 index 0000000..f9cc314 --- /dev/null +++ b/build/app/Validators/Course/DelCourseFromUserValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DelCourseFromUserValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Course/DelCourseFromUserValidator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,0BAA0B;IAC7C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,UAAU,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aAChF,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAN4B,CAAC;CAOnD;AARD,6CAQC"} \ No newline at end of file diff --git a/build/app/Validators/Course/DetachStudentstValitator.js b/build/app/Validators/Course/DetachStudentstValitator.js new file mode 100644 index 0000000..19611ef --- /dev/null +++ b/build/app/Validators/Course/DetachStudentstValitator.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class DetachStudentstValitator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + students: Validator_1.schema.array().members(Validator_1.schema.string({}, [Validator_1.rules.exists({ table: 'users', column: 'id' })])), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = DetachStudentstValitator; +//# sourceMappingURL=DetachStudentstValitator.js.map \ No newline at end of file diff --git a/build/app/Validators/Course/DetachStudentstValitator.js.map b/build/app/Validators/Course/DetachStudentstValitator.js.map new file mode 100644 index 0000000..3b25039 --- /dev/null +++ b/build/app/Validators/Course/DetachStudentstValitator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DetachStudentstValitator.js","sourceRoot":"","sources":["../../../../app/Validators/Course/DetachStudentstValitator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,wBAAwB;IAC3C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,QAAQ,EAAE,kBAAM,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aACtG,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAN4B,CAAC;CAOnD;AARD,2CAQC"} \ No newline at end of file diff --git a/build/app/Validators/Course/FetchCoursesValidator.js b/build/app/Validators/Course/FetchCoursesValidator.js new file mode 100644 index 0000000..1619fed --- /dev/null +++ b/build/app/Validators/Course/FetchCoursesValidator.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +const CourseStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/CourseStatusEnum")); +class FetchCoursesValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + status: Validator_1.schema.enum.optional(Object.values(CourseStatusEnum_1.default)), + category_id: Validator_1.schema.string.optional({}, [Validator_1.rules.exists({ table: 'categories', column: 'id' })]), + limit: Validator_1.schema.number.optional(), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = FetchCoursesValidator; +//# sourceMappingURL=FetchCoursesValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Course/FetchCoursesValidator.js.map b/build/app/Validators/Course/FetchCoursesValidator.js.map new file mode 100644 index 0000000..8e4465e --- /dev/null +++ b/build/app/Validators/Course/FetchCoursesValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FetchCoursesValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Course/FetchCoursesValidator.ts"],"names":[],"mappings":";;;;;AAAA,2EAA2D;AAE3D,kHAAoE;AAEpE,MAAqB,qBAAqB;IACxC,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,MAAM,EAAE,kBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,0BAAgB,CAAC,CAAC;gBAC7D,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC9F,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;aAChC,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAR4B,CAAC;CASnD;AAVD,wCAUC"} \ No newline at end of file diff --git a/build/app/Validators/Course/SetCourseStatusValidator.js b/build/app/Validators/Course/SetCourseStatusValidator.js new file mode 100644 index 0000000..478e57c --- /dev/null +++ b/build/app/Validators/Course/SetCourseStatusValidator.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +const CourseStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/CourseStatusEnum")); +class SetCourseStatusValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + status: Validator_1.schema.enum(Object.values(CourseStatusEnum_1.default)), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = SetCourseStatusValidator; +//# sourceMappingURL=SetCourseStatusValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Course/SetCourseStatusValidator.js.map b/build/app/Validators/Course/SetCourseStatusValidator.js.map new file mode 100644 index 0000000..40fe451 --- /dev/null +++ b/build/app/Validators/Course/SetCourseStatusValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SetCourseStatusValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Course/SetCourseStatusValidator.ts"],"names":[],"mappings":";;;;;AAAA,2EAAoD;AAMpD,kHAAoE;AAEpE,MAAqB,wBAAwB;IAC3C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,MAAM,EAAE,kBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,0BAAgB,CAAC,CAAC;aACrD,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAN4B,CAAC;CAOnD;AARD,2CAQC"} \ No newline at end of file diff --git a/build/app/Validators/Course/UpdateCourseValidator.js b/build/app/Validators/Course/UpdateCourseValidator.js new file mode 100644 index 0000000..a858d13 --- /dev/null +++ b/build/app/Validators/Course/UpdateCourseValidator.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class UpdateCourseValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + title: Validator_1.schema.string.optional(), + description: Validator_1.schema.string.optional(), + education_description: Validator_1.schema.string.nullable(), + image: Validator_1.schema.file.optional({ + size: '10mb', + extnames: ['jpg', 'jpeg', 'png', 'webp'], + }), + teacher_id: Validator_1.schema.string.optional({}, [Validator_1.rules.exists({ table: 'users', column: 'id' })]), + category_id: Validator_1.schema.string.optional({}, [Validator_1.rules.exists({ table: 'categories', column: 'id' })]), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = UpdateCourseValidator; +//# sourceMappingURL=UpdateCourseValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Course/UpdateCourseValidator.js.map b/build/app/Validators/Course/UpdateCourseValidator.js.map new file mode 100644 index 0000000..e4d32b5 --- /dev/null +++ b/build/app/Validators/Course/UpdateCourseValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UpdateCourseValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Course/UpdateCourseValidator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,qBAAqB;IACxC,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC/B,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACrC,qBAAqB,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC/C,KAAK,EAAE,kBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC1B,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;iBACzC,CAAC;gBACF,UAAU,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxF,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/F,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAd4B,CAAC;CAenD;AAhBD,wCAgBC"} \ No newline at end of file diff --git a/build/app/Validators/Image/CreateImageValidator.js b/build/app/Validators/Image/CreateImageValidator.js new file mode 100644 index 0000000..054fd75 --- /dev/null +++ b/build/app/Validators/Image/CreateImageValidator.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class CreateImageValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + image: Validator_1.schema.file({ + size: '10mb', + extnames: ['jpg', 'jpeg', 'png'], + }), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = CreateImageValidator; +//# sourceMappingURL=CreateImageValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Image/CreateImageValidator.js.map b/build/app/Validators/Image/CreateImageValidator.js.map new file mode 100644 index 0000000..c813692 --- /dev/null +++ b/build/app/Validators/Image/CreateImageValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CreateImageValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Image/CreateImageValidator.ts"],"names":[],"mappings":";;AAAA,2EAAoD;AAGpD,MAAqB,oBAAoB;IACvC,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,kBAAM,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;iBACjC,CAAC;aACH,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAT4B,CAAC;CAUnD;AAXD,uCAWC"} \ No newline at end of file diff --git a/build/app/Validators/Lesson/CreateLessonValidator.js b/build/app/Validators/Lesson/CreateLessonValidator.js new file mode 100644 index 0000000..7584d41 --- /dev/null +++ b/build/app/Validators/Lesson/CreateLessonValidator.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class CreateLessonValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + course_id: Validator_1.schema.string({}, [Validator_1.rules.exists({ table: 'courses', column: 'id' })]), + title: Validator_1.schema.string({}, [Validator_1.rules.maxLength(255)]), + description: Validator_1.schema.string(), + duration: Validator_1.schema.date({ format: 'HH:mm:ss' }), + video: Validator_1.schema.file.optional({ + size: '5000mb', + extnames: ['mp4', 'mov', 'avi', 'wmv', 'webm', 'flv'], + }), + linked_video_url: Validator_1.schema.string.optional([Validator_1.rules.regex(new RegExp('^(http|https|ftp)://'))]), + materials: Validator_1.schema.array.optional().members(Validator_1.schema.file({ + size: '100mb', + extnames: ['pdf', 'zip', 'rar', 'doc', 'docx'], + })), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = CreateLessonValidator; +//# sourceMappingURL=CreateLessonValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Lesson/CreateLessonValidator.js.map b/build/app/Validators/Lesson/CreateLessonValidator.js.map new file mode 100644 index 0000000..0880ff7 --- /dev/null +++ b/build/app/Validators/Lesson/CreateLessonValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CreateLessonValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Lesson/CreateLessonValidator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,qBAAqB;IACxC,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChF,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChD,WAAW,EAAE,kBAAM,CAAC,MAAM,EAAE;gBAC5B,QAAQ,EAAE,kBAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;gBAC7C,KAAK,EAAE,kBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC1B,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;iBACtD,CAAC;gBACF,gBAAgB,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC3F,SAAS,EAAE,kBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CACxC,kBAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;iBAC/C,CAAC,CACH;aACF,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IApB4B,CAAC;CAqBnD;AAtBD,wCAsBC"} \ No newline at end of file diff --git a/build/app/Validators/Lesson/UpdateLessonValidator.js b/build/app/Validators/Lesson/UpdateLessonValidator.js new file mode 100644 index 0000000..d5d87ac --- /dev/null +++ b/build/app/Validators/Lesson/UpdateLessonValidator.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class UpdateLessonValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + course_id: Validator_1.schema.string.optional({}, [Validator_1.rules.exists({ table: 'courses', column: 'id' })]), + title: Validator_1.schema.string.optional({}, [Validator_1.rules.maxLength(255)]), + description: Validator_1.schema.string.optional(), + duration: Validator_1.schema.date.optional({ format: 'HH:mm:ss' }), + video: Validator_1.schema.file.optional({ + size: '5000mb', + extnames: ['mp4', 'mov', 'avi', 'wmv', 'webm', 'flv'], + }), + linked_video_url: Validator_1.schema.string.optional([Validator_1.rules.regex(new RegExp('^(http|https|ftp)://'))]), + materials: Validator_1.schema.array.nullableAndOptional().members(Validator_1.schema.file({ + size: '100mb', + extnames: ['pdf', 'zip', 'rar', 'doc', 'docx'], + })), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = UpdateLessonValidator; +//# sourceMappingURL=UpdateLessonValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Lesson/UpdateLessonValidator.js.map b/build/app/Validators/Lesson/UpdateLessonValidator.js.map new file mode 100644 index 0000000..12f7a56 --- /dev/null +++ b/build/app/Validators/Lesson/UpdateLessonValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UpdateLessonValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Lesson/UpdateLessonValidator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,qBAAqB;IACxC,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzF,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzD,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACrC,QAAQ,EAAE,kBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;gBACtD,KAAK,EAAE,kBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC1B,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;iBACtD,CAAC;gBACF,gBAAgB,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC3F,SAAS,EAAE,kBAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,OAAO,CACnD,kBAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;iBAC/C,CAAC,CACH;aACF,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IApB4B,CAAC;CAqBnD;AAtBD,wCAsBC"} \ No newline at end of file diff --git a/build/app/Validators/Password/ChangePasswordValidator.js b/build/app/Validators/Password/ChangePasswordValidator.js new file mode 100644 index 0000000..1052eb3 --- /dev/null +++ b/build/app/Validators/Password/ChangePasswordValidator.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class ChangePasswordValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + oldPassword: Validator_1.schema.string({}, [Validator_1.rules.maxLength(128)]), + newPassword: Validator_1.schema.string({}, [Validator_1.rules.minLength(6), Validator_1.rules.maxLength(128)]), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = ChangePasswordValidator; +//# sourceMappingURL=ChangePasswordValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/Password/ChangePasswordValidator.js.map b/build/app/Validators/Password/ChangePasswordValidator.js.map new file mode 100644 index 0000000..ecb62ef --- /dev/null +++ b/build/app/Validators/Password/ChangePasswordValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ChangePasswordValidator.js","sourceRoot":"","sources":["../../../../app/Validators/Password/ChangePasswordValidator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,uBAAuB;IAC1C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtD,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;aAC3E,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAP4B,CAAC;CAQnD;AATD,0CASC"} \ No newline at end of file diff --git a/build/app/Validators/User/AddRoleToUserValidator.js b/build/app/Validators/User/AddRoleToUserValidator.js new file mode 100644 index 0000000..a719a8f --- /dev/null +++ b/build/app/Validators/User/AddRoleToUserValidator.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +const RoleEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/RoleEnum")); +class AddRoleToUserValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + roles: Validator_1.schema.array().members(Validator_1.schema.enum(Object.values(RoleEnum_1.default))), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = AddRoleToUserValidator; +//# sourceMappingURL=AddRoleToUserValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/User/AddRoleToUserValidator.js.map b/build/app/Validators/User/AddRoleToUserValidator.js.map new file mode 100644 index 0000000..b2aa67b --- /dev/null +++ b/build/app/Validators/User/AddRoleToUserValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AddRoleToUserValidator.js","sourceRoot":"","sources":["../../../../app/Validators/User/AddRoleToUserValidator.ts"],"names":[],"mappings":";;;;;AAAA,2EAAoD;AAEpD,kGAAoD;AAEpD,MAAqB,sBAAsB;IACzC,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,kBAAM,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,kBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAQ,CAAC,CAAC,CAAC;aACpE,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAN4B,CAAC;CAOnD;AARD,yCAQC"} \ No newline at end of file diff --git a/build/app/Validators/User/CreateUserValidator.js b/build/app/Validators/User/CreateUserValidator.js new file mode 100644 index 0000000..4f74862 --- /dev/null +++ b/build/app/Validators/User/CreateUserValidator.js @@ -0,0 +1,41 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +const RoleEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/RoleEnum")); +class CreateUserValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + first_name: Validator_1.schema.string(), + last_name: Validator_1.schema.string(), + login: Validator_1.schema.string({}, [Validator_1.rules.maxLength(128), Validator_1.rules.unique({ table: 'users', column: 'login' })]), + email: Validator_1.schema.string({}, [Validator_1.rules.email(), Validator_1.rules.unique({ table: 'users', column: 'email' })]), + password: Validator_1.schema.string({}, [Validator_1.rules.minLength(6), Validator_1.rules.maxLength(128)]), + role: Validator_1.schema.enum(Object.values(RoleEnum_1.default)), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: { + 'login.unique': '"Login" filed is already in use.', + 'email.unique': '"Email" field is already in use.', + } + }); + } +} +exports.default = CreateUserValidator; +//# sourceMappingURL=CreateUserValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/User/CreateUserValidator.js.map b/build/app/Validators/User/CreateUserValidator.js.map new file mode 100644 index 0000000..0625884 --- /dev/null +++ b/build/app/Validators/User/CreateUserValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CreateUserValidator.js","sourceRoot":"","sources":["../../../../app/Validators/User/CreateUserValidator.ts"],"names":[],"mappings":";;;;;AAAA,2EAA2D;AAE3D,kGAAoD;AAEpD,MAAqB,mBAAmB;IACtC,YAAsB,GAAwB;;;;;mBAAxB;;QAqBtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,UAAU,EAAE,kBAAM,CAAC,MAAM,EAAE;gBAC3B,SAAS,EAAE,kBAAM,CAAC,MAAM,EAAE;gBAC1B,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACnG,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,KAAK,EAAE,EAAE,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5F,QAAQ,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,IAAI,EAAE,kBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAQ,CAAC,CAAC;aAC3C,CAAC;WAAC;QAaH;;;;mBAAkB;gBAChB,cAAc,EAAE,kCAAkC;gBAClD,cAAc,EAAE,kCAAkC;aACnD;WAAC;IA5C+C,CAAC;CA6CnD;AA9CD,sCA8CC"} \ No newline at end of file diff --git a/build/app/Validators/User/DelRoleFromUserValidator.js b/build/app/Validators/User/DelRoleFromUserValidator.js new file mode 100644 index 0000000..b2c996a --- /dev/null +++ b/build/app/Validators/User/DelRoleFromUserValidator.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +const RoleEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/RoleEnum")); +class DelRoleFromUserValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + roles: Validator_1.schema.array().members(Validator_1.schema.enum(Object.values(RoleEnum_1.default))), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + } +} +exports.default = DelRoleFromUserValidator; +//# sourceMappingURL=DelRoleFromUserValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/User/DelRoleFromUserValidator.js.map b/build/app/Validators/User/DelRoleFromUserValidator.js.map new file mode 100644 index 0000000..581f48e --- /dev/null +++ b/build/app/Validators/User/DelRoleFromUserValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DelRoleFromUserValidator.js","sourceRoot":"","sources":["../../../../app/Validators/User/DelRoleFromUserValidator.ts"],"names":[],"mappings":";;;;;AAAA,2EAAoD;AAEpD,kGAAoD;AAEpD,MAAqB,wBAAwB;IAC3C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,kBAAM,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,kBAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAQ,CAAC,CAAC,CAAC;aACpE,CAAC;WAAC;QAEH;;;;mBAAkB,EAAE;WAAC;IAN4B,CAAC;CAOnD;AARD,2CAQC"} \ No newline at end of file diff --git a/build/app/Validators/User/UpdateUserInfoValidator.js b/build/app/Validators/User/UpdateUserInfoValidator.js new file mode 100644 index 0000000..0723e2f --- /dev/null +++ b/build/app/Validators/User/UpdateUserInfoValidator.js @@ -0,0 +1,50 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class UpdateUserInfoValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + about: Validator_1.schema.string.nullableAndOptional(), + phone_number: Validator_1.schema.string.nullableAndOptional({}, [ + Validator_1.rules.mobile({ locale: ['ru-RU', 'en-US'], strict: true }), + Validator_1.rules.unique({ table: 'contacts', column: 'phone_number' }), + ]), + vk_id: Validator_1.schema.string.nullableAndOptional({}, [ + Validator_1.rules.regex(/^([a-zA-Z0-9_]){1,64}$/), + Validator_1.rules.unique({ table: 'contacts', column: 'vk_id' }), + ]), + twitter_id: Validator_1.schema.string.nullableAndOptional({}, [ + Validator_1.rules.regex(/(^|[^@\w])@(\w{1,15})\b/), + Validator_1.rules.unique({ table: 'contacts', column: 'twitter_id' }), + ]), + telegram_id: Validator_1.schema.string.nullableAndOptional({}, [ + Validator_1.rules.regex(/(^|[^@\w])@(\w{1,64})\b/), + Validator_1.rules.unique({ table: 'contacts', column: 'telegram_id' }), + ]), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: { + 'phone_number.unique': 'This phone number is not available.', + 'vk_id.unique': 'This ID is not available.', + 'twitter_id.unique': 'Twitter username is not available.', + 'telegram_id.unique': 'Telegram username is not available.', + } + }); + } +} +exports.default = UpdateUserInfoValidator; +//# sourceMappingURL=UpdateUserInfoValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/User/UpdateUserInfoValidator.js.map b/build/app/Validators/User/UpdateUserInfoValidator.js.map new file mode 100644 index 0000000..a4f546b --- /dev/null +++ b/build/app/Validators/User/UpdateUserInfoValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UpdateUserInfoValidator.js","sourceRoot":"","sources":["../../../../app/Validators/User/UpdateUserInfoValidator.ts"],"names":[],"mappings":";;AAAA,2EAA2D;AAG3D,MAAqB,uBAAuB;IAC1C,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE;gBAC1C,YAAY,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBAClD,iBAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBAC1D,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;iBAC5D,CAAC;gBACF,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBAC3C,iBAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC;oBACrC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;iBACrD,CAAC;gBACF,UAAU,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBAChD,iBAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC;oBACtC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;iBAC1D,CAAC;gBACF,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE;oBACjD,iBAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC;oBACtC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;iBAC3D,CAAC;aACH,CAAC;WAAC;QAEH;;;;mBAAkB;gBAChB,qBAAqB,EAAE,qCAAqC;gBAC5D,cAAc,EAAE,2BAA2B;gBAC3C,mBAAmB,EAAE,oCAAoC;gBACzD,oBAAoB,EAAE,qCAAqC;aAC5D;WAAC;IA3B+C,CAAC;CA4BnD;AA7BD,0CA6BC"} \ No newline at end of file diff --git a/build/app/Validators/User/UpdateUserValidator.js b/build/app/Validators/User/UpdateUserValidator.js new file mode 100644 index 0000000..b72a193 --- /dev/null +++ b/build/app/Validators/User/UpdateUserValidator.js @@ -0,0 +1,42 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +const RoleEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/RoleEnum")); +class UpdateUserValidator { + constructor(ctx) { + Object.defineProperty(this, "ctx", { + enumerable: true, + configurable: true, + writable: true, + value: ctx + }); + Object.defineProperty(this, "schema", { + enumerable: true, + configurable: true, + writable: true, + value: Validator_1.schema.create({ + first_name: Validator_1.schema.string.optional(), + last_name: Validator_1.schema.string.optional(), + about: Validator_1.schema.string.optional(), + login: Validator_1.schema.string.optional({}, [Validator_1.rules.unique({ table: 'users', column: 'login' })]), + email: Validator_1.schema.string.optional({}, [Validator_1.rules.email(), Validator_1.rules.unique({ table: 'users', column: 'email' })]), + password: Validator_1.schema.string.optional(), + role: Validator_1.schema.enum.optional(Object.values(RoleEnum_1.default)), + }) + }); + Object.defineProperty(this, "messages", { + enumerable: true, + configurable: true, + writable: true, + value: { + 'login.unique': '"Login" filed is already in use.', + 'email.unique': '"Email" field is already in use.', + } + }); + } +} +exports.default = UpdateUserValidator; +//# sourceMappingURL=UpdateUserValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/User/UpdateUserValidator.js.map b/build/app/Validators/User/UpdateUserValidator.js.map new file mode 100644 index 0000000..259d1ce --- /dev/null +++ b/build/app/Validators/User/UpdateUserValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UpdateUserValidator.js","sourceRoot":"","sources":["../../../../app/Validators/User/UpdateUserValidator.ts"],"names":[],"mappings":";;;;;AAAA,2EAA2D;AAE3D,kGAAoD;AAEpD,MAAqB,mBAAmB;IACtC,YAAsB,GAAwB;;;;;mBAAxB;;QAEtB;;;;mBAAgB,kBAAM,CAAC,MAAM,CAAC;gBAC5B,UAAU,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACpC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACnC,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC/B,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtF,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,KAAK,EAAE,EAAE,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBACrG,QAAQ,EAAE,kBAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAClC,IAAI,EAAE,kBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAQ,CAAC,CAAC;aACpD,CAAC;WAAC;QAEH;;;;mBAAkB;gBAChB,cAAc,EAAE,kCAAkC;gBAClD,cAAc,EAAE,kCAAkC;aACnD;WAAC;IAf+C,CAAC;CAgBnD;AAjBD,sCAiBC"} \ No newline at end of file diff --git a/build/app/Validators/Validator.js b/build/app/Validators/Validator.js new file mode 100644 index 0000000..852969f --- /dev/null +++ b/build/app/Validators/Validator.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); +class Validator { + constructor() { + Object.defineProperty(this, "errorMessages", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + Object.defineProperty(this, "cacheKey", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + async fire(data, type) { + return Validator_1.validator.validate({ + schema: this.schemas(type), + data, + ...(this.errorMessages[type] ? { messages: this.errorMessages[type] } : {}), + ...(this.cacheKey ? { cacheKey: this.cacheKey } : {}), + }); + } +} +exports.default = Validator; +//# sourceMappingURL=Validator.js.map \ No newline at end of file diff --git a/build/app/Validators/Validator.js.map b/build/app/Validators/Validator.js.map new file mode 100644 index 0000000..61ac681 --- /dev/null +++ b/build/app/Validators/Validator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../app/Validators/Validator.ts"],"names":[],"mappings":";;AAAA,2EAA0E;AAE1E,MAA8B,SAAS;IAAvC;QAYE;;;;mBAA0B,EAAE;WAAC;QAM7B;;;;;WAA2B;IAU7B,CAAC;IARQ,KAAK,CAAC,IAAI,CAAC,IAA4B,EAAE,IAAY;QAC1D,OAAO,qBAAS,CAAC,QAAQ,CAAC;YACxB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAC1B,IAAI;YACJ,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AA5BD,4BA4BC"} \ No newline at end of file diff --git a/build/commands/index.js b/build/commands/index.js new file mode 100644 index 0000000..e61f87b --- /dev/null +++ b/build/commands/index.js @@ -0,0 +1,9 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const standalone_1 = require("@adonisjs/core/build/standalone"); +const Application_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Application")); +exports.default = (0, standalone_1.listDirectoryFiles)(__dirname, Application_1.default.appRoot, ['./commands/index']); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/commands/index.js.map b/build/commands/index.js.map new file mode 100644 index 0000000..a0dd80c --- /dev/null +++ b/build/commands/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../commands/index.ts"],"names":[],"mappings":";;;;;AAAA,gEAAqE;AACrE,gGAAuD;AAkBvD,kBAAe,IAAA,+BAAkB,EAAC,SAAS,EAAE,qBAAW,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/build/config/app.js b/build/config/app.js new file mode 100644 index 0000000..2ff50fc --- /dev/null +++ b/build/config/app.js @@ -0,0 +1,39 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.validator = exports.profiler = exports.logger = exports.http = exports.appKey = void 0; +const proxy_addr_1 = __importDefault(require("proxy-addr")); +const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); +exports.appKey = Env_1.default.get('APP_KEY'); +exports.http = { + allowMethodSpoofing: false, + subdomainOffset: 2, + generateRequestId: false, + trustProxy: proxy_addr_1.default.compile('loopback'), + etag: false, + jsonpCallbackName: 'callback', + cookie: { + domain: '', + path: '/', + maxAge: '1d', + httpOnly: true, + secure: true, + sameSite: 'none', + }, + forceContentNegotiationTo: 'application/json', +}; +exports.logger = { + name: Env_1.default.get('APP_NAME'), + enabled: true, + level: Env_1.default.get('LOG_LEVEL', 'info'), + prettyPrint: Env_1.default.get('NODE_ENV') === 'development', +}; +exports.profiler = { + enabled: true, + blacklist: [], + whitelist: [], +}; +exports.validator = {}; +//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/build/config/app.js.map b/build/config/app.js.map new file mode 100644 index 0000000..df1c9f5 --- /dev/null +++ b/build/config/app.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.js","sourceRoot":"","sources":["../../config/app.ts"],"names":[],"mappings":";;;;;;AAOA,4DAAmC;AACnC,gFAAuC;AAmB1B,QAAA,MAAM,GAAW,aAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAWpC,QAAA,IAAI,GAAiB;IAYhC,mBAAmB,EAAE,KAAK;IAO1B,eAAe,EAAE,CAAC;IAWlB,iBAAiB,EAAE,KAAK;IAWxB,UAAU,EAAE,oBAAS,CAAC,OAAO,CAAC,UAAU,CAAC;IAUzC,IAAI,EAAE,KAAK;IAOX,iBAAiB,EAAE,UAAU;IAO7B,MAAM,EAAE;QACN,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,MAAM;KACjB;IAkBD,yBAAyB,EAAE,kBAAkB;CAC9C,CAAC;AAOW,QAAA,MAAM,GAAiB;IAalC,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,UAAU,CAAC;IAUzB,OAAO,EAAE,IAAI;IAYb,KAAK,EAAE,aAAG,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;IAWnC,WAAW,EAAE,aAAG,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,aAAa;CACnD,CAAC;AAOW,QAAA,QAAQ,GAAmB;IAStC,OAAO,EAAE,IAAI;IAWb,SAAS,EAAE,EAAE;IAWb,SAAS,EAAE,EAAE;CACd,CAAC;AAWW,QAAA,SAAS,GAAoB,EAAE,CAAC"} \ No newline at end of file diff --git a/build/config/auth.js b/build/config/auth.js new file mode 100644 index 0000000..96a45af --- /dev/null +++ b/build/config/auth.js @@ -0,0 +1,47 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const authConfig = { + guard: 'api', + guards: { + api: { + driver: 'oat', + tokenProvider: { + type: 'api', + driver: 'redis', + redisConnection: 'local', + foreignKey: 'user_id', + }, + provider: { + driver: 'lucid', + identifierKey: 'id', + uids: ['email'], + model: () => Promise.resolve().then(() => __importStar(global[Symbol.for('ioc.use')]('App/Models/User'))), + }, + }, + }, +}; +exports.default = authConfig; +//# sourceMappingURL=auth.js.map \ No newline at end of file diff --git a/build/config/auth.js.map b/build/config/auth.js.map new file mode 100644 index 0000000..0256444 --- /dev/null +++ b/build/config/auth.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../config/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,UAAU,GAAe;IAC7B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE;QAcN,GAAG,EAAE;YACH,MAAM,EAAE,KAAK;YAkBb,aAAa,EAAE;gBACb,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,OAAO;gBACf,eAAe,EAAE,OAAO;gBACxB,UAAU,EAAE,SAAS;aACtB;YAED,QAAQ,EAAE;gBASR,MAAM,EAAE,OAAO;gBAWf,aAAa,EAAE,IAAI;gBAYnB,IAAI,EAAE,CAAC,OAAO,CAAC;gBAaf,KAAK,EAAE,GAAG,EAAE,yEAAQ,iBAAiB,GAAC;aACvC;SACF;KACF;CACF,CAAC;AAEF,kBAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/build/config/bodyparser.js b/build/config/bodyparser.js new file mode 100644 index 0000000..9681652 --- /dev/null +++ b/build/config/bodyparser.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const bodyParserConfig = { + whitelistedMethods: ['POST', 'PUT', 'PATCH', 'DELETE'], + json: { + encoding: 'utf-8', + limit: '1mb', + strict: true, + types: ['application/json', 'application/json-patch+json', 'application/vnd.api+json', 'application/csp-report'], + }, + form: { + encoding: 'utf-8', + limit: '1mb', + queryString: {}, + convertEmptyStringsToNull: true, + types: ['application/x-www-form-urlencoded'], + }, + raw: { + encoding: 'utf-8', + limit: '1mb', + queryString: {}, + types: ['text/*'], + }, + multipart: { + autoProcess: true, + processManually: [], + encoding: 'utf-8', + convertEmptyStringsToNull: true, + maxFields: 1000, + limit: '20mb', + types: ['multipart/form-data'], + }, +}; +exports.default = bodyParserConfig; +//# sourceMappingURL=bodyparser.js.map \ No newline at end of file diff --git a/build/config/bodyparser.js.map b/build/config/bodyparser.js.map new file mode 100644 index 0000000..e1d1e85 --- /dev/null +++ b/build/config/bodyparser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bodyparser.js","sourceRoot":"","sources":["../../config/bodyparser.ts"],"names":[],"mappings":";;AASA,MAAM,gBAAgB,GAAqB;IAUzC,kBAAkB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IAWtD,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,wBAAwB,CAAC;KACjH;IAWD,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,EAAE;QAYf,yBAAyB,EAAE,IAAI;QAE/B,KAAK,EAAE,CAAC,mCAAmC,CAAC;KAC7C;IAYD,GAAG,EAAE;QACH,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,CAAC,QAAQ,CAAC;KAClB;IAWD,SAAS,EAAE;QAcT,WAAW,EAAE,IAAI;QAsBjB,eAAe,EAAE,EAAE;QAuBnB,QAAQ,EAAE,OAAO;QAYjB,yBAAyB,EAAE,IAAI;QAW/B,SAAS,EAAE,IAAI;QAWf,KAAK,EAAE,MAAM;QAUb,KAAK,EAAE,CAAC,qBAAqB,CAAC;KAC/B;CACF,CAAC;AAEF,kBAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/build/config/cors.js b/build/config/cors.js new file mode 100644 index 0000000..a39ff5d --- /dev/null +++ b/build/config/cors.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const corsConfig = { + enabled: true, + origin: true, + methods: ['GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE'], + headers: true, + exposeHeaders: ['cache-control', 'content-language', 'content-type', 'expires', 'last-modified', 'pragma'], + credentials: true, + maxAge: 90, +}; +exports.default = corsConfig; +//# sourceMappingURL=cors.js.map \ No newline at end of file diff --git a/build/config/cors.js.map b/build/config/cors.js.map new file mode 100644 index 0000000..5389151 --- /dev/null +++ b/build/config/cors.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../config/cors.ts"],"names":[],"mappings":";;AASA,MAAM,UAAU,GAAe;IAa7B,OAAO,EAAE,IAAI;IAwBb,MAAM,EAAE,IAAI;IAYZ,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IAmB1D,OAAO,EAAE,IAAI;IAsBb,aAAa,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC;IAa1G,WAAW,EAAE,IAAI;IAWjB,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,kBAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/build/config/database.js b/build/config/database.js new file mode 100644 index 0000000..f25abce --- /dev/null +++ b/build/config/database.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); +const databaseConfig = { + connection: Env_1.default.get('DB_CONNECTION'), + connections: { + pg: { + client: 'pg', + connection: { + host: Env_1.default.get('PG_HOST'), + port: Env_1.default.get('PG_PORT'), + user: Env_1.default.get('PG_USER'), + password: Env_1.default.get('PG_PASSWORD', ''), + database: Env_1.default.get('PG_DB_NAME'), + }, + migrations: { + disableRollbacksInProduction: true, + naturalSort: true, + tableName: 'migrations', + }, + seeders: { + paths: ['./database/seeders/MainSeeder'], + }, + healthCheck: true, + debug: false, + }, + }, +}; +exports.default = databaseConfig; +//# sourceMappingURL=database.js.map \ No newline at end of file diff --git a/build/config/database.js.map b/build/config/database.js.map new file mode 100644 index 0000000..5e23ab1 --- /dev/null +++ b/build/config/database.js.map @@ -0,0 +1 @@ +{"version":3,"file":"database.js","sourceRoot":"","sources":["../../config/database.ts"],"names":[],"mappings":";;;;;AAOA,gFAAuC;AAGvC,MAAM,cAAc,GAAmB;IAWrC,UAAU,EAAE,aAAG,CAAC,GAAG,CAAC,eAAe,CAAC;IAEpC,WAAW,EAAE;QAYX,EAAE,EAAE;YACF,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE;gBACV,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,SAAS,CAAC;gBACxB,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,SAAS,CAAC;gBACxB,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,SAAS,CAAC;gBACxB,QAAQ,EAAE,aAAG,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;gBACpC,QAAQ,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;aAChC;YACD,UAAU,EAAE;gBACV,4BAA4B,EAAE,IAAI;gBAClC,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,YAAY;aACxB;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,CAAC,+BAA+B,CAAC;aACzC;YACD,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,KAAK;SACb;KACF;CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/build/config/drive.js b/build/config/drive.js new file mode 100644 index 0000000..835c86c --- /dev/null +++ b/build/config/drive.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); +const config_1 = require("@adonisjs/core/build/config"); +const Application_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Application")); +exports.default = (0, config_1.driveConfig)({ + disk: Env_1.default.get('DRIVE_DISK'), + disks: { + local: { + driver: 'local', + visibility: 'private', + root: Application_1.default.makePath('uploads'), + serveFiles: true, + basePath: '/uploads', + }, + s3: { + driver: 's3', + visibility: 'private', + key: Env_1.default.get('S3_KEY'), + secret: Env_1.default.get('S3_SECRET'), + region: Env_1.default.get('S3_REGION'), + bucket: Env_1.default.get('S3_BUCKET'), + endpoint: Env_1.default.get('S3_ENDPOINT'), + }, + }, +}); +//# sourceMappingURL=drive.js.map \ No newline at end of file diff --git a/build/config/drive.js.map b/build/config/drive.js.map new file mode 100644 index 0000000..a6beed7 --- /dev/null +++ b/build/config/drive.js.map @@ -0,0 +1 @@ +{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../config/drive.ts"],"names":[],"mappings":";;;;;AAOA,gFAAuC;AACvC,wDAA0D;AAC1D,gGAAuD;AAWvD,kBAAe,IAAA,oBAAW,EAAC;IAUzB,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;IAE3B,KAAK,EAAE;QAUL,KAAK,EAAE;YACL,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,SAAS;YAWrB,IAAI,EAAE,qBAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;YAYrC,UAAU,EAAE,IAAI;YAYhB,QAAQ,EAAE,UAAU;SACrB;QAeD,EAAE,EAAE;YACF,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,SAAS;YACrB,GAAG,EAAE,aAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YACtB,MAAM,EAAE,aAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAC5B,MAAM,EAAE,aAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAC5B,MAAM,EAAE,aAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAC5B,QAAQ,EAAE,aAAG,CAAC,GAAG,CAAC,aAAa,CAAC;SACjC;KAyCF;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/build/config/hash.js b/build/config/hash.js new file mode 100644 index 0000000..77ad856 --- /dev/null +++ b/build/config/hash.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); +const config_1 = require("@adonisjs/core/build/config"); +exports.default = (0, config_1.hashConfig)({ + default: Env_1.default.get('HASH_DRIVER', 'bcrypt'), + list: { + argon: { + driver: 'argon2', + variant: 'id', + iterations: 3, + memory: 4096, + parallelism: 1, + saltSize: 16, + }, + bcrypt: { + driver: 'bcrypt', + rounds: 10, + }, + }, +}); +//# sourceMappingURL=hash.js.map \ No newline at end of file diff --git a/build/config/hash.js.map b/build/config/hash.js.map new file mode 100644 index 0000000..aa8bea1 --- /dev/null +++ b/build/config/hash.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../config/hash.ts"],"names":[],"mappings":";;;;;AAOA,gFAAuC;AACvC,wDAAyD;AAWzD,kBAAe,IAAA,mBAAU,EAAC;IAUxB,OAAO,EAAE,aAAG,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;IAEzC,IAAI,EAAE;QAcJ,KAAK,EAAE;YACL,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,EAAE;SACb;QAeD,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/build/config/mail.js b/build/config/mail.js new file mode 100644 index 0000000..74c821f --- /dev/null +++ b/build/config/mail.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); +const config_1 = require("@adonisjs/mail/build/config"); +exports.default = (0, config_1.mailConfig)({ + mailer: Env_1.default.get('MAILER'), + mailers: { + smtp: { + driver: 'smtp', + host: Env_1.default.get('SMTP_HOST'), + port: Env_1.default.get('SMTP_PORT'), + auth: { + user: Env_1.default.get('SMTP_USERNAME'), + pass: Env_1.default.get('SMTP_PASSWORD'), + type: 'login', + }, + }, + mailgun: { + driver: 'mailgun', + baseUrl: 'https://api.mailgun.net/v3', + key: Env_1.default.get('MAILGUN_API_KEY'), + domain: Env_1.default.get('MAILGUN_DOMAIN'), + }, + }, +}); +//# sourceMappingURL=mail.js.map \ No newline at end of file diff --git a/build/config/mail.js.map b/build/config/mail.js.map new file mode 100644 index 0000000..4ebe948 --- /dev/null +++ b/build/config/mail.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mail.js","sourceRoot":"","sources":["../../config/mail.ts"],"names":[],"mappings":";;;;;AAOA,gFAAuC;AACvC,wDAAyD;AAEzD,kBAAe,IAAA,mBAAU,EAAC;IAUxB,MAAM,EAAE,aAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;IAezB,OAAO,EAAE;QASP,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAC1B,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAC1B,IAAI,EAAE;gBACJ,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,eAAe,CAAC;gBAC9B,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,eAAe,CAAC;gBAC9B,IAAI,EAAE,OAAO;aACd;SACF;QAaD,OAAO,EAAE;YACP,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,4BAA4B;YACrC,GAAG,EAAE,aAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC/B,MAAM,EAAE,aAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;SAClC;KACF;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/build/config/redis.js b/build/config/redis.js new file mode 100644 index 0000000..7a42839 --- /dev/null +++ b/build/config/redis.js @@ -0,0 +1,45 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); +const redisConfig = { + connection: Env_1.default.get('REDIS_CONNECTION'), + connections: { + local: { + host: Env_1.default.get('REDIS_HOST'), + port: Env_1.default.get('REDIS_PORT'), + password: Env_1.default.get('REDIS_PASSWORD', ''), + db: 0, + keyPrefix: '', + healthCheck: true, + }, + session: { + host: Env_1.default.get('REDIS_HOST'), + port: Env_1.default.get('REDIS_PORT'), + password: Env_1.default.get('REDIS_PASSWORD', ''), + db: 1, + keyPrefix: 'session-', + healthCheck: true, + }, + message: { + host: Env_1.default.get('REDIS_HOST'), + port: Env_1.default.get('REDIS_PORT'), + password: Env_1.default.get('REDIS_PASSWORD', ''), + keyPrefix: '', + db: 2, + healthCheck: true, + }, + notification: { + host: Env_1.default.get('REDIS_HOST'), + port: Env_1.default.get('REDIS_PORT'), + password: Env_1.default.get('REDIS_PASSWORD', ''), + keyPrefix: '', + db: 3, + healthCheck: true, + }, + }, +}; +exports.default = redisConfig; +//# sourceMappingURL=redis.js.map \ No newline at end of file diff --git a/build/config/redis.js.map b/build/config/redis.js.map new file mode 100644 index 0000000..6090e1b --- /dev/null +++ b/build/config/redis.js.map @@ -0,0 +1 @@ +{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../config/redis.ts"],"names":[],"mappings":";;;;;AAOA,gFAAuC;AAgBvC,MAAM,WAAW,GAAgB;IAC/B,UAAU,EAAE,aAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAEvC,WAAW,EAAE;QAWX,KAAK,EAAE;YACL,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,QAAQ,EAAE,aAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvC,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,IAAI;SAClB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,QAAQ,EAAE,aAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvC,EAAE,EAAE,CAAC;YACL,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,IAAI;SAClB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,QAAQ,EAAE,aAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvC,SAAS,EAAE,EAAE;YACb,EAAE,EAAE,CAAC;YACL,WAAW,EAAE,IAAI;SAClB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3B,QAAQ,EAAE,aAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvC,SAAS,EAAE,EAAE;YACb,EAAE,EAAE,CAAC;YACL,WAAW,EAAE,IAAI;SAClB;KACF;CACF,CAAC;AAEF,kBAAe,WAAW,CAAC"} \ No newline at end of file diff --git a/build/contracts/auth.js b/build/contracts/auth.js new file mode 100644 index 0000000..1bf0817 --- /dev/null +++ b/build/contracts/auth.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=auth.js.map \ No newline at end of file diff --git a/build/contracts/auth.js.map b/build/contracts/auth.js.map new file mode 100644 index 0000000..208c50f --- /dev/null +++ b/build/contracts/auth.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../contracts/auth.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/bouncer.js b/build/contracts/bouncer.js new file mode 100644 index 0000000..b22027d --- /dev/null +++ b/build/contracts/bouncer.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=bouncer.js.map \ No newline at end of file diff --git a/build/contracts/bouncer.js.map b/build/contracts/bouncer.js.map new file mode 100644 index 0000000..8faf3c2 --- /dev/null +++ b/build/contracts/bouncer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bouncer.js","sourceRoot":"","sources":["../../contracts/bouncer.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/drive.js b/build/contracts/drive.js new file mode 100644 index 0000000..d977609 --- /dev/null +++ b/build/contracts/drive.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=drive.js.map \ No newline at end of file diff --git a/build/contracts/drive.js.map b/build/contracts/drive.js.map new file mode 100644 index 0000000..4c24673 --- /dev/null +++ b/build/contracts/drive.js.map @@ -0,0 +1 @@ +{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../contracts/drive.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/env.js b/build/contracts/env.js new file mode 100644 index 0000000..1c45e33 --- /dev/null +++ b/build/contracts/env.js @@ -0,0 +1 @@ +//# sourceMappingURL=env.js.map \ No newline at end of file diff --git a/build/contracts/env.js.map b/build/contracts/env.js.map new file mode 100644 index 0000000..b46d3d4 --- /dev/null +++ b/build/contracts/env.js.map @@ -0,0 +1 @@ +{"version":3,"file":"env.js","sourceRoot":"","sources":["../../contracts/env.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/events.js b/build/contracts/events.js new file mode 100644 index 0000000..6bee6c4 --- /dev/null +++ b/build/contracts/events.js @@ -0,0 +1 @@ +//# sourceMappingURL=events.js.map \ No newline at end of file diff --git a/build/contracts/events.js.map b/build/contracts/events.js.map new file mode 100644 index 0000000..1383ffe --- /dev/null +++ b/build/contracts/events.js.map @@ -0,0 +1 @@ +{"version":3,"file":"events.js","sourceRoot":"","sources":["../../contracts/events.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/hash.js b/build/contracts/hash.js new file mode 100644 index 0000000..6032c19 --- /dev/null +++ b/build/contracts/hash.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=hash.js.map \ No newline at end of file diff --git a/build/contracts/hash.js.map b/build/contracts/hash.js.map new file mode 100644 index 0000000..d3cf71b --- /dev/null +++ b/build/contracts/hash.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../contracts/hash.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/mail.js b/build/contracts/mail.js new file mode 100644 index 0000000..7a9cbbc --- /dev/null +++ b/build/contracts/mail.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=mail.js.map \ No newline at end of file diff --git a/build/contracts/mail.js.map b/build/contracts/mail.js.map new file mode 100644 index 0000000..e14097c --- /dev/null +++ b/build/contracts/mail.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mail.js","sourceRoot":"","sources":["../../contracts/mail.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/redis.js b/build/contracts/redis.js new file mode 100644 index 0000000..dbe51b3 --- /dev/null +++ b/build/contracts/redis.js @@ -0,0 +1 @@ +//# sourceMappingURL=redis.js.map \ No newline at end of file diff --git a/build/contracts/redis.js.map b/build/contracts/redis.js.map new file mode 100644 index 0000000..b544cf6 --- /dev/null +++ b/build/contracts/redis.js.map @@ -0,0 +1 @@ +{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../contracts/redis.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/database/factories/index.js b/build/database/factories/index.js new file mode 100644 index 0000000..5738adf --- /dev/null +++ b/build/database/factories/index.js @@ -0,0 +1,87 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CourseFactory = exports.CategoryFactory = exports.LessonFactory = exports.LessonContentFactory = exports.StudentFactory = exports.TeacherFactory = exports.UserFactory = exports.ContactFactory = void 0; +const Factory_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Factory")); +const Helpers_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Helpers"); +const CourseStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/CourseStatusEnum")); +const Category_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Category")); +const Contact_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Contact")); +const Course_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Course")); +const Lesson_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Lesson")); +const LessonContent_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/LessonContent")); +const Role_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Role")); +const User_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/User")); +const luxon_1 = require("luxon"); +const makeFakeUser = (faker, loginPrefix) => { + return { + first_name: faker.name.firstName(), + last_name: faker.name.lastName(), + login: `${loginPrefix || 'user'}-${Helpers_1.string.generateRandom(5)}`, + email: faker.internet.exampleEmail(), + password: '123456', + }; +}; +exports.ContactFactory = Factory_1.default.define(Contact_1.default, ({ faker }) => { + return { + phone_number: faker.phone.phoneNumber(), + }; +}).build(); +exports.UserFactory = Factory_1.default.define(User_1.default, ({ faker }) => makeFakeUser(faker)) + .relation('contacts', () => exports.ContactFactory) + .build(); +exports.TeacherFactory = Factory_1.default.define(User_1.default, ({ faker }) => makeFakeUser(faker, 'teacher')) + .relation('contacts', () => exports.ContactFactory) + .after('create', async (_, user) => { + const role = await Role_1.default.findByOrFail('slug', 'teacher'); + await user.related('roles').attach([role.id]); +}) + .build(); +exports.StudentFactory = Factory_1.default.define(User_1.default, ({ faker }) => makeFakeUser(faker, 'student')) + .relation('contacts', () => exports.ContactFactory) + .after('create', async (_, user) => { + const role = await Role_1.default.findByOrFail('slug', 'student'); + await user.related('roles').attach([role.id]); +}) + .build(); +exports.LessonContentFactory = Factory_1.default.define(LessonContent_1.default, ({ faker }) => { + return { + body: `${faker.lorem.sentences(40)}`, + }; +}).build(); +exports.LessonFactory = Factory_1.default.define(Lesson_1.default, ({ faker }) => { + return { + title: faker.lorem.sentence(6), + description: faker.lorem.sentence(7), + display_order: 1, + duration: luxon_1.DateTime.fromObject({ + hour: faker.datatype.number(2), + minute: faker.datatype.number({ min: 30, max: 59 }), + second: 0, + }).toFormat('HH:mm:ss'), + color_id: faker.datatype.number({ min: 1, max: 15 }), + }; +}) + .relation('content', () => exports.LessonContentFactory) + .build(); +exports.CategoryFactory = Factory_1.default.define(Category_1.default, ({ faker }) => { + return { + title: `Category #${faker.datatype.number(200)}`, + description: faker.lorem.sentence(5), + }; +}).build(); +exports.CourseFactory = Factory_1.default.define(Course_1.default, ({ faker }) => { + return { + title: faker.lorem.sentence(8), + description: faker.lorem.sentence(20), + education_description: faker.lorem.sentence(15), + status: CourseStatusEnum_1.default.PUBLISHED, + }; +}) + .relation('category', () => exports.CategoryFactory) + .relation('lessons', () => exports.LessonFactory) + .relation('teacher', () => exports.TeacherFactory) + .build(); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/database/factories/index.js.map b/build/database/factories/index.js.map new file mode 100644 index 0000000..a560e7a --- /dev/null +++ b/build/database/factories/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../database/factories/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/database/migrations/1617351321869_colors.js b/build/database/migrations/1617351321869_colors.js new file mode 100644 index 0000000..3d7a922 --- /dev/null +++ b/build/database/migrations/1617351321869_colors.js @@ -0,0 +1,38 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +const ColorEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/ColorEnum")); +class Colors extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'colors' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id').primary(); + table + .enu('name', Object.keys(ColorEnum_1.default), { + useNative: true, + enumName: 'color_name_enum', + existingType: false, + schemaName: 'public', + }) + .notNullable(); + table.string('hex').notNullable(); + }); + } + async down() { + await this.schema.raw('DROP TYPE IF EXISTS "color_name_enum" CASCADE'); + this.schema.dropTable(this.tableName); + } +} +exports.default = Colors; +//# sourceMappingURL=1617351321869_colors.js.map \ No newline at end of file diff --git a/build/database/migrations/1617351321869_colors.js.map b/build/database/migrations/1617351321869_colors.js.map new file mode 100644 index 0000000..8ee1342 --- /dev/null +++ b/build/database/migrations/1617351321869_colors.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1617351321869_colors.js","sourceRoot":"","sources":["../../../database/migrations/1617351321869_colors.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAClD,oGAAsD;AAEtD,MAAqB,MAAO,SAAQ,gBAAU;IAA9C;;QACE;;;;mBAAsB,QAAQ;WAAC;IAqBjC,CAAC;IAnBQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK;iBACF,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAS,CAAC,EAAE;gBACnC,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,iBAAiB;gBAC3B,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,QAAQ;aACrB,CAAC;iBACD,WAAW,EAAE,CAAC;YACjB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAtBD,yBAsBC"} \ No newline at end of file diff --git a/build/database/migrations/1626545059988_images.js b/build/database/migrations/1626545059988_images.js new file mode 100644 index 0000000..9829c05 --- /dev/null +++ b/build/database/migrations/1626545059988_images.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class Images extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'images' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id').primary(); + table.string('path').notNullable(); + table.string('name').notNullable(); + table.string('ext').notNullable(); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = Images; +//# sourceMappingURL=1626545059988_images.js.map \ No newline at end of file diff --git a/build/database/migrations/1626545059988_images.js.map b/build/database/migrations/1626545059988_images.js.map new file mode 100644 index 0000000..fe2f184 --- /dev/null +++ b/build/database/migrations/1626545059988_images.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1626545059988_images.js","sourceRoot":"","sources":["../../../database/migrations/1626545059988_images.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,MAAO,SAAQ,gBAAU;IAA9C;;QACE;;;;mBAAsB,QAAQ;WAAC;IAgBjC,CAAC;IAdQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAjBD,yBAiBC"} \ No newline at end of file diff --git a/build/database/migrations/1626545059989_users.js b/build/database/migrations/1626545059989_users.js new file mode 100644 index 0000000..acbdf6f --- /dev/null +++ b/build/database/migrations/1626545059989_users.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class Users extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'users' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.string('id', 21).primary(); + table.string('first_name', 24).notNullable(); + table.string('last_name', 24).notNullable(); + table.text('about'); + table.string('login', 128).notNullable().unique(); + table.string('email').notNullable().unique(); + table.string('password').notNullable(); + table.timestamp('last_login', { useTz: true }); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = Users; +//# sourceMappingURL=1626545059989_users.js.map \ No newline at end of file diff --git a/build/database/migrations/1626545059989_users.js.map b/build/database/migrations/1626545059989_users.js.map new file mode 100644 index 0000000..fbf991f --- /dev/null +++ b/build/database/migrations/1626545059989_users.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1626545059989_users.js","sourceRoot":"","sources":["../../../database/migrations/1626545059989_users.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,KAAM,SAAQ,gBAAU;IAA7C;;QACE;;;;mBAAsB,OAAO;WAAC;IAoBhC,CAAC;IAlBQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;YAClD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACvC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AArBD,wBAqBC"} \ No newline at end of file diff --git a/build/database/migrations/1626964029348_roles.js b/build/database/migrations/1626964029348_roles.js new file mode 100644 index 0000000..f3dfc74 --- /dev/null +++ b/build/database/migrations/1626964029348_roles.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class Roles extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'roles' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id').primary(); + table.string('name').notNullable(); + table.string('slug').unique().notNullable(); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = Roles; +//# sourceMappingURL=1626964029348_roles.js.map \ No newline at end of file diff --git a/build/database/migrations/1626964029348_roles.js.map b/build/database/migrations/1626964029348_roles.js.map new file mode 100644 index 0000000..02ba680 --- /dev/null +++ b/build/database/migrations/1626964029348_roles.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1626964029348_roles.js","sourceRoot":"","sources":["../../../database/migrations/1626964029348_roles.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,KAAM,SAAQ,gBAAU;IAA7C;;QACE;;;;mBAAsB,OAAO;WAAC;IAehC,CAAC;IAbQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAhBD,wBAgBC"} \ No newline at end of file diff --git a/build/database/migrations/1626970448054_users_roles.js b/build/database/migrations/1626970448054_users_roles.js new file mode 100644 index 0000000..b2bf150 --- /dev/null +++ b/build/database/migrations/1626970448054_users_roles.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class UsersRoles extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'users_roles' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id').primary(); + table.string('user_id', 21).unsigned().references('users.id').onDelete('CASCADE'); + table.integer('role_id').unsigned().references('roles.id').onDelete('CASCADE'); + table.unique(['user_id', 'role_id']); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = UsersRoles; +//# sourceMappingURL=1626970448054_users_roles.js.map \ No newline at end of file diff --git a/build/database/migrations/1626970448054_users_roles.js.map b/build/database/migrations/1626970448054_users_roles.js.map new file mode 100644 index 0000000..72d6ae4 --- /dev/null +++ b/build/database/migrations/1626970448054_users_roles.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1626970448054_users_roles.js","sourceRoot":"","sources":["../../../database/migrations/1626970448054_users_roles.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,UAAW,SAAQ,gBAAU;IAAlD;;QACE;;;;mBAAsB,aAAa;WAAC;IActC,CAAC;IAZQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAClF,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/E,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAfD,6BAeC"} \ No newline at end of file diff --git a/build/database/migrations/1627022639849_contacts.js b/build/database/migrations/1627022639849_contacts.js new file mode 100644 index 0000000..f131fbb --- /dev/null +++ b/build/database/migrations/1627022639849_contacts.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class Contacts extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'contacts' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id').primary(); + table.string('user_id', 21).unsigned().references('users.id').unique().onDelete('CASCADE'); + table.string('phone_number').unique(); + table.string('vk_id').unique(); + table.string('twitter_id').unique(); + table.string('telegram_id').unique(); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = Contacts; +//# sourceMappingURL=1627022639849_contacts.js.map \ No newline at end of file diff --git a/build/database/migrations/1627022639849_contacts.js.map b/build/database/migrations/1627022639849_contacts.js.map new file mode 100644 index 0000000..dcb8609 --- /dev/null +++ b/build/database/migrations/1627022639849_contacts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1627022639849_contacts.js","sourceRoot":"","sources":["../../../database/migrations/1627022639849_contacts.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,QAAS,SAAQ,gBAAU;IAAhD;;QACE;;;;mBAAsB,UAAU;WAAC;IAkBnC,CAAC;IAhBQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3F,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;YACtC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YAC/B,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;YACpC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;YACrC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAnBD,2BAmBC"} \ No newline at end of file diff --git a/build/database/migrations/1627295886598_categories.js b/build/database/migrations/1627295886598_categories.js new file mode 100644 index 0000000..48fdfe7 --- /dev/null +++ b/build/database/migrations/1627295886598_categories.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class Categories extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'categories' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.string('id', 21).primary(); + table.string('title').notNullable(); + table.string('description'); + table.integer('color_id').unsigned().references('colors.id'); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = Categories; +//# sourceMappingURL=1627295886598_categories.js.map \ No newline at end of file diff --git a/build/database/migrations/1627295886598_categories.js.map b/build/database/migrations/1627295886598_categories.js.map new file mode 100644 index 0000000..340c1b3 --- /dev/null +++ b/build/database/migrations/1627295886598_categories.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1627295886598_categories.js","sourceRoot":"","sources":["../../../database/migrations/1627295886598_categories.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,UAAW,SAAQ,gBAAU;IAAlD;;QACE;;;;mBAAsB,YAAY;WAAC;IAgBrC,CAAC;IAdQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC5B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7D,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAjBD,6BAiBC"} \ No newline at end of file diff --git a/build/database/migrations/1627300211260_courses.js b/build/database/migrations/1627300211260_courses.js new file mode 100644 index 0000000..c849294 --- /dev/null +++ b/build/database/migrations/1627300211260_courses.js @@ -0,0 +1,46 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +const CourseStatusEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/CourseStatusEnum")); +class Courses extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'courses' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.string('id', 21).primary(); + table.json('image'); + table.string('title').notNullable(); + table.string('description').notNullable(); + table.string('education_description', 250); + table.string('teacher_id', 21).unsigned().references('users.id').notNullable().onDelete('CASCADE'); + table.string('category_id', 21).unsigned().references('categories.id').notNullable().onDelete('CASCADE'); + table.integer('color_id').unsigned().references('colors.id'); + table + .enu('status', Object.values(CourseStatusEnum_1.default), { + useNative: true, + enumName: 'course_status_enum', + existingType: false, + schemaName: 'public', + }) + .notNullable(); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + }); + } + async down() { + await this.schema.raw('DROP TYPE IF EXISTS "course_status_enum" CASCADE'); + this.schema.dropTable(this.tableName); + } +} +exports.default = Courses; +//# sourceMappingURL=1627300211260_courses.js.map \ No newline at end of file diff --git a/build/database/migrations/1627300211260_courses.js.map b/build/database/migrations/1627300211260_courses.js.map new file mode 100644 index 0000000..03e1956 --- /dev/null +++ b/build/database/migrations/1627300211260_courses.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1627300211260_courses.js","sourceRoot":"","sources":["../../../database/migrations/1627300211260_courses.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAKlD,kHAAoE;AAEpE,MAAqB,OAAQ,SAAQ,gBAAU;IAA/C;;QACE;;;;mBAAsB,SAAS;WAAC;IA6BlC,CAAC;IA3BQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,KAAK,CAAC,MAAM,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAC3C,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACnG,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7D,KAAK;iBACF,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,0BAAgB,CAAC,EAAE;gBAC9C,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,oBAAoB;gBAC9B,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,QAAQ;aACrB,CAAC;iBACD,WAAW,EAAE,CAAC;YACjB,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AA9BD,0BA8BC"} \ No newline at end of file diff --git a/build/database/migrations/1627750162275_users_courses.js b/build/database/migrations/1627750162275_users_courses.js new file mode 100644 index 0000000..1509244 --- /dev/null +++ b/build/database/migrations/1627750162275_users_courses.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class UsersCourses extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'users_courses' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id').primary(); + table.string('user_id', 21).unsigned().references('users.id').onDelete('CASCADE'); + table.string('course_id', 21).unsigned().references('courses.id').onDelete('CASCADE'); + table.unique(['user_id', 'course_id']); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = UsersCourses; +//# sourceMappingURL=1627750162275_users_courses.js.map \ No newline at end of file diff --git a/build/database/migrations/1627750162275_users_courses.js.map b/build/database/migrations/1627750162275_users_courses.js.map new file mode 100644 index 0000000..e01749e --- /dev/null +++ b/build/database/migrations/1627750162275_users_courses.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1627750162275_users_courses.js","sourceRoot":"","sources":["../../../database/migrations/1627750162275_users_courses.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,YAAa,SAAQ,gBAAU;IAApD;;QACE;;;;mBAAsB,eAAe;WAAC;IAcxC,CAAC;IAZQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAClF,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtF,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAfD,+BAeC"} \ No newline at end of file diff --git a/build/database/migrations/1628016919501_lessons.js b/build/database/migrations/1628016919501_lessons.js new file mode 100644 index 0000000..8b9615f --- /dev/null +++ b/build/database/migrations/1628016919501_lessons.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class Lessons extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'lessons' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.string('id', 21).primary(); + table.string('course_id', 21).unsigned().references('courses.id').onDelete('CASCADE'); + table.string('title').notNullable(); + table.integer('display_order').notNullable(); + table.integer('color_id').unsigned().references('colors.id'); + table.string('description'); + table.text('linked_video_url').nullable(); + table.time('duration').notNullable(); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = Lessons; +//# sourceMappingURL=1628016919501_lessons.js.map \ No newline at end of file diff --git a/build/database/migrations/1628016919501_lessons.js.map b/build/database/migrations/1628016919501_lessons.js.map new file mode 100644 index 0000000..68117fb --- /dev/null +++ b/build/database/migrations/1628016919501_lessons.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1628016919501_lessons.js","sourceRoot":"","sources":["../../../database/migrations/1628016919501_lessons.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,OAAQ,SAAQ,gBAAU;IAA/C;;QACE;;;;mBAAsB,SAAS;WAAC;IAoBlC,CAAC;IAlBQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtF,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7D,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AArBD,0BAqBC"} \ No newline at end of file diff --git a/build/database/migrations/1628017319337_lesson_contents.js b/build/database/migrations/1628017319337_lesson_contents.js new file mode 100644 index 0000000..0c7c2e4 --- /dev/null +++ b/build/database/migrations/1628017319337_lesson_contents.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class LessonContents extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'lesson_contents' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id').primary(); + table.string('lesson_id', 21).unsigned().references('lessons.id').unique().onDelete('CASCADE'); + table.text('body'); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = LessonContents; +//# sourceMappingURL=1628017319337_lesson_contents.js.map \ No newline at end of file diff --git a/build/database/migrations/1628017319337_lesson_contents.js.map b/build/database/migrations/1628017319337_lesson_contents.js.map new file mode 100644 index 0000000..4d0257b --- /dev/null +++ b/build/database/migrations/1628017319337_lesson_contents.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1628017319337_lesson_contents.js","sourceRoot":"","sources":["../../../database/migrations/1628017319337_lesson_contents.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,cAAe,SAAQ,gBAAU;IAAtD;;QACE;;;;mBAAsB,iBAAiB;WAAC;IAe1C,CAAC;IAbQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/F,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAhBD,iCAgBC"} \ No newline at end of file diff --git a/build/database/migrations/1628622517837_courses_likes.js b/build/database/migrations/1628622517837_courses_likes.js new file mode 100644 index 0000000..0a81b91 --- /dev/null +++ b/build/database/migrations/1628622517837_courses_likes.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class CoursesLikes extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'courses_likes' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id').primary(); + table.string('user_id', 21).unsigned().references('users.id').onDelete('CASCADE'); + table.string('course_id', 21).unsigned().references('courses.id').onDelete('CASCADE'); + table.timestamp('liked_on', { useTz: true }); + table.unique(['user_id', 'course_id']); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = CoursesLikes; +//# sourceMappingURL=1628622517837_courses_likes.js.map \ No newline at end of file diff --git a/build/database/migrations/1628622517837_courses_likes.js.map b/build/database/migrations/1628622517837_courses_likes.js.map new file mode 100644 index 0000000..b680906 --- /dev/null +++ b/build/database/migrations/1628622517837_courses_likes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1628622517837_courses_likes.js","sourceRoot":"","sources":["../../../database/migrations/1628622517837_courses_likes.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,YAAa,SAAQ,gBAAU;IAApD;;QACE;;;;mBAAsB,eAAe;WAAC;IAexC,CAAC;IAbQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAClF,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtF,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAhBD,+BAgBC"} \ No newline at end of file diff --git a/build/database/migrations/1637080400230_lesson_materials.js b/build/database/migrations/1637080400230_lesson_materials.js new file mode 100644 index 0000000..594037e --- /dev/null +++ b/build/database/migrations/1637080400230_lesson_materials.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class LessonMaterials extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'lesson_materials' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id').primary(); + table.string('name').notNullable(); + table.integer('size').notNullable(); + table.string('client_name').notNullable(); + table.string('ext').notNullable(); + table.string('lesson_id', 21).unsigned().references('lessons.id').onDelete('CASCADE'); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = LessonMaterials; +//# sourceMappingURL=1637080400230_lesson_materials.js.map \ No newline at end of file diff --git a/build/database/migrations/1637080400230_lesson_materials.js.map b/build/database/migrations/1637080400230_lesson_materials.js.map new file mode 100644 index 0000000..f5e74d4 --- /dev/null +++ b/build/database/migrations/1637080400230_lesson_materials.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1637080400230_lesson_materials.js","sourceRoot":"","sources":["../../../database/migrations/1637080400230_lesson_materials.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,eAAgB,SAAQ,gBAAU;IAAvD;;QACE;;;;mBAAsB,kBAAkB;WAAC;IAkB3C,CAAC;IAhBQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtF,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAnBD,kCAmBC"} \ No newline at end of file diff --git a/build/database/migrations/1640112055569_lesson_progresses.js b/build/database/migrations/1640112055569_lesson_progresses.js new file mode 100644 index 0000000..578edd4 --- /dev/null +++ b/build/database/migrations/1640112055569_lesson_progresses.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class LessonProgresses extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'lesson_progresses' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id'); + table.string('user_id', 21).unsigned().references('users.id').onDelete('CASCADE'); + table.string('lesson_id', 21).unsigned().references('lessons.id').onDelete('CASCADE'); + table.boolean('is_watched').notNullable(); + table.unique(['user_id', 'lesson_id']); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = LessonProgresses; +//# sourceMappingURL=1640112055569_lesson_progresses.js.map \ No newline at end of file diff --git a/build/database/migrations/1640112055569_lesson_progresses.js.map b/build/database/migrations/1640112055569_lesson_progresses.js.map new file mode 100644 index 0000000..20be637 --- /dev/null +++ b/build/database/migrations/1640112055569_lesson_progresses.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1640112055569_lesson_progresses.js","sourceRoot":"","sources":["../../../database/migrations/1640112055569_lesson_progresses.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,gBAAiB,SAAQ,gBAAU;IAAxD;;QACE;;;;mBAAsB,mBAAmB;WAAC;IAe5C,CAAC;IAbQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAClF,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtF,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAhBD,mCAgBC"} \ No newline at end of file diff --git a/build/database/migrations/1640897230275_lesson_videos.js b/build/database/migrations/1640897230275_lesson_videos.js new file mode 100644 index 0000000..5cd478d --- /dev/null +++ b/build/database/migrations/1640897230275_lesson_videos.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); +class LessonVideos extends Schema_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "tableName", { + enumerable: true, + configurable: true, + writable: true, + value: 'lesson_videos' + }); + } + async up() { + this.schema.createTable(this.tableName, table => { + table.increments('id'); + table.string('lesson_id', 21).unsigned().references('lessons.id').onDelete('CASCADE').notNullable(); + table.string('name').notNullable(); + table.integer('size').notNullable(); + table.string('client_name').notNullable(); + table.string('ext').notNullable(); + table.string('url').notNullable(); + table.timestamp('created_at', { useTz: true }); + table.timestamp('updated_at', { useTz: true }); + table.unique(['lesson_id']); + }); + } + async down() { + this.schema.dropTable(this.tableName); + } +} +exports.default = LessonVideos; +//# sourceMappingURL=1640897230275_lesson_videos.js.map \ No newline at end of file diff --git a/build/database/migrations/1640897230275_lesson_videos.js.map b/build/database/migrations/1640897230275_lesson_videos.js.map new file mode 100644 index 0000000..8651d5d --- /dev/null +++ b/build/database/migrations/1640897230275_lesson_videos.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1640897230275_lesson_videos.js","sourceRoot":"","sources":["../../../database/migrations/1640897230275_lesson_videos.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAElD,MAAqB,YAAa,SAAQ,gBAAU;IAApD;;QACE;;;;mBAAsB,eAAe;WAAC;IAoBxC,CAAC;IAlBQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC9C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YACpG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AArBD,+BAqBC"} \ No newline at end of file diff --git a/build/database/seeders/Color.js b/build/database/seeders/Color.js new file mode 100644 index 0000000..32ec0f1 --- /dev/null +++ b/build/database/seeders/Color.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Seeder_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Seeder")); +const ColorEnum_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Datatypes/Enums/ColorEnum")); +const Color_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Color")); +class RoleSeeder extends Seeder_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "Color", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + async run() { + this.Color = Color_1.default; + await this.Color.createMany(Object.keys(ColorEnum_1.default).map(k => ({ + name: k, + hex: ColorEnum_1.default[k], + }))); + } +} +exports.default = RoleSeeder; +//# sourceMappingURL=Color.js.map \ No newline at end of file diff --git a/build/database/seeders/Color.js.map b/build/database/seeders/Color.js.map new file mode 100644 index 0000000..01189fa --- /dev/null +++ b/build/database/seeders/Color.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Color.js","sourceRoot":"","sources":["../../../database/seeders/Color.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAClD,oGAAsD;AACtD,mFAAqC;AAErC,MAAqB,UAAW,SAAQ,gBAAU;IAAlD;;QACE;;;;;WAA4B;IAY9B,CAAC;IAVQ,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,KAAK,GAAG,eAAK,CAAC;QAEnB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CACxB,MAAM,CAAC,IAAI,CAAC,mBAAS,CAAmC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClE,IAAI,EAAE,CAAC;YACP,GAAG,EAAE,mBAAS,CAAC,CAAC,CAAC;SAClB,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;CACF;AAbD,6BAaC"} \ No newline at end of file diff --git a/build/database/seeders/Course.js b/build/database/seeders/Course.js new file mode 100644 index 0000000..8c10585 --- /dev/null +++ b/build/database/seeders/Course.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Seeder_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Seeder")); +const factories_1 = global[Symbol.for('ioc.use')]("Database/factories"); +class CourseSeeder extends Seeder_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "CourseFactory", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + async run() { + this.CourseFactory = factories_1.CourseFactory; + const LESSONS_COUNT = 10; + await this.CourseFactory.with('lessons', LESSONS_COUNT, lessonFactory => lessonFactory + .with('content') + .merge(new Array(LESSONS_COUNT).fill(LESSONS_COUNT).map((_, i) => ({ display_order: i + 1 })))) + .with('category') + .with('teacher') + .createMany(3); + } +} +exports.default = CourseSeeder; +//# sourceMappingURL=Course.js.map \ No newline at end of file diff --git a/build/database/seeders/Course.js.map b/build/database/seeders/Course.js.map new file mode 100644 index 0000000..caa6e89 --- /dev/null +++ b/build/database/seeders/Course.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Course.js","sourceRoot":"","sources":["../../../database/seeders/Course.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAClD,wEAAmD;AAEnD,MAAqB,YAAa,SAAQ,gBAAU;IAApD;;QACE;;;;;WAA4C;IAgB9C,CAAC;IAdQ,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,aAAa,GAAG,yBAAa,CAAC;QAEnC,MAAM,aAAa,GAAG,EAAE,CAAC;QAEzB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,CACtE,aAAa;aACV,IAAI,CAAC,SAAS,CAAC;aACf,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CACjG;aACE,IAAI,CAAC,UAAU,CAAC;aAChB,IAAI,CAAC,SAAS,CAAC;aACf,UAAU,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;CACF;AAjBD,+BAiBC"} \ No newline at end of file diff --git a/build/database/seeders/MainSeeder/Index.js b/build/database/seeders/MainSeeder/Index.js new file mode 100644 index 0000000..c1af82b --- /dev/null +++ b/build/database/seeders/MainSeeder/Index.js @@ -0,0 +1,47 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Seeder_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Seeder")); +const Application_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Application")); +class IndexSeeder extends Seeder_1.default { + async runSeeder(seeder) { + const Seeder = seeder.default; + if (Seeder.developmentOnly && !Application_1.default.inDev) { + return; + } + await new Seeder(this.client).run(); + } + async run() { + await this.runSeeder(await Promise.resolve().then(() => __importStar(require('../Role')))); + await this.runSeeder(await Promise.resolve().then(() => __importStar(require('../Color')))); + await this.runSeeder(await Promise.resolve().then(() => __importStar(require('../User')))); + await this.runSeeder(await Promise.resolve().then(() => __importStar(require('../Course')))); + } +} +exports.default = IndexSeeder; +//# sourceMappingURL=Index.js.map \ No newline at end of file diff --git a/build/database/seeders/MainSeeder/Index.js.map b/build/database/seeders/MainSeeder/Index.js.map new file mode 100644 index 0000000..d938d2d --- /dev/null +++ b/build/database/seeders/MainSeeder/Index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../database/seeders/MainSeeder/Index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uFAAkD;AAClD,gGAAuD;AAEvD,MAAqB,WAAY,SAAQ,gBAAU;IACzC,KAAK,CAAC,SAAS,CAAC,MAAsC;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAM9B,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,qBAAW,CAAC,KAAK,EAAE;YAChD,OAAO;SACR;QAED,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,IAAI,CAAC,SAAS,CAAC,wDAAa,SAAS,GAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,SAAS,CAAC,wDAAa,UAAU,GAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,SAAS,CAAC,wDAAa,SAAS,GAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,SAAS,CAAC,wDAAa,WAAW,GAAC,CAAC,CAAC;IAClD,CAAC;CACF;AArBD,8BAqBC"} \ No newline at end of file diff --git a/build/database/seeders/Role.js b/build/database/seeders/Role.js new file mode 100644 index 0000000..d4012ef --- /dev/null +++ b/build/database/seeders/Role.js @@ -0,0 +1,37 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Seeder_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Seeder")); +const Role_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Role")); +class RoleSeeder extends Seeder_1.default { + constructor() { + super(...arguments); + Object.defineProperty(this, "Role", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + async run() { + this.Role = Role_1.default; + await this.Role.createMany([ + { + name: 'Administrator', + slug: 'admin', + }, + { + name: 'Teacher', + slug: 'teacher', + }, + { + name: 'Student', + slug: 'student', + }, + ]); + } +} +exports.default = RoleSeeder; +//# sourceMappingURL=Role.js.map \ No newline at end of file diff --git a/build/database/seeders/Role.js.map b/build/database/seeders/Role.js.map new file mode 100644 index 0000000..89538ce --- /dev/null +++ b/build/database/seeders/Role.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../database/seeders/Role.ts"],"names":[],"mappings":";;;;;AAAA,uFAAkD;AAClD,iFAAmC;AAEnC,MAAqB,UAAW,SAAQ,gBAAU;IAAlD;;QACE;;;;;WAA0B;IAoB5B,CAAC;IAlBQ,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,IAAI,GAAG,cAAI,CAAC;QAEjB,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACzB;gBACE,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,OAAO;aACd;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF,CAAC,CAAC;IACL,CAAC;CACF;AArBD,6BAqBC"} \ No newline at end of file diff --git a/build/database/seeders/User.js b/build/database/seeders/User.js new file mode 100644 index 0000000..8b9032c --- /dev/null +++ b/build/database/seeders/User.js @@ -0,0 +1,45 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Seeder_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Seeder")); +const Role_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/Role")); +const User_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Models/User")); +const factories_1 = global[Symbol.for('ioc.use')]("Database/factories"); +class UserSeeder extends Seeder_1.default { + async run() { + const roles = { + admin: await Role_1.default.findByOrFail('slug', 'admin'), + teacher: await Role_1.default.findByOrFail('slug', 'teacher'), + student: await Role_1.default.findByOrFail('slug', 'student'), + }; + const administrator = await User_1.default.create({ + first_name: 'John', + last_name: 'Doe', + login: 'admin', + password: '123456', + email: 'administrator@example.com', + }); + await administrator.related('roles').attach([roles.admin.id]); + const teacher = await User_1.default.create({ + first_name: 'Hanna', + last_name: 'Liv', + login: 'teacher', + password: '123456', + email: 'teacher@example.com', + }); + await teacher.related('roles').attach([roles.teacher.id]); + const student = await User_1.default.create({ + first_name: 'Ylfa', + last_name: 'Erna', + login: 'student', + password: '123456', + email: 'student@example.com', + }); + await student.related('roles').attach([roles.student.id]); + await factories_1.StudentFactory.with('contacts').createMany(20); + } +} +exports.default = UserSeeder; +//# sourceMappingURL=User.js.map \ No newline at end of file diff --git a/build/database/seeders/User.js.map b/build/database/seeders/User.js.map new file mode 100644 index 0000000..b6458d4 --- /dev/null +++ b/build/database/seeders/User.js.map @@ -0,0 +1 @@ +{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../database/seeders/User.ts"],"names":[],"mappings":";;;;;AACA,uFAAkD;AAClD,iFAAmC;AACnC,iFAAmC;AACnC,wEAAoD;AAEpD,MAAqB,UAAW,SAAQ,gBAAU;IACzC,KAAK,CAAC,GAAG;QAId,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,MAAM,cAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;YAC/C,OAAO,EAAE,MAAM,cAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;YACnD,OAAO,EAAE,MAAM,cAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;SACpD,CAAC;QAKF,MAAM,aAAa,GAAG,MAAM,cAAI,CAAC,MAAM,CAAC;YACtC,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,2BAA2B;SACnC,CAAC,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAK9D,MAAM,OAAO,GAAG,MAAM,cAAI,CAAC,MAAM,CAAC;YAChC,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,qBAAqB;SAC7B,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAK1D,MAAM,OAAO,GAAG,MAAM,cAAI,CAAC,MAAM,CAAC;YAChC,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,qBAAqB;SAC7B,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAK1D,MAAM,0BAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;CACF;AApDD,6BAoDC"} \ No newline at end of file diff --git a/build/env.js b/build/env.js new file mode 100644 index 0000000..83ca8ed --- /dev/null +++ b/build/env.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); +exports.default = Env_1.default.rules({ + HOST: Env_1.default.schema.string({ format: 'host' }), + PORT: Env_1.default.schema.number(), + APP_KEY: Env_1.default.schema.string(), + APP_NAME: Env_1.default.schema.string(), + NODE_ENV: Env_1.default.schema.enum(['development', 'production', 'test']), + DRIVE_DISK: Env_1.default.schema.enum(['local', 's3']), + PG_HOST: Env_1.default.schema.string({ format: 'host' }), + PG_PORT: Env_1.default.schema.number(), + PG_USER: Env_1.default.schema.string(), + PG_PASSWORD: Env_1.default.schema.string.optional(), + PG_DB_NAME: Env_1.default.schema.string(), + REDIS_CONNECTION: Env_1.default.schema.enum(['local', 'session']), + REDIS_HOST: Env_1.default.schema.string({ format: 'host' }), + REDIS_PORT: Env_1.default.schema.number(), + REDIS_PASSWORD: Env_1.default.schema.string.optional(), + MAILER: Env_1.default.schema.enum(['mailgun', 'smtp']), + SMTP_HOST: Env_1.default.schema.string({ format: 'host' }), + SMTP_PORT: Env_1.default.schema.number(), + SMTP_USERNAME: Env_1.default.schema.string(), + SMTP_PASSWORD: Env_1.default.schema.string(), + MAILGUN_API_KEY: Env_1.default.schema.string(), + MAILGUN_DOMAIN: Env_1.default.schema.string(), + S3_KEY: Env_1.default.schema.string(), + S3_SECRET: Env_1.default.schema.string(), + S3_BUCKET: Env_1.default.schema.string(), + S3_REGION: Env_1.default.schema.string(), + S3_ENDPOINT: Env_1.default.schema.string.optional(), +}); +//# sourceMappingURL=env.js.map \ No newline at end of file diff --git a/build/env.js.map b/build/env.js.map new file mode 100644 index 0000000..b1b8b4f --- /dev/null +++ b/build/env.js.map @@ -0,0 +1 @@ +{"version":3,"file":"env.js","sourceRoot":"","sources":["../env.ts"],"names":[],"mappings":";;;;;AAcA,gFAAuC;AAEvC,kBAAe,aAAG,CAAC,KAAK,CAAC;IACvB,IAAI,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC3C,IAAI,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC5B,QAAQ,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC7B,QAAQ,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;IACzE,UAAU,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAU,CAAC;IACrD,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC9C,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC5B,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC5B,WAAW,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IACzC,UAAU,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC/B,gBAAgB,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAU,CAAC;IAChE,UAAU,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjD,UAAU,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC/B,cAAc,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAU,CAAC;IACrD,SAAS,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAChD,SAAS,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC9B,aAAa,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAClC,aAAa,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAClC,eAAe,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IACpC,cAAc,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IACnC,MAAM,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC3B,SAAS,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC9B,WAAW,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC"} \ No newline at end of file diff --git a/build/package-lock.json b/build/package-lock.json new file mode 100644 index 0000000..99d03f4 --- /dev/null +++ b/build/package-lock.json @@ -0,0 +1,19402 @@ +{ + "name": "server", + "version": "1.3.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "server", + "version": "1.3.1", + "dependencies": { + "@adonisjs/application": "^5.2.5", + "@adonisjs/attachment-lite": "^1.0.7", + "@adonisjs/auth": "^8.2.1", + "@adonisjs/bouncer": "^2.3.0", + "@adonisjs/core": "^5.8.3", + "@adonisjs/drive": "^2.2.0", + "@adonisjs/drive-s3": "^1.3.1", + "@adonisjs/lucid": "^18.0.1", + "@adonisjs/mail": "^8.1.2", + "@adonisjs/redis": "^7.3.0", + "@adonisjs/repl": "^3.1.11", + "@adonisjs/view": "^6.1.5", + "@types/socket.io": "^3.0.2", + "cloudinary": "^1.26.3", + "luxon": "^2.4.0", + "nanoid": "^3.3.4", + "pg": "^8.7.3", + "phc-bcrypt": "^1.0.7", + "proxy-addr": "^2.0.7", + "reflect-metadata": "^0.1.13", + "socket.io": "^4.5.1", + "source-map-support": "^0.5.21" + }, + "devDependencies": { + "@adonisjs/assembler": "^5.7.0", + "@typescript-eslint/eslint-plugin": "^5.27.0", + "@typescript-eslint/parser": "^5.27.0", + "adonis-preset-ts": "^2.1.0", + "eslint": "^8.17.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.0.0", + "pino-pretty": "^8.0.0", + "prettier": "^2.6.2", + "typescript": "^4.7.3", + "youch": "^3.2.0", + "youch-terminal": "^2.1.4" + } + }, + "node_modules/@adonisjs/ace": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-11.3.1.tgz", + "integrity": "sha512-Ho3+Lk/16OSjX3CfhxsoLUTlcVG4sDlXUwHx+Zry/RLft5M6plT5ln0WkZvL7tqtb1uCZgP5YiMrMtDjSRzZLA==", + "dependencies": { + "@poppinss/cliui": "^3.0.2", + "@poppinss/prompts": "^2.0.2", + "@poppinss/utils": "^4.0.4", + "fs-extra": "^10.1.0", + "getopts": "^2.3.0", + "leven": "^3.1.0", + "mustache": "^4.2.0", + "slash": "^3.0.0", + "term-size": "^2.2.1" + }, + "peerDependencies": { + "@adonisjs/application": "^5.0.0" + } + }, + "node_modules/@adonisjs/ace/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/application": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-5.2.5.tgz", + "integrity": "sha512-gWhW/dAzMb8019kTPzY+1QIhnXoBjZgRxkMFWz7BQzS8GUJr8BDzrRpGzhWoj8Xpal3EkprN3gv5Upcqvg6uEQ==", + "dependencies": { + "@adonisjs/config": "^3.0.8", + "@adonisjs/env": "^3.0.9", + "@adonisjs/fold": "^8.2.0", + "@adonisjs/logger": "^4.1.4", + "@adonisjs/profiler": "^6.0.9", + "@poppinss/utils": "^4.0.4", + "semver": "^7.3.7" + } + }, + "node_modules/@adonisjs/application/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/application/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@adonisjs/assembler": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-5.7.0.tgz", + "integrity": "sha512-13ombiG4YLzrOnYvY6qIAHRX9Wc6KnAbmxmyVTd3gxLq/knqHLX8apwk9O/hebf7t8lBxwnIVmw61C9dYBBsqg==", + "dev": true, + "dependencies": { + "@adonisjs/application": "^5.2.4", + "@adonisjs/env": "^3.0.9", + "@adonisjs/ioc-transformer": "^2.3.4", + "@adonisjs/require-ts": "^2.0.12", + "@adonisjs/sink": "^5.3.2", + "@poppinss/chokidar-ts": "^3.3.5", + "@poppinss/cliui": "^3.0.2", + "@poppinss/utils": "^4.0.4", + "cpy": "^8.1.2", + "emittery": "^0.11.0", + "execa": "^5.1.1", + "fs-extra": "^10.0.1", + "get-port": "^5.1.1", + "glob-parent": "^6.0.2", + "has-yarn": "^2.1.0", + "picomatch": "^2.3.1", + "slash": "^3.0.0" + }, + "peerDependencies": { + "@adonisjs/core": "^5.1.0" + } + }, + "node_modules/@adonisjs/assembler/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dev": true, + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/attachment-lite": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@adonisjs/attachment-lite/-/attachment-lite-1.0.7.tgz", + "integrity": "sha512-LIMVQ1ejrsDfzUAWwhL7W8GnWBFkEn9SvnY8Q8FnTihYD+Mjt3TO7Nxt5JhO3ZtuuvzcJMQUrH6xjYC4p/Yb8Q==", + "dependencies": { + "@poppinss/utils": "^4.0.4" + }, + "peerDependencies": { + "@adonisjs/core": "^5.3.0", + "@adonisjs/lucid": "^17.0.0 || ^18.0.0" + } + }, + "node_modules/@adonisjs/attachment-lite/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/auth": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-8.2.1.tgz", + "integrity": "sha512-rLtbefIzyHAq3UZgiE47WyZyc+92t4jPF8n/MeRV6FNIIdnAdQypBrz+K5lZZDNF5n3kOcbeii6SNH4KvDm6Og==", + "dependencies": { + "@poppinss/hooks": "^5.0.3", + "@poppinss/utils": "^4.0.4", + "luxon": "^2.4.0" + }, + "peerDependencies": { + "@adonisjs/core": "^5.7.1", + "@adonisjs/i18n": "^1.5.0", + "@adonisjs/lucid": "^18.0.0", + "@adonisjs/redis": "^7.2.0", + "@adonisjs/session": "^6.2.0" + }, + "peerDependenciesMeta": { + "@adonisjs/i18n": { + "optional": true + }, + "@adonisjs/lucid": { + "optional": true + }, + "@adonisjs/redis": { + "optional": true + }, + "@adonisjs/session": { + "optional": true + } + } + }, + "node_modules/@adonisjs/auth/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/bodyparser": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-8.1.6.tgz", + "integrity": "sha512-8OyQO4BeIKK+xJSH1YdSZVTllTsq0uTHcZw4a/7eShXKaVT0z8/IupIG2uymVpPPSfu+3kbN9ueipqFsvz9MpA==", + "dependencies": { + "@poppinss/co-body": "^1.1.3", + "@poppinss/multiparty": "^2.0.1", + "@poppinss/utils": "^4.0.4", + "bytes": "^3.1.2", + "end-of-stream": "^1.4.4", + "file-type": "^16.5.3", + "fs-extra": "^10.1.0", + "media-typer": "^1.1.0", + "slash": "^3.0.0" + }, + "peerDependencies": { + "@adonisjs/application": "^5.0.0", + "@adonisjs/drive": "^2.0.0", + "@adonisjs/http-server": "^5.0.0" + } + }, + "node_modules/@adonisjs/bodyparser/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/bouncer": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@adonisjs/bouncer/-/bouncer-2.3.0.tgz", + "integrity": "sha512-wJTIgIkDXtUyeCJGX/iV/EdrLQAuIU0YSwl8Lxn7hcYec9VbsMJ5aYIXeSNtOqECNqVm7KFdzyJiOEij9Luoqg==", + "dependencies": { + "@poppinss/utils": "^4.0.4" + }, + "peerDependencies": { + "@adonisjs/auth": "^8.0.0", + "@adonisjs/core": "^5.1.0", + "@adonisjs/view": "^6.0.0" + }, + "peerDependenciesMeta": { + "@adonisjs/auth": { + "optional": true + }, + "@adonisjs/view": { + "optional": true + } + } + }, + "node_modules/@adonisjs/bouncer/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/config": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-3.0.8.tgz", + "integrity": "sha512-rquKb2GVmrITfkdwbmFoTIWJRCsgci8g/FJOz3iG35AB6/dW2ksSa6TSRH+zC4fKb3MO/rkS2guUpxKTvG7wHA==", + "dependencies": { + "@poppinss/utils": "^4.0.2" + } + }, + "node_modules/@adonisjs/config/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/core": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-5.8.3.tgz", + "integrity": "sha512-hzIfOp+leo4KD45uh4TYjLzCBPFgreOlEqJX/+LBmN40dh6S6Dhl6ayWSHrD2N5yiA+5LXBY/Drw3zfjUJQ8ZQ==", + "dependencies": { + "@adonisjs/ace": "^11.3.0", + "@adonisjs/application": "^5.2.5", + "@adonisjs/bodyparser": "^8.1.6", + "@adonisjs/drive": "^2.2.0", + "@adonisjs/encryption": "^4.0.8", + "@adonisjs/events": "^7.2.1", + "@adonisjs/hash": "^7.1.1", + "@adonisjs/http-server": "^5.10.0", + "@adonisjs/validator": "^12.3.2", + "@poppinss/cliui": "^3.0.2", + "@poppinss/manager": "^5.0.2", + "@poppinss/utils": "^4.0.4", + "fs-extra": "^10.1.0", + "macroable": "^7.0.1", + "memfs": "^3.4.3", + "serve-static": "^1.15.0", + "stringify-attributes": "^2.0.0" + } + }, + "node_modules/@adonisjs/core/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/drive": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/drive/-/drive-2.2.0.tgz", + "integrity": "sha512-Js5/kiNZ2d8q9FBnmhh11N4VcmodhU4JlBF3HvGmITOeLFTpljhmBEX9SLLZgi3mRxhB43Z/tC3CSTpkiGGKOQ==", + "dependencies": { + "@poppinss/manager": "^5.0.2", + "@poppinss/utils": "^4.0.4", + "@types/fs-extra": "^9.0.13", + "etag": "^1.8.1", + "fs-extra": "^10.1.0", + "memfs": "^3.4.1" + }, + "peerDependencies": { + "@adonisjs/application": "^5.0.0", + "@adonisjs/http-server": "^5.0.0" + } + }, + "node_modules/@adonisjs/drive-s3": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@adonisjs/drive-s3/-/drive-s3-1.3.1.tgz", + "integrity": "sha512-Zzy59A98E270Tomgmoo1GyqvUeCN77EX/AHy/J/FX0enT/fQU0+vOs6SmrAmnN3I6oQR/xD23hd1piwkCdEnoA==", + "dependencies": { + "@aws-sdk/client-s3": "^3.92.0", + "@aws-sdk/lib-storage": "^3.92.0", + "@aws-sdk/s3-request-presigner": "^3.92.0", + "get-stream": "^6.0.1" + }, + "peerDependencies": { + "@adonisjs/core": "^5.0.0" + } + }, + "node_modules/@adonisjs/drive/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/encryption": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@adonisjs/encryption/-/encryption-4.0.8.tgz", + "integrity": "sha512-zMWbIESPHXafsbiLJyON/hlRYwrTIA3PuTil7xC8W4ngC36PgWe86Ra0x0t961u1We/LaSGkT8Vn93DymqB3aA==", + "dependencies": { + "@poppinss/utils": "^4.0.3" + }, + "peerDependencies": { + "@adonisjs/application": "^5.0.0" + } + }, + "node_modules/@adonisjs/encryption/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/env": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-3.0.9.tgz", + "integrity": "sha512-9lxGmOQuF4FpUQ6NIwL/YQumaXG+2Wt8jQlQptplSUTasy6DHSEp7/SYvtC2RD9vxwn4gsptNCo+f8YRiqUvwQ==", + "dependencies": { + "@poppinss/utils": "^4.0.2", + "dotenv": "^16.0.0", + "validator": "^13.7.0" + } + }, + "node_modules/@adonisjs/env/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/events": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-7.2.1.tgz", + "integrity": "sha512-N+ewQ19pvdWVIRGBeio1GqlMRJpHpZ+ZHCjhObI+bqoCh5nBApumW0JYe4blyMnUbUAtA9Aq1m1QbGaE7pRMcw==", + "dependencies": { + "emittery": "^0.10.0" + }, + "peerDependencies": { + "@adonisjs/application": "^5.0.0" + } + }, + "node_modules/@adonisjs/events/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/@adonisjs/fold": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-8.2.0.tgz", + "integrity": "sha512-Uoo2HPp4SShIkGOF3+p3gT09W3j0zpkK+fOpPyYPTqYm7CWAunklTlowqX45b6CAVb5DCcORDUB8ia4D1ijeKg==", + "dependencies": { + "@poppinss/utils": "^4.0.4" + } + }, + "node_modules/@adonisjs/fold/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/hash": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-7.1.1.tgz", + "integrity": "sha512-Oso6uIbgkNfqh4LM+m1IlDs6D+KvuLXia0pOyUR3GUwc6oRfrfVwaaONZI0+LWsNBfKPs5kRjxEq/Rq6m+VkeQ==", + "dependencies": { + "@phc/format": "^1.0.0", + "@poppinss/manager": "^5.0.2", + "@poppinss/utils": "^4.0.4" + }, + "peerDependencies": { + "@adonisjs/application": "^5.0.0" + } + }, + "node_modules/@adonisjs/hash/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/http-server": { + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-5.10.1.tgz", + "integrity": "sha512-8C14Qd+ySW9pXrH3QeEbXsiJiOiIQtiiQ+MReKPZMbt3A19wqZEBAbgcHFvUEN72lpUHQBgGE5NoQuSBKi9/zw==", + "dependencies": { + "@poppinss/matchit": "^3.1.2", + "@poppinss/utils": "^4.0.4", + "accepts": "^1.3.8", + "co-compose": "^7.0.2", + "content-disposition": "^0.5.4", + "cookie": "^0.5.0", + "destroy": "^1.2.0", + "encodeurl": "^1.0.2", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "haye": "^3.0.0", + "macroable": "^7.0.1", + "mime-types": "^2.1.35", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "pluralize": "^8.0.0", + "proxy-addr": "^2.0.7", + "qs": "^6.10.3", + "tmp-cache": "^1.1.0", + "type-is": "^1.6.18", + "vary": "^1.1.2" + }, + "peerDependencies": { + "@adonisjs/application": "^5.0.0", + "@adonisjs/encryption": "^4.0.0" + } + }, + "node_modules/@adonisjs/http-server/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/ioc-transformer": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@adonisjs/ioc-transformer/-/ioc-transformer-2.3.4.tgz", + "integrity": "sha512-ik1C7f0Hbqenw6S1Ty06B4pznGfpUH5bL2fiCYgwq+jKPw8CKdsTQKvYudS6Tj68Nr6Mpqow4RNbvFV/OC0mZg==", + "dev": true + }, + "node_modules/@adonisjs/logger": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-4.1.4.tgz", + "integrity": "sha512-OEfve1bqv3IzRWPTKauJb0Gjq6GIrZhbl6alpFaKXMbHbK49ocgo+2Q/N2WAl58kj5VIt/4CE3q2EG44AHfhDA==", + "dependencies": { + "@poppinss/utils": "^4.0.3", + "@types/pino": "^6.3.12", + "abstract-logging": "^2.0.1", + "pino": "^6.14.0" + } + }, + "node_modules/@adonisjs/logger/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/lucid": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-18.0.1.tgz", + "integrity": "sha512-oiE586osItDN1v7L+O44tHZupR4JyVyqpG5Oel6EdqfnPb7qhc+jKfBl81XA96MwZtLvI8yLGAx0e+GLAPgtXA==", + "dependencies": { + "@faker-js/faker": "^6.3.1", + "@poppinss/hooks": "^5.0.3", + "@poppinss/utils": "^4.0.4", + "fast-deep-equal": "^3.1.3", + "igniculus": "^1.5.0", + "knex": "^2.0.0", + "knex-dynamic-connection": "^3.0.0", + "luxon": "^2.4.0", + "macroable": "^7.0.1", + "pretty-hrtime": "^1.0.3", + "qs": "^6.10.3", + "slash": "^3.0.0" + }, + "peerDependencies": { + "@adonisjs/core": "^5.1.0" + } + }, + "node_modules/@adonisjs/lucid/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/mail": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@adonisjs/mail/-/mail-8.1.2.tgz", + "integrity": "sha512-5mjSbrm9CZdjMVB3Ht3LBfifZPtijAK51ZmtCrga5gPhNYn3SgJdhD0NIg05ROq1+au1g53I8cZ8cESA3g84DQ==", + "dependencies": { + "@poppinss/colors": "^3.0.2", + "@poppinss/manager": "^5.0.2", + "@poppinss/utils": "^4.0.4", + "fastq": "^1.13.0", + "get-stream": "^6.0.1", + "got": "^11.8.2", + "ical-generator": "^3.4.1", + "multi-part": "^3.0.0", + "nodemailer": "^6.7.3" + }, + "peerDependencies": { + "@adonisjs/core": "^5.1.0", + "@adonisjs/view": "^6.0.0" + } + }, + "node_modules/@adonisjs/mail/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/profiler": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/@adonisjs/profiler/-/profiler-6.0.9.tgz", + "integrity": "sha512-V1bJPPDTn05NzAKUEICnYtWi9fC8NownUToaqxVkWOUovYBO6ubt06qtH1Uv9zvUjB2PKHUn+ieDAOgyHle09A==", + "dependencies": { + "@poppinss/utils": "^4.0.3", + "jest-worker": "^27.5.1" + }, + "peerDependencies": { + "@adonisjs/logger": "^4.0.0" + } + }, + "node_modules/@adonisjs/profiler/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/redis": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@adonisjs/redis/-/redis-7.3.0.tgz", + "integrity": "sha512-oSwzjbLhnPmU+yQs6g48piRjlZxNdRwAUfMg6vqnhKWklPG1EOGLi9kd0I9JhIygGpwtzYYVRsazCK+p2vDtYQ==", + "dependencies": { + "@poppinss/utils": "^4.0.4", + "@types/ioredis": "^4.28.10", + "ioredis": "^5.0.5" + }, + "peerDependencies": { + "@adonisjs/core": "^5.1.0" + } + }, + "node_modules/@adonisjs/redis/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/repl": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/@adonisjs/repl/-/repl-3.1.11.tgz", + "integrity": "sha512-t4xN+G+fa/XeZ+7qHnFbTk1bri/4RIGdFDk1cq2SeZI3nfu3E8Ma62uQVc8U3AAroN51plzXVcUoQ/Iw8q1P+Q==", + "dependencies": { + "@poppinss/colors": "^3.0.2", + "node-repl-await": "^0.1.2", + "parse-imports": "0.0.5", + "string-width": "^4.2.2" + }, + "peerDependencies": { + "@adonisjs/core": "^5.1.0" + } + }, + "node_modules/@adonisjs/require-ts": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@adonisjs/require-ts/-/require-ts-2.0.12.tgz", + "integrity": "sha512-zSXTtJOQV0rutj+If6SPOL0XL+Lp5dgxdyGP25XfaQ5VYQAcnL9vlOy1PXANOsuWyOWFiBHQKFzWmDmwrlckhg==", + "dev": true, + "dependencies": { + "@poppinss/utils": "^4.0.4", + "debug": "^4.3.4", + "find-cache-dir": "^3.3.2", + "fs-extra": "^10.1.0", + "normalize-path": "^3.0.0", + "pirates": "^4.0.5", + "rev-hash": "^3.0.0", + "source-map-support": "^0.5.21" + } + }, + "node_modules/@adonisjs/require-ts/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dev": true, + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/sink": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/@adonisjs/sink/-/sink-5.3.2.tgz", + "integrity": "sha512-DLwXt6FrNxS2DlRwy/xK6BKjxgE34+WSluWhi7k2AYA0YUtLNzZCNecut03/G1PmeWOTmwiSXaUaRY6Q+9w3IQ==", + "dev": true, + "dependencies": { + "@poppinss/cliui": "^3.0.2", + "@poppinss/prompts": "^2.0.2", + "@poppinss/utils": "^4.0.4", + "cp-file": "^9.1.0", + "fs-extra": "^10.1.0", + "marked": "^4.0.16", + "marked-terminal": "^5.1.1", + "mrm-core": "^7.0.0", + "mustache": "^4.2.0", + "open": "^8.4.0" + }, + "peerDependencies": { + "@adonisjs/application": "^5.0.0" + } + }, + "node_modules/@adonisjs/sink/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dev": true, + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/validator": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@adonisjs/validator/-/validator-12.3.2.tgz", + "integrity": "sha512-nwI4wTamYHgleMn4LoU/ZleSRhKBOVzK/bnkBvCOpiUuF4Bxtz+JCSpRWp6VX66jRJwh8DLBFH09Ul0HzKnjJg==", + "dependencies": { + "@poppinss/utils": "^4.0.4", + "@types/luxon": "^2.3.2", + "@types/validator": "^13.7.2", + "luxon": "^2.4.0", + "normalize-url": "^6.1.0", + "tmp-cache": "^1.1.0", + "validator": "^13.7.0" + }, + "peerDependencies": { + "@adonisjs/application": "^5.0.0", + "@adonisjs/bodyparser": "^8.0.0", + "@adonisjs/http-server": "^5.0.0" + } + }, + "node_modules/@adonisjs/validator/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/@adonisjs/view": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/@adonisjs/view/-/view-6.1.5.tgz", + "integrity": "sha512-WGyNGXZQYzeK39ufkK+OELsARBg9GRQFZUCUwQpe33ddLVGYb3D1ElAhW+rFY9l0/+h7ClXpjdns0JKBsYk9iQ==", + "dependencies": { + "edge-error": "^2.0.8", + "edge-supercharged": "^3.1.1", + "edge.js": "^5.3.6" + }, + "peerDependencies": { + "@adonisjs/core": "^5.7.0" + } + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-crypto/crc32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-2.0.0.tgz", + "integrity": "sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA==", + "dependencies": { + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/crc32c": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-2.0.0.tgz", + "integrity": "sha512-vF0eMdMHx3O3MoOXUfBZry8Y4ZDtcuskjjKgJz8YfIDjLStxTZrYXk+kZqtl6A0uCmmiN/Eb/JbC/CndTV1MHg==", + "dependencies": { + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32c/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/ie11-detection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", + "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha1-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-2.0.0.tgz", + "integrity": "sha512-3fIVRjPFY8EG5HWXR+ZJZMdWNRpwbxGzJ9IH9q93FpbgCH8u8GHRi46mZXp3cYD7gealmyqpm3ThZwLKJjWJhA==", + "dependencies": { + "@aws-crypto/ie11-detection": "^2.0.0", + "@aws-crypto/supports-web-crypto": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", + "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "dependencies": { + "@aws-crypto/ie11-detection": "^2.0.0", + "@aws-crypto/sha256-js": "^2.0.0", + "@aws-crypto/supports-web-crypto": "^2.0.0", + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", + "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "dependencies": { + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", + "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/util": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", + "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", + "dependencies": { + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-sdk/abort-controller": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.78.0.tgz", + "integrity": "sha512-iz1YLwM2feJUj/y97yO4XmDeTxs+yZ1XJwQgoawKuc8IDBKUutnJNCHL5jL04WUKU7Nrlq+Hr2fCTScFh2z9zg==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/chunked-blob-reader": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.55.0.tgz", + "integrity": "sha512-o/xjMCq81opAjSBjt7YdHJwIJcGVG5XIV9+C2KXcY5QwVimkOKPybWTv0mXPvSwSilSx+EhpLNhkcJuXdzhw4w==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/chunked-blob-reader-native": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.58.0.tgz", + "integrity": "sha512-+D3xnPD5985iphgAqgUerBDs371a2WzzoEVi7eHJUMMsP/gEnSTdSH0HNxsqhYv6CW4EdKtvDAQdAwA1VtCf2A==", + "dependencies": { + "@aws-sdk/util-base64-browser": "3.58.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.100.0.tgz", + "integrity": "sha512-UmgFdJabWtiUS4dWsC3kZ+ZMvH5QUUbDnLS8pT12duwLGt+xlWPn3PUkV8kL6qjG6XePLUgCqFTLjDD4tsTZNg==", + "dependencies": { + "@aws-crypto/sha1-browser": "2.0.0", + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/client-sts": "3.100.0", + "@aws-sdk/config-resolver": "3.80.0", + "@aws-sdk/credential-provider-node": "3.100.0", + "@aws-sdk/eventstream-serde-browser": "3.78.0", + "@aws-sdk/eventstream-serde-config-resolver": "3.78.0", + "@aws-sdk/eventstream-serde-node": "3.78.0", + "@aws-sdk/fetch-http-handler": "3.78.0", + "@aws-sdk/hash-blob-browser": "3.78.0", + "@aws-sdk/hash-node": "3.78.0", + "@aws-sdk/hash-stream-node": "3.78.0", + "@aws-sdk/invalid-dependency": "3.78.0", + "@aws-sdk/md5-js": "3.78.0", + "@aws-sdk/middleware-bucket-endpoint": "3.80.0", + "@aws-sdk/middleware-content-length": "3.78.0", + "@aws-sdk/middleware-expect-continue": "3.78.0", + "@aws-sdk/middleware-flexible-checksums": "3.78.0", + "@aws-sdk/middleware-host-header": "3.78.0", + "@aws-sdk/middleware-location-constraint": "3.78.0", + "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-retry": "3.80.0", + "@aws-sdk/middleware-sdk-s3": "3.86.0", + "@aws-sdk/middleware-serde": "3.78.0", + "@aws-sdk/middleware-signing": "3.78.0", + "@aws-sdk/middleware-ssec": "3.78.0", + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/middleware-user-agent": "3.78.0", + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/node-http-handler": "3.94.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4-multi-region": "3.88.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/url-parser": "3.78.0", + "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/util-base64-node": "3.55.0", + "@aws-sdk/util-body-length-browser": "3.55.0", + "@aws-sdk/util-body-length-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", + "@aws-sdk/util-stream-browser": "3.78.0", + "@aws-sdk/util-stream-node": "3.78.0", + "@aws-sdk/util-user-agent-browser": "3.78.0", + "@aws-sdk/util-user-agent-node": "3.80.0", + "@aws-sdk/util-utf8-browser": "3.55.0", + "@aws-sdk/util-utf8-node": "3.55.0", + "@aws-sdk/util-waiter": "3.78.0", + "@aws-sdk/xml-builder": "3.55.0", + "entities": "2.2.0", + "fast-xml-parser": "3.19.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.100.0.tgz", + "integrity": "sha512-nmBRUO5QfQ2IO8fHb37p8HT3n1ZooPb3sfTQejrpFH9Eq82VEOatIGt6yH3yTQ8+mhbabEhV5aY2wt/0D7wGVA==", + "dependencies": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.80.0", + "@aws-sdk/fetch-http-handler": "3.78.0", + "@aws-sdk/hash-node": "3.78.0", + "@aws-sdk/invalid-dependency": "3.78.0", + "@aws-sdk/middleware-content-length": "3.78.0", + "@aws-sdk/middleware-host-header": "3.78.0", + "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-retry": "3.80.0", + "@aws-sdk/middleware-serde": "3.78.0", + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/middleware-user-agent": "3.78.0", + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/node-http-handler": "3.94.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/url-parser": "3.78.0", + "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/util-base64-node": "3.55.0", + "@aws-sdk/util-body-length-browser": "3.55.0", + "@aws-sdk/util-body-length-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", + "@aws-sdk/util-user-agent-browser": "3.78.0", + "@aws-sdk/util-user-agent-node": "3.80.0", + "@aws-sdk/util-utf8-browser": "3.55.0", + "@aws-sdk/util-utf8-node": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.100.0.tgz", + "integrity": "sha512-WHy0e6COf6/LfMsYqG9H4SGaQRDjuckMtwOLtu6cYr4cro3bOU5pNuyEjAdUHCpuhZgiE6gkZozhTlxMJqIuRQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.80.0", + "@aws-sdk/credential-provider-node": "3.100.0", + "@aws-sdk/fetch-http-handler": "3.78.0", + "@aws-sdk/hash-node": "3.78.0", + "@aws-sdk/invalid-dependency": "3.78.0", + "@aws-sdk/middleware-content-length": "3.78.0", + "@aws-sdk/middleware-host-header": "3.78.0", + "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-retry": "3.80.0", + "@aws-sdk/middleware-sdk-sts": "3.78.0", + "@aws-sdk/middleware-serde": "3.78.0", + "@aws-sdk/middleware-signing": "3.78.0", + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/middleware-user-agent": "3.78.0", + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/node-http-handler": "3.94.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/url-parser": "3.78.0", + "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/util-base64-node": "3.55.0", + "@aws-sdk/util-body-length-browser": "3.55.0", + "@aws-sdk/util-body-length-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", + "@aws-sdk/util-user-agent-browser": "3.78.0", + "@aws-sdk/util-user-agent-node": "3.80.0", + "@aws-sdk/util-utf8-browser": "3.55.0", + "@aws-sdk/util-utf8-node": "3.55.0", + "entities": "2.2.0", + "fast-xml-parser": "3.19.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@aws-sdk/config-resolver": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.80.0.tgz", + "integrity": "sha512-vFruNKlmhsaC8yjnHmasi1WW/7EELlEuFTj4mqcqNqR4dfraf0maVvpqF1VSR8EstpFMsGYI5dmoWAnnG4PcLQ==", + "dependencies": { + "@aws-sdk/signature-v4": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-config-provider": "3.55.0", + "@aws-sdk/util-middleware": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.78.0.tgz", + "integrity": "sha512-K41VTIzVHm2RyIwtBER8Hte3huUBXdV1WKO+i7olYVgLFmaqcZUNrlyoGDRqZcQ/u4AbxTzBU9jeMIbIfzMOWg==", + "dependencies": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-imds": { + "version": "3.81.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.81.0.tgz", + "integrity": "sha512-BHopP+gaovTYj+4tSrwCk8NNCR48gE9CWmpIOLkP9ell0gOL81Qh7aCEiIK0BZBZkccv1s16cYq1MSZZGS7PEQ==", + "dependencies": { + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/url-parser": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.100.0.tgz", + "integrity": "sha512-2pCtth/Iv4mATRwb2g1nJdd9TolMyhTnhcskopukFvzp13VS5cgtz0hgYmJNnztTF8lpKJhJaidtKS5JJTWnHg==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.78.0", + "@aws-sdk/credential-provider-imds": "3.81.0", + "@aws-sdk/credential-provider-sso": "3.100.0", + "@aws-sdk/credential-provider-web-identity": "3.78.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.100.0.tgz", + "integrity": "sha512-PMIPnn/dhv9tlWR0qXnANJpTumujWfhKnLAsV3BUqB1K9IzWqz/zXjCT0jcSUTY8X/VkSuehtBdCKvOOM5mMqg==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.78.0", + "@aws-sdk/credential-provider-imds": "3.81.0", + "@aws-sdk/credential-provider-ini": "3.100.0", + "@aws-sdk/credential-provider-process": "3.80.0", + "@aws-sdk/credential-provider-sso": "3.100.0", + "@aws-sdk/credential-provider-web-identity": "3.78.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.80.0.tgz", + "integrity": "sha512-3Ro+kMMyLUJHefOhGc5pOO/ibGcJi8bkj0z/Jtqd5I2Sm1qi7avoztST67/k48KMW1OqPnD/FUqxz5T8B2d+FQ==", + "dependencies": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.100.0.tgz", + "integrity": "sha512-DwJvrh77vBJ1/fS9z0i2QuIvSk4pATA4DH8AEWoQ8LQX97tp3es7gZV5Wu93wFsEyIYC8penz6pNVq5QajMk2A==", + "dependencies": { + "@aws-sdk/client-sso": "3.100.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.78.0.tgz", + "integrity": "sha512-9/IvqHdJaVqMEABA8xZE3t5YF1S2PepfckVu0Ws9YUglj6oO+2QyVX6aRgMF1xph6781+Yc31TDh8/3eaDja7w==", + "dependencies": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-marshaller": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-3.78.0.tgz", + "integrity": "sha512-BMbRvLe6wNWQ+NO1pdPw3kGXXEdYV94BxEr3rTkKwr5yHpl8sUb/Va9sJJufUjzggpgE4vYu5nVsrT8ByMYXuA==", + "dependencies": { + "@aws-crypto/crc32": "2.0.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-hex-encoding": "3.58.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/eventstream-serde-browser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.78.0.tgz", + "integrity": "sha512-ehQI2iLsj8MMskDRbrPB7SibIdJq6LleBP6ojT+cgrLJRbVXUOxK+3MPHDZVdGYx4ukVg48E1fA2DzVfAp7Emw==", + "dependencies": { + "@aws-sdk/eventstream-marshaller": "3.78.0", + "@aws-sdk/eventstream-serde-universal": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-config-resolver": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.78.0.tgz", + "integrity": "sha512-iUG0wtZH/L7d6XfipwbhgjBHip0uTm9S27EasCn+g0CunbW6w7rXd7rfMqA+gSLVXPTBYjTMPIwRxrTCdRprwA==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-node": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.78.0.tgz", + "integrity": "sha512-H78LLoZEngZBSdk3lRQkAaR3cGsy/3UIjq9AFPeqoPVQtHkzBob1jVfE/5VSVAMhKLxWn8iqhRPS37AvyBGOwQ==", + "dependencies": { + "@aws-sdk/eventstream-marshaller": "3.78.0", + "@aws-sdk/eventstream-serde-universal": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/eventstream-serde-universal": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.78.0.tgz", + "integrity": "sha512-PZTLdyF923/1GJuMNtq9VMGd2vEx33HhsGInXvYtulKDSD5SgaTGj+Dz5wYepqL1gUEuXqZjBD71uZgrY/JgRg==", + "dependencies": { + "@aws-sdk/eventstream-marshaller": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/fetch-http-handler": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.78.0.tgz", + "integrity": "sha512-cR6r2h2kJ1DNEZSXC6GknQB7OKmy+s9ZNV+g3AsNqkrUmNNOaHpFoSn+m6SC3qaclcGd0eQBpqzSu/TDn23Ihw==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/querystring-builder": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-base64-browser": "3.58.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/hash-blob-browser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.78.0.tgz", + "integrity": "sha512-IEkA+t6qJEtEYEZgsqFRRITeZJ3mirw7IHJVHxwb86lpeufTVcbILI59B8/rhbqG+9dk0kWTjYSjC/ZdM+rgHA==", + "dependencies": { + "@aws-sdk/chunked-blob-reader": "3.55.0", + "@aws-sdk/chunked-blob-reader-native": "3.58.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/hash-node": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.78.0.tgz", + "integrity": "sha512-ev48yXaqZVtMeuKy52LUZPHCyKvkKQ9uiUebqkA+zFxIk+eN8SMPFHmsififIHWuS6ZkXBUSctjH9wmLebH60A==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-buffer-from": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/hash-stream-node": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.78.0.tgz", + "integrity": "sha512-y42Pm0Nk6zf/MI6acLFVFAMya0Ncvy6F6Xu5aYAmwIMIoMI0ctNeyuL/Dikgt8+oyxC+kORw+W9jtzgWj2zY/w==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/invalid-dependency": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.78.0.tgz", + "integrity": "sha512-zUo+PbeRMN/Mzj6y+6p9qqk/znuFetT1gmpOcZGL9Rp2T+b9WJWd+daq5ktsL10sVCzIt2UvneJRz6b+aU+bfw==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/is-array-buffer": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", + "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.100.0.tgz", + "integrity": "sha512-IP8Y310+24FOI3bZqdx9mTef1fKUa5YFfMa+Zmfj4+cxMB5/5wrAc2MacyQdPshmdOCIfJ8Izikop6SqeEQqcg==", + "dependencies": { + "buffer": "5.6.0", + "events": "3.3.0", + "stream-browserify": "3.0.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "@aws-sdk/abort-controller": "^3.0.0", + "@aws-sdk/client-s3": "^3.0.0" + } + }, + "node_modules/@aws-sdk/md5-js": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.78.0.tgz", + "integrity": "sha512-vKOXJWJvv6QH6rnqMYEWzwAnMr4hfcmY8+t6BAuTcDpcEVF77e3bwUcaajXi2U0JMuNvnLwuJF3h6kL6aX4l6g==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-utf8-browser": "3.55.0", + "@aws-sdk/util-utf8-node": "3.55.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.80.0.tgz", + "integrity": "sha512-FSSx6IgT7xftSlpjxoPKv8XI9nv7EK+OCODo2s3CmElMW1kBRdmQ/ImVuTwvqhdxJEVUeUdgupmC7cqyqgt04w==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-arn-parser": "3.55.0", + "@aws-sdk/util-config-provider": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-content-length": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.78.0.tgz", + "integrity": "sha512-5MpKt6lB9TdFy25/AGrpOjPY0iDHZAKpEHc+jSOJBXLl6xunXA7qHdiYaVqkWodLxy70nIckGNHqQ3drabidkA==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.78.0.tgz", + "integrity": "sha512-IXfcSugFV3uNk50VQsN/Cm80iCsUSwcYJ5RzEwy7wXbZ+KM03xWXlbXzqkeTDnS74wLWSw09nKF3rkp1eyfDfg==", + "dependencies": { + "@aws-sdk/middleware-header-default": "3.78.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.78.0.tgz", + "integrity": "sha512-1jjxHcB3Le/2Z7BzugXzZnIwKGlUluNm0d1lB4fF2QVq3GHlA6e8uv0rCtqe/3wSsrzV6YzJ8vjioymKSNIjKQ==", + "dependencies": { + "@aws-crypto/crc32": "2.0.0", + "@aws-crypto/crc32c": "2.0.0", + "@aws-sdk/is-array-buffer": "3.55.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-header-default": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-header-default/-/middleware-header-default-3.78.0.tgz", + "integrity": "sha512-USyOIF7ObBVMKbV/8lOBLDNwMAGdOtujd+RO/9dX6OQLceUTKIS1dOfJoYYwRHgengn7ikpDxoyROyspPYYDZQ==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.78.0.tgz", + "integrity": "sha512-1zL8uaDWGmH50c8B8jjz75e0ePj6/3QeZEhjJgTgL6DTdiqvRt32p3t+XWHW+yDI14fZZUYeTklAaLVxqFrHqQ==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.78.0.tgz", + "integrity": "sha512-m626H1WwXYJtwHEkV/2DsLlu1ckWq3j57NzsexZki3qS0nU8HEiDl6YYi+k84vDD4Qpba6EI9AdhzwnvZLXtGw==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.78.0.tgz", + "integrity": "sha512-GBhwxNjhCJUIeQQDaGasX/C23Jay77al2vRyGwmxf8no0DdFsa4J1Ik6/2hhIqkqko+WM4SpCnpZrY4MtnxNvA==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-retry": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.80.0.tgz", + "integrity": "sha512-CTk+tA4+WMUNOcUfR6UQrkhwvPYFpnMsQ1vuHlpLFOGG3nCqywA2hueLMRQmVcDXzP0sGeygce6dzRI9dJB/GA==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/service-error-classification": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-middleware": "3.78.0", + "tslib": "^2.3.1", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.86.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.86.0.tgz", + "integrity": "sha512-1L9q8iJXy/KNyVR8JRs4DZ5SJse6nJPiK4AR8c2xF5FWHdGoFaLcdqpg2/TLB1kpdcfGgNp96uCROxh+IPXtDQ==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-arn-parser": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.78.0.tgz", + "integrity": "sha512-Lu/kN0J0/Kt0ON1hvwNel+y8yvf35licfIgtedHbBCa/ju8qQ9j+uL9Lla6Y5Tqu29yVaye1JxhiIDhscSwrLA==", + "dependencies": { + "@aws-sdk/middleware-signing": "3.78.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-serde": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.78.0.tgz", + "integrity": "sha512-4DPsNOxsl1bxRzfo1WXEZjmD7OEi7qGNpxrDWucVe96Fqj2dH08jR8wxvBIVV1e6bAad07IwdPuCGmivNvwRuQ==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.78.0.tgz", + "integrity": "sha512-OEjJJCNhHHSOprLZ9CzjHIXEKFtPHWP/bG9pMhkV3/6Bmscsgcf8gWHcOnmIrjqX+hT1VALDNpl/RIh0J6/eQw==", + "dependencies": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.78.0.tgz", + "integrity": "sha512-3z+UOd95rxvj+iO6WxMjuRNNUMlO6xhXZdBHvQmoiyS+9nMDcNieTu6gfQyLAilVeCh8xU9a0IenJuIYVdJ96g==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-stack": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.78.0.tgz", + "integrity": "sha512-UoNfRh6eAJN3BJHlG1eb+KeuSe+zARTC2cglroJRyHc2j7GxH2i9FD3IJbj5wvzopJEnQzuY/VCs6STFkqWL1g==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.78.0.tgz", + "integrity": "sha512-wdN5uoq8RxxhLhj0EPeuDSRFuXfUwKeEqRzCKMsYAOC0cAm+PryaP2leo0oTGJ9LUK8REK7zyfFcmtC4oOzlkA==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/node-config-provider": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.80.0.tgz", + "integrity": "sha512-vyTOMK04huB7n10ZUv0thd2TE6KlY8livOuLqFTMtj99AJ6vyeB5XBNwKnQtJIt/P7CijYgp8KcFvI9fndOmKg==", + "dependencies": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/node-http-handler": { + "version": "3.94.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.94.0.tgz", + "integrity": "sha512-g9q6k+PS+BrtOzt8jrBWr9D543uB3ZoYZ2JCriwuCwnP4uIHlMf9wAOGcOgqgykfUAPBOLvz2rTwVs3Xl8GUmQ==", + "dependencies": { + "@aws-sdk/abort-controller": "3.78.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/querystring-builder": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/property-provider": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.78.0.tgz", + "integrity": "sha512-PZpLvV0hF6lqg3CSN9YmphrB/t5LVJVWGJLB9d9qm7sJs5ksjTYBb5bY91OQ3zit0F4cqBMU8xt2GQ9J6d4DvQ==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/protocol-http": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.78.0.tgz", + "integrity": "sha512-SQB26MhEK96yDxyXd3UAaxLz1Y/ZvgE4pzv7V3wZiokdEedM0kawHKEn1UQJlqJLEZcQI9QYyysh3rTvHZ3fyg==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/querystring-builder": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.78.0.tgz", + "integrity": "sha512-aib6RW1WAaTQDqVgRU1Ku9idkhm90gJKbCxVaGId+as6QHNUqMChEfK2v+0afuKiPNOs5uWmqvOXI9+Gt+UGDg==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-uri-escape": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/querystring-parser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.78.0.tgz", + "integrity": "sha512-csaH8YTyN+KMNczeK6fBS8l7iJaqcQcKOIbpQFg5upX4Ly5A56HJn4sVQhY1LSgfSk4xRsNfMy5mu6BlsIiaXA==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/s3-request-presigner": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.100.0.tgz", + "integrity": "sha512-32j9o2ChP2pzsua5+Ci9XFKBsFXxlE5muVD9CSpEG9UfUieORAvXsZVChu86IWBFR2nQRm0vebrwJC2tKsgu1A==", + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "3.86.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4-multi-region": "3.88.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-create-request": "3.99.0", + "@aws-sdk/util-format-url": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/service-error-classification": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.78.0.tgz", + "integrity": "sha512-x7Lx8KWctJa01q4Q72Zb4ol9L/era3vy2daASu8l2paHHxsAPBE0PThkvLdUSLZSzlHSVdh3YHESIsT++VsK4w==", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/shared-ini-file-loader": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.80.0.tgz", + "integrity": "sha512-3d5EBJjnWWkjLK9skqLLHYbagtFaZZy+3jUTlbTuOKhlOwe8jF7CUM3j6I4JA6yXNcB3w0exDKKHa8w+l+05aA==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.78.0.tgz", + "integrity": "sha512-eePjRYuzKoi3VMr/lgrUEF1ytLeH4fA/NMCykr/uR6NMo4bSJA59KrFLYSM7SlWLRIyB0UvJqygVEvSxFluyDw==", + "dependencies": { + "@aws-sdk/is-array-buffer": "3.55.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-hex-encoding": "3.58.0", + "@aws-sdk/util-middleware": "3.78.0", + "@aws-sdk/util-uri-escape": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.88.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.88.0.tgz", + "integrity": "sha512-RBbyQRpohlIQiuZc5qAvwbXO0Bob9XhHFS/kuLh+DcyeaBp+m+Bt291FX1Ksz2A0Q3ETNM34LFt7kTOBtMvjIQ==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-arn-parser": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "@aws-sdk/signature-v4-crt": "^3.79.0" + }, + "peerDependenciesMeta": { + "@aws-sdk/signature-v4-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/smithy-client": { + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.99.0.tgz", + "integrity": "sha512-N9xgCcwbOBZ4/WuROzlErExXV6+vFrFkNJzeBT31/avvrHXjxgxwQlMoXoQCfM8PyRuDuVSfZeoh1iIRfoxidA==", + "dependencies": { + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", + "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/url-parser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.78.0.tgz", + "integrity": "sha512-iQn2AjECUoJE0Ae9XtgHtGGKvUkvE8hhbktGopdj+zsPBe4WrBN2DgVxlKPPrBonG/YlcL1D7a5EXaujWSlUUw==", + "dependencies": { + "@aws-sdk/querystring-parser": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.55.0.tgz", + "integrity": "sha512-76KJxp4MRWufHYWys7DFl64znr5yeJ3AIQNAPCKKw1sP0hzO7p6Kx0PaJnw9x+CPSzOrT4NbuApL6/srYhKDGg==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-base64-browser": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz", + "integrity": "sha512-0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-base64-node": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", + "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", + "dependencies": { + "@aws-sdk/util-buffer-from": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-body-length-browser": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", + "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-body-length-node": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", + "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-buffer-from": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", + "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", + "dependencies": { + "@aws-sdk/is-array-buffer": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-config-provider": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", + "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-create-request": { + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.99.0.tgz", + "integrity": "sha512-7+jM8xe2u5FW7ufRqHTmvJa7nH9f8uZXuWpHcmITKm8IRnkst1ib1DUctEZE+go9lnonzy4TttSNMt5NqFCgOA==", + "dependencies": { + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-browser": { + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.99.0.tgz", + "integrity": "sha512-qSYjUGuN8n7Q/zAi0tzU4BrU389jQosXtjp7eHpLATl0pKGpaHx6rJNwbiNhvBhBEfmSgqsJ09b4gZUpUezHEw==", + "dependencies": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-defaults-mode-node": { + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.99.0.tgz", + "integrity": "sha512-8TUO0kEnQcgT1gAW9y9oO6a5gKhfEGEUeKidEgbTczEUrjr3aCXIC+p0DI5FJfImwPrTKXra8A22utDM92phWw==", + "dependencies": { + "@aws-sdk/config-resolver": "3.80.0", + "@aws-sdk/credential-provider-imds": "3.81.0", + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/util-format-url": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.78.0.tgz", + "integrity": "sha512-wdjt8ZAMyBrH/02QrQtB+S9cwtsBJ6bXRJ3XwL6z7L75nwTflKkzOQUS5Ie7HBf3j3JH0KhlqlEbf2nnM9jsPQ==", + "dependencies": { + "@aws-sdk/querystring-builder": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-hex-encoding": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz", + "integrity": "sha512-Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz", + "integrity": "sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-middleware": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.78.0.tgz", + "integrity": "sha512-Hi3wv2b0VogO4mzyeEaeU5KgIt4qeo0LXU5gS6oRrG0T7s2FyKbMBkJW3YDh/Y8fNwqArZ+/QQFujpP0PIKwkA==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-stream-browser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.78.0.tgz", + "integrity": "sha512-EcThf/sJoD4NYTUNO/nehR57lqkOuL6btRoVnm4LGUR8XgQcJ/WMYYgxOMY8E81xXzRFX2ukRHRxL2xmQsbHDw==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-stream-node": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.78.0.tgz", + "integrity": "sha512-CHfX37ioUyamAnlS2p4Nq+4BBjCSlZolFkVyxtVJwzPBBksdvjW67nKG+SShR48RBPJ5LEzbgAaEXNRktCSf6w==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-uri-escape": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", + "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.78.0.tgz", + "integrity": "sha512-diGO/Bf4ggBOEnfD7lrrXaaXOwOXGz0bAJ0HhpizwEMlBld5zfDlWXjNpslh+8+u3EHRjPJQ16KGT6mp/Dm+aw==", + "dependencies": { + "@aws-sdk/types": "3.78.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.80.0.tgz", + "integrity": "sha512-QV26qIXws1m6sZXg65NS+XrQ5NhAzbDVQLtEVE4nC39UN8fuieP6Uet/gZm9mlLI9hllwvcV7EfgBM3GSC7pZg==", + "dependencies": { + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", + "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/util-utf8-node": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", + "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", + "dependencies": { + "@aws-sdk/util-buffer-from": "3.55.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/util-waiter": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.78.0.tgz", + "integrity": "sha512-8pWd0XiNOS8AkWQyac8VNEI+gz/cGWlC2TAE2CJp0rOK5XhvlcNBINai4D6TxQ+9foyJXLOI1b8nuXemekoG8A==", + "dependencies": { + "@aws-sdk/abort-controller": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.55.0.tgz", + "integrity": "sha512-BH+i5S2FLprmfSeIuGy3UbNtEoJPVjh8arl5+LV3i2KY/+TmrS4yT8JtztDlDxHF0cMtNLZNO0KEPtsACS6SOg==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.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/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@faker-js/faker": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-6.3.1.tgz", + "integrity": "sha512-8YXBE2ZcU/pImVOHX7MWrSR/X5up7t6rPWZlk34RwZEcdr3ua6X+32pSd6XuOQRN+vbuvYNfA6iey8NbrjuMFQ==", + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@ioredis/commands": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.1.1.tgz", + "integrity": "sha512-fsR4P/ROllzf/7lXYyElUJCheWdTJVJvOTps8v9IWKFATxR61ANOlnoPqhH099xYLrJGpc2ZQ28B3rMeUt5VQg==" + }, + "node_modules/@kdf/salt": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@kdf/salt/-/salt-2.0.1.tgz", + "integrity": "sha512-1RBY7HcGYuWBm0+4ygjdRerN+mhpuT5picGB6+azqUXsz/IZljegrKkeHRiV6wuxY8n4HrxOuw8ou7JuGxRWdQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz", + "integrity": "sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==", + "dependencies": { + "detect-libc": "^1.0.3", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.5", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "dependencies": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.scandir/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==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "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==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@poppinss/chokidar-ts": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@poppinss/chokidar-ts/-/chokidar-ts-3.3.5.tgz", + "integrity": "sha512-Ht//xB2ZPa16EDH/bmaWEBWunsBTnBYdnv3nKwXHrqNHDfcYX1DHcJmcNORRH9YLOOuVsTmqDcpiAdTn06LaHQ==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.2.0", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "emittery": "^0.10.2", + "fs-extra": "^10.0.1", + "mem": "^8.1.1", + "picomatch": "^2.3.1" + } + }, + "node_modules/@poppinss/chokidar-ts/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/@poppinss/cliui": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/cliui/-/cliui-3.0.2.tgz", + "integrity": "sha512-nrAosoQy0ex3wSw3VuigLs3XCsxDsnNvx4ZL4ZvdZlygrChMUKPKnlxctQk13IyUHaH4F/wvaHnfWg/inhA36w==", + "dependencies": { + "@poppinss/colors": "^3.0.2", + "cli-boxes": "^3.0.0", + "cli-table3": "^0.6.1", + "color-support": "^1.1.3", + "log-update": "^4.0.0", + "pretty-hrtime": "^1.0.3", + "string-width": "^4.2.2" + } + }, + "node_modules/@poppinss/co-body": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@poppinss/co-body/-/co-body-1.1.3.tgz", + "integrity": "sha512-Qhm2sGNTSRpKAlqt+ofZwWMzMI8QJXd36DN6F1Ska2B0Lt1Ev3qi+kNHym1GcIJ2NG/P/LS7i2fIbKZtGXnZ9w==", + "dependencies": { + "@poppinss/utils": "^3.1.3", + "inflation": "^2.0.0", + "qs": "^6.10.1", + "raw-body": "^2.4.1", + "type-is": "^1.6.18" + } + }, + "node_modules/@poppinss/colors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-3.0.2.tgz", + "integrity": "sha512-kgIiDPKUV0IaNtzLKricxd3mMWepqCbgh2Mb0M8C5zyS1bJ0K86s6dMu9xEKtF2XksqyE0qV4ANtMnTCMjQgvA==", + "dependencies": { + "color-support": "^1.1.3", + "kleur": "^4.1.4" + } + }, + "node_modules/@poppinss/file-generator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/file-generator/-/file-generator-1.0.2.tgz", + "integrity": "sha512-rRob//4jLbUVbDSsNRihloKGgpyVsWdFQWUmONxX/gyv4koT1OlVoc3ccWgk7Y/sEa2cFxj3zrFs+wdT09iXWw==", + "dependencies": { + "bytes": "^3.1.2" + } + }, + "node_modules/@poppinss/hooks": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-5.0.3.tgz", + "integrity": "sha512-M5a151VUl+RslVP5qwDW+u+0VmzKt5Nfplzdx2nrtXol3yVlLN3u2Jp6UADESid3DDI7IRHmFrA3sQusey3eUA==", + "peerDependencies": { + "@adonisjs/application": ">=4.0.0" + }, + "peerDependenciesMeta": { + "@adonisjs/application": { + "optional": true + } + } + }, + "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/manager": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/manager/-/manager-5.0.2.tgz", + "integrity": "sha512-c5F3EKztq/iw0J+BfNu5rSI5/ji+kjts4rJaC/VvIzpTWzbRorb7UR9J32T8cLtTwjNHbmxk3BAU402lvL2JFA==" + }, + "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==", + "dependencies": { + "@arr/every": "^1.0.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==", + "dependencies": { + "http-errors": "^2.0.0", + "safe-buffer": "5.2.1", + "uid-safe": "2.1.5" + } + }, + "node_modules/@poppinss/prompts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-2.0.2.tgz", + "integrity": "sha512-jTrE8U5rnHTZNpBvPauFVDMQZZuEnfABbJUEXfq0uu8oGJnPaaA+y0bQbyqVf4yWqgRGldgrzAwNz739hIEnPQ==", + "dependencies": { + "@poppinss/colors": "^3.0.2", + "enquirer": "^2.3.6" + } + }, + "node_modules/@poppinss/utils": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-3.1.3.tgz", + "integrity": "sha512-A/FGhb+05UGf26rpicvyVCGabtC1Zw3LuugH9eHDYnWS4PLb8tDOdJF+yiOQ6QgGdMbYamzKUsPSgnOgSF4MGA==", + "dependencies": { + "@types/bytes": "^3.1.0", + "@types/he": "^1.1.1", + "buffer-alloc": "^1.2.0", + "bytes": "^3.1.0", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "fast-safe-stringify": "^2.0.7", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.5.3", + "truncatise": "0.0.8" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==" + }, + "node_modules/@types/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-lOGyCnw+2JVPKU3wIV0srU0NyALwTBJlVSx5DfMQOFuuohA8y9S8orImpuIQikZ0uIQ8gehrRjxgQC1rLRi11w==" + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/he": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/he/-/he-1.1.2.tgz", + "integrity": "sha512-kSJPcLO1x+oolc0R89pUl2kozldQ/fVQ1C1p5mp8fPoLdF/ZcBvckaTC2M8xXh3GYendXvCpy5m/a2eSbfgNgw==" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/ioredis": { + "version": "4.28.10", + "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.10.tgz", + "integrity": "sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/luxon": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-2.3.2.tgz", + "integrity": "sha512-WOehptuhKIXukSUUkRgGbj2c997Uv/iUgYgII8U7XLJqq9W2oF0kQ6frEznRQbdurioz+L/cdaIm4GutTQfgmA==" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.7.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", + "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" + }, + "node_modules/@types/pino": { + "version": "6.3.12", + "resolved": "https://registry.npmjs.org/@types/pino/-/pino-6.3.12.tgz", + "integrity": "sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw==", + "dependencies": { + "@types/node": "*", + "@types/pino-pretty": "*", + "@types/pino-std-serializers": "*", + "sonic-boom": "^2.1.0" + } + }, + "node_modules/@types/pino-pretty": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-4.7.5.tgz", + "integrity": "sha512-rfHe6VIknk14DymxGqc9maGsRe8/HQSvM2u46EAz2XrS92qsAJnW16dpdFejBuZKD8cRJX6Aw6uVZqIQctMpAg==", + "dependencies": { + "@types/node": "*", + "@types/pino": "6.3" + } + }, + "node_modules/@types/pino-std-serializers": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-2.4.1.tgz", + "integrity": "sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/socket.io": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-3.0.2.tgz", + "integrity": "sha512-pu0sN9m5VjCxBZVK8hW37ZcMe8rjn4HHggBN5CbaRTvFwv5jOmuIRZEuddsBPa9Th0ts0SIo3Niukq+95cMBbQ==", + "deprecated": "This is a stub types definition. socket.io provides its own type definitions, so you do not need this installed.", + "dependencies": { + "socket.io": "*" + } + }, + "node_modules/@types/validator": { + "version": "13.7.3", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.3.tgz", + "integrity": "sha512-DNviAE5OUcZ5s+XEQHRhERLg8fOp8gSgvyJ4aaFASx5wwaObm+PBwTIMXiOFm1QrSee5oYwEAYb7LMzX2O88gA==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.1.tgz", + "integrity": "sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/type-utils": "5.27.1", + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.1.tgz", + "integrity": "sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.1.tgz", + "integrity": "sha512-fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.1.tgz", + "integrity": "sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.1.tgz", + "integrity": "sha512-LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.1.tgz", + "integrity": "sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/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==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "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.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.1.tgz", + "integrity": "sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.1.tgz", + "integrity": "sha512-xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.27.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "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==" + }, + "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==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-class-fields": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-1.0.0.tgz", + "integrity": "sha512-l+1FokF34AeCXGBHkrXFmml9nOIRI+2yBnBpO5MaVAaTIJ96irWLtcCxX+7hAp6USHFCe+iyyBB4ZhxV807wmA==", + "dependencies": { + "acorn-private-class-elements": "^1.0.0" + }, + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^6 || ^7 || ^8" + } + }, + "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-private-class-elements": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-1.0.0.tgz", + "integrity": "sha512-zYNcZtxKgVCg1brS39BEou86mIao1EV7eeREG+6WMwKbuYTeivRRs6S2XdWnboRde6G9wKh2w+WBydEyJsJ6mg==", + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^6.1.0 || ^7 || ^8" + } + }, + "node_modules/acorn-private-methods": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/acorn-private-methods/-/acorn-private-methods-1.0.0.tgz", + "integrity": "sha512-Jou2L3nfwfPpFdmmHObI3yUpVPM1bPohTUAZCyVDw5Efyn9LSS6E36neRLCRfIr8QjskAfdxRdABOrvP4c/gwQ==", + "dependencies": { + "acorn-private-class-elements": "^1.0.0" + }, + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^6 || ^7 || ^8" + } + }, + "node_modules/acorn-static-class-features": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/acorn-static-class-features/-/acorn-static-class-features-1.0.0.tgz", + "integrity": "sha512-XZJECjbmMOKvMHiNzbiPXuXpLAJfN3dAKtfIYbk1eHiWdsutlek+gS7ND4B8yJ3oqvHo1NxfafnezVmq7NXK0A==", + "dependencies": { + "acorn-private-class-elements": "^1.0.0" + }, + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^6.1.0 || ^7 || ^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adonis-preset-ts": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/adonis-preset-ts/-/adonis-preset-ts-2.1.0.tgz", + "integrity": "sha512-cQH/NP250gOF9k3TTDhVsTOPSAvyH4MhKVZ4ryYiihA+vnP27sut1gVIrRas3Evl5d2wEgWVGI5DgdP/ZFSk0w==", + "dev": true + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "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 + }, + "node_modules/args": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", + "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "dev": true, + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/args/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/args/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/args/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/args/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/args/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/args/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/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "printable-characters": "^1.0.42" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/astring": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.3.tgz", + "integrity": "sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A==", + "bin": { + "astring": "bin/astring" + } + }, + "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, + "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/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-code-frame/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.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==" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/bcrypt": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", + "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, + "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==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-writer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", + "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true + }, + "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/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", + "dev": true, + "dependencies": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/cloudinary": { + "version": "1.26.3", + "resolved": "https://registry.npmjs.org/cloudinary/-/cloudinary-1.26.3.tgz", + "integrity": "sha512-80ItEXYLbhOGPM42ksOsqG6320jbsU6kqszjVjl5QwDwzbjouktRlw/NdGva1beSu8sp/0lj1mtSGPymGsNiQA==", + "dependencies": { + "cloudinary-core": "^2.10.2", + "core-js": "3.6.5", + "lodash": "^4.17.11", + "q": "^1.5.1" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/cloudinary-core": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/cloudinary-core/-/cloudinary-core-2.11.4.tgz", + "integrity": "sha512-F1BZczD6f5mB73D0c8gl/iuacVQQO+UhckNZxeeS9ZIVeIHbsfqwWiAZMQmIvEb7Wti/9MLU0xVwaWOak2THHA==", + "peerDependencies": { + "lodash": ">=4.0" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", + "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co-compose": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/co-compose/-/co-compose-7.0.2.tgz", + "integrity": "sha512-F3qbdPIg5L+DP06y00vNYqqfx86+YetkQyN5g54pSeWgFlKHzqacNIkimzfc0hPezPaab1aVerdCQ3U8a3/TWw==" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + }, + "node_modules/commander": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", + "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/comment-json": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-2.4.2.tgz", + "integrity": "sha512-T+iXox779qsqneMYx/x5BZyz4xjCeQRmuNVzz8tko7qZUs3MlzpA3RAs+O1XsgcKToNBMIvfVzafGOeiU7RggA==", + "dev": true, + "dependencies": { + "core-util-is": "^1.0.2", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "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==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "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==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cp-file": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", + "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", + "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", + "dev": true, + "dependencies": { + "arrify": "^2.0.1", + "cp-file": "^7.0.0", + "globby": "^9.2.0", + "has-glob": "^1.0.0", + "junk": "^3.1.0", + "nested-error-stacks": "^2.1.0", + "p-all": "^2.1.0", + "p-filter": "^2.1.0", + "p-map": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy/node_modules/cp-file": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", + "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cuid": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz", + "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==" + }, + "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==", + "dev": true + }, + "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/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/debug/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/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "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/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "node_modules/denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==", + "engines": { + "node": ">=0.10" + } + }, + "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/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "dependencies": { + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, + "node_modules/edge-error": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-2.0.8.tgz", + "integrity": "sha512-ORKH7rn/LEfgo0qrgoMMwFPfestNFvTO+dRLDmS+zgulhd9BVXfv/p+V6K3OyEeu2L0ysYp/71uHB31GIDe68A==" + }, + "node_modules/edge-lexer": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/edge-lexer/-/edge-lexer-4.0.10.tgz", + "integrity": "sha512-6hvRE0TkYyqogEGTU6GpNW3vf6PDA0U+zLEXIV4ZhsCRy2YX+FuprzitYpe69ZHC+BZdiFpdCn2Zqf1HOebqEg==", + "dependencies": { + "edge-error": "^2.0.8" + } + }, + "node_modules/edge-parser": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/edge-parser/-/edge-parser-8.0.14.tgz", + "integrity": "sha512-N7mFw0JcozaHfHt5CJL53T8ETdAVr6aDoFa7cwjTN5qvtsYT8WyeTVO9720Rs0W8FVjliK/VZAkZ6dpxehJqFA==", + "dependencies": { + "acorn": "^8.7.0", + "astring": "^1.8.1", + "edge-error": "^2.0.8", + "edge-lexer": "^4.0.10", + "js-stringify": "^1.0.2" + } + }, + "node_modules/edge-supercharged": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/edge-supercharged/-/edge-supercharged-3.1.1.tgz", + "integrity": "sha512-Pxgst3UeR+0PWuTIG2QHuFgFe73TMoVMphRsa/bOmIvOkQ87cD7+VxiS9ph2KbA4djJ2ChbdgtbNiIvju5yXEw==", + "dependencies": { + "@poppinss/utils": "^3.1.3", + "slash": "^3.0.0" + } + }, + "node_modules/edge.js": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/edge.js/-/edge.js-5.3.6.tgz", + "integrity": "sha512-cyaHhR+1iIoozpftTbqyMVW8cDcdEqm9e/2vKxp2XIH0JPMTCVRGBdAC6k2MzYizygbgjnZdKRoz+Ec9xFnU5Q==", + "dependencies": { + "@poppinss/inspect": "^1.0.1", + "@poppinss/utils": "^4.0.4", + "edge-error": "^2.0.8", + "edge-lexer": "^4.0.10", + "edge-parser": "^8.0.14", + "js-stringify": "^1.0.2", + "macroable": "^7.0.1", + "stringify-attributes": "^2.0.0" + } + }, + "node_modules/edge.js/node_modules/@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dependencies": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "node_modules/editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "dependencies": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "bin": { + "editorconfig": "bin/editorconfig" + } + }, + "node_modules/editorconfig/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/editorconfig/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/editorconfig/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/editorconfig/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "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/emittery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.11.0.tgz", + "integrity": "sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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/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/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==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.3.26", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.26.tgz", + "integrity": "sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==" + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "engines": { + "node": ">=8" + } + }, + "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": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-config-airbnb-typescript": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz", + "integrity": "sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==", + "dev": true, + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.3" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/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/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/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/eslint/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "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": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "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, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/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/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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, + "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/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-copy": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.3.tgz", + "integrity": "sha512-LDzYKNTHhD+XOp8wGMuCkY4eTxFZOOycmpwLBiuF3r3OjOmZnURRD8t2dUAbmKuXGbo/MGggwbSjcBdp8QT0+g==", + "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.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "dependencies": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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 + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-redact": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.1.tgz", + "integrity": "sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", + "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==" + }, + "node_modules/fast-xml-parser": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", + "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==", + "bin": { + "xml2js": "cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-type": { + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", + "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", + "dependencies": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, + "node_modules/flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "node_modules/flattie": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.0.tgz", + "integrity": "sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "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/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge/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/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "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": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^2.0.0", + "source-map": "^0.6.1" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", + "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", + "dev": true, + "dependencies": { + "is-glob": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-glob/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/haye": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/haye/-/haye-3.0.0.tgz", + "integrity": "sha512-yWxbPdeex78IR3x3X/DdqkZbVG4rP4UaRdUGmpClfnUh1C61mASt7Iav8vk2tXcTMSygBHDDfgoVqk68NJqzhQ==" + }, + "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/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "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/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ical-generator": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/ical-generator/-/ical-generator-3.4.3.tgz", + "integrity": "sha512-9NkhRZ1cnfgIeXfv9iPPXIqBLYlKBUq8iteSDQxf1qEzhrmWgwb4jitTDGKOLvCoHB/pPmmtBTVHQw1WgCK3dg==", + "dependencies": { + "uuid-random": "^1.3.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@touch4it/ical-timezones": ">=1.6.0", + "@types/luxon": ">= 1.26.0", + "@types/mocha": ">= 8.2.1", + "@types/node": ">= 15.0.0", + "dayjs": ">= 1.10.0", + "luxon": ">= 1.26.0", + "moment": ">= 2.29.0", + "moment-timezone": ">= 0.5.33", + "rrule": ">= 2.6.8" + }, + "peerDependenciesMeta": { + "@touch4it/ical-timezones": { + "optional": true + }, + "@types/luxon": { + "optional": true + }, + "@types/mocha": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + }, + "moment-timezone": { + "optional": true + }, + "rrule": { + "optional": true + } + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "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" + } + ] + }, + "node_modules/igniculus": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/igniculus/-/igniculus-1.5.0.tgz", + "integrity": "sha1-9tXneE2+lItOaooipU02XekGI9A=", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflation": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", + "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "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/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/ioredis": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.0.6.tgz", + "integrity": "sha512-KUm7wPzIet9QrFMoMm09/4bkfVKBUD9KXwBitP3hrNkZ+A6NBndweXGwYIB/7szHcTZgfo7Kvx88SxljJV4D9A==", + "dependencies": { + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.0.1", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "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==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.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==" + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "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, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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==" + }, + "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 + }, + "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/knex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/knex/-/knex-2.1.0.tgz", + "integrity": "sha512-vVsnD6UJdSJy55TvCXfFF9syfwyXNxfE9mvr2hJL/4Obciy2EPGoqjDpgRSlMruHuPWDOeYAG25nyrGvU+jJog==", + "dependencies": { + "colorette": "2.0.16", + "commander": "^9.1.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.5.0", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" + }, + "engines": { + "node": ">=12" + }, + "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.0.0", + "resolved": "https://registry.npmjs.org/knex-dynamic-connection/-/knex-dynamic-connection-3.0.0.tgz", + "integrity": "sha512-LSUlabH/5QHTzMxd8d+bhbiBAivV7QdtE4zPI2CfKYbx+uV1gqaN5Ua5AZc/O7kGAQJ4q35/4gUheCoHGPUHzg==", + "dependencies": { + "debug": "^4.3.4", + "knex": "^2.0.0" + }, + "peerDependencies": { + "knex": "^2.0.0" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "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/listify": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/listify/-/listify-1.0.3.tgz", + "integrity": "sha512-083swF7iH7bx8666zdzBColpgEuy46HjN3r1isD4zV6Ix7FuHfb/2/WVnl4CH8hjuoWeFF7P5KkKNXUnJCFEJg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/luxon": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.4.0.tgz", + "integrity": "sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/macroable": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/macroable/-/macroable-7.0.1.tgz", + "integrity": "sha512-8bbZLq2JoGI7FdvmDIxed41opR2cqgUUrRN4fVEsajARzfHkZDAzbCg0RW+jIY93YhWuBsMOeLcIyYz5WU4HNQ==" + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.16.tgz", + "integrity": "sha512-wahonIQ5Jnyatt2fn8KqF/nIqZM8mh3oRu2+l5EANGMhu6RFjiSG52QNE2eWzFMI94HqYSgN184NurgNG6CztA==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/marked-terminal": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", + "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", + "dev": true, + "dependencies": { + "ansi-escapes": "^5.0.0", + "cardinal": "^2.1.1", + "chalk": "^5.0.0", + "cli-table3": "^0.6.1", + "node-emoji": "^1.11.0", + "supports-hyperlinks": "^2.2.0" + }, + "engines": { + "node": ">=14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/marked-terminal/node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marked-terminal/node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/marked-terminal/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/memfs": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", + "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-kind": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime-kind/-/mime-kind-3.0.0.tgz", + "integrity": "sha512-sx9lClVP7GXY2mO3aVDWTQLhfvAdDvNhGi3o3g7+ae3aKaoybeGbEIlnreoRKjrbDpvlPltlkIryxOtatojeXQ==", + "dependencies": { + "file-type": "^12.1.0", + "mime-types": "^2.1.24" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/mime-kind/node_modules/file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrm-core": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/mrm-core/-/mrm-core-7.0.0.tgz", + "integrity": "sha512-NB22azURu3CMDN/VWvC5QO5zAUECe0VIPr+QWft+dxeeSz/mbsNAXt4GxaepA1VUGrddPMUmQuWikFPoaPKMbw==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "comment-json": "^2.2.0", + "detect-indent": "^6.0.0", + "editorconfig": "^0.15.3", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "kleur": "^3.0.3", + "listify": "^1.0.0", + "lodash": "^4.17.15", + "minimist": "^1.2.0", + "prop-ini": "^0.0.2", + "rc": "^1.2.8", + "readme-badger": "^0.3.0", + "semver": "^6.3.0", + "smpltmpl": "^1.0.2", + "split-lines": "^2.0.0", + "strip-bom": "^4.0.0", + "validate-npm-package-name": "^3.0.0", + "webpack-merge": "^4.2.2", + "yaml": "^2.0.0-1" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/mrm-core/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mrm-core/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/mrm-core/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/mrm-core/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mrm-core/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mrm-core/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mrm-core/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mrm-core/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/mrm-core/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/mrm-core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/mrm-core/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "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/multi-part": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/multi-part/-/multi-part-3.0.0.tgz", + "integrity": "sha512-pDbdYQ6DLDxAsD83w9R7r7rlW56cETL7hIB5bCWX7FJYw0K+kL5JwHr0I8tRk9lGeFcAzf+2OEzXWlG/4wCnFw==", + "dependencies": { + "mime-kind": "^3.0.0", + "multi-part-lite": "^1.0.0" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/multi-part-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/multi-part-lite/-/multi-part-lite-1.0.0.tgz", + "integrity": "sha512-KxIRbBZZ45hoKX1ROD/19wJr0ql1bef1rE8Y1PCwD3PuNXV42pp7Wo8lEHYuAajoT4vfAFcd3rPjlkyEEyt1nw==", + "engines": { + "node": ">=8.3.0" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-repl-await": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/node-repl-await/-/node-repl-await-0.1.2.tgz", + "integrity": "sha512-e03zlI31RjF6Ks9+/ju0gY55dZSm21XXMSzy85FGZtDxuAZCa/iQwzWoQjmZvaolQCrIjzs0e4shxZs1bxbpUg==", + "dependencies": { + "acorn": "^8.0.5", + "acorn-class-fields": "^1.0.0", + "acorn-private-methods": "^1.0.0", + "acorn-static-class-features": "^1.0.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/nodemailer": { + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.5.tgz", + "integrity": "sha512-6VtMpwhsrixq1HDYSBBHvW0GwiWawE75dS3oal48VqRhUvKJNnKnJo2RI/bCVQubj1vgrgscMNW4DHaD6xtMCg==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-exit-leak-free": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", + "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==", + "dev": true + }, + "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": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "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/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "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.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-all": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", + "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-all/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-filter/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/packet-reader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", + "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-imports": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-0.0.5.tgz", + "integrity": "sha512-yA6mDNotJmyAXcEdi2AjiHfI8Llk+/uv/jgBgvzFVP8iGaHC5L3rR6VQk/1qEE3SvLUsDQ2GdQMfPTi0qrmt8Q==", + "dependencies": { + "es-module-lexer": "0.3.26", + "slashes": "2.0.2" + }, + "engines": { + "node": ">= 10" + } + }, + "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/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": 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-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/peek-readable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/pg": { + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", + "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", + "dependencies": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.5.1", + "pg-protocol": "^1.5.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "pg-native": ">=2.0.0" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", + "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", + "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", + "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", + "dependencies": { + "split2": "^3.1.1" + } + }, + "node_modules/phc-bcrypt": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/phc-bcrypt/-/phc-bcrypt-1.0.7.tgz", + "integrity": "sha512-seNphgu9x8NgzpemlweNsxvcyH0bqJSjNEz1+d3mRCicZ6ucFzmASaNhUiGkpZ8KltTIWz4/ppB3UEhl8OctGA==", + "dependencies": { + "@kdf/salt": "^2.0.1", + "@phc/format": "^1.0.0", + "bcrypt": "^5.0.1", + "tsse": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pino": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", + "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", + "dependencies": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.8", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", + "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", + "dev": true, + "dependencies": { + "duplexify": "^4.1.2", + "split2": "^4.0.0" + } + }, + "node_modules/pino-abstract-transport/node_modules/split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/pino-pretty": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-8.0.0.tgz", + "integrity": "sha512-6Zn+2HBc8ZXEJb1XYZfY0Kh0jVBeKxmu077BzE0wzJZzQwNffmdQbIH7bNe0WPLjLApnVTx8TvvR8UNUcgE4nA==", + "dev": true, + "dependencies": { + "args": "5.0.1", + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^2.1.1", + "fast-safe-stringify": "^2.0.7", + "joycon": "^3.1.1", + "on-exit-leak-free": "^0.2.0", + "pino-abstract-transport": "^0.5.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^2.2.0", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, + "node_modules/pino/node_modules/sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/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/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/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "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, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dev": true + }, + "node_modules/process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + }, + "node_modules/prop-ini": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/prop-ini/-/prop-ini-0.0.2.tgz", + "integrity": "sha512-qyU57WvAvZDbzmRy9xDbJGVwrGJhmA+rYnVjy4xtX4Ny9c7gzvpmf/j7A3oq9ChbPh15MZQKjPep2mNdnAhtig==", + "dev": true, + "dependencies": { + "extend": "^3.0.0" + } + }, + "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==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "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==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "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==", + "dev": 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==" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readme-badger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/readme-badger/-/readme-badger-0.3.0.tgz", + "integrity": "sha512-+sMOLSs1imZUISZ2Rhz7qqVd77QtpcAPbGeIraFdgJmijb04YtdlPjGNBvDChTNtLbeQ6JNGQy3pOgslWfaP3g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.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/redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "dev": true, + "dependencies": { + "esprima": "~4.0.0" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-all": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/require-all/-/require-all-3.0.0.tgz", + "integrity": "sha1-Rz1JcEvjEBFc4ST3c4Ox69hnExI=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "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-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "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/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rev-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rev-hash/-/rev-hash-3.0.0.tgz", + "integrity": "sha512-s+87HfEKAu95TaTxnbCobn0/BkbzR23LHSwVdYvr8mn5+PPjzy+hTWyh92b5oaLgig9TKPe5d6ZcubsVBtUrZg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dev": 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" + } + ] + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.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==" + }, + "node_modules/secure-json-parse": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", + "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==", + "dev": true + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "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/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "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/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": 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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/slashes": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-2.0.2.tgz", + "integrity": "sha512-68p+QkFAQQRetIUzNXAdktNJr8AYLxJukjBegYQz8F7VATsBJG621UYtY/vS2j9jerxdJ1k6Tc25K4DXEw1d5w==" + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slugify": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", + "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/smpltmpl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/smpltmpl/-/smpltmpl-1.0.2.tgz", + "integrity": "sha512-Hq23NNgeZigOzIiX1dkb6W3gFn2/XQj43KhPxu65IMieG/gIwf/lQb1IudjYv0c/5LwJeS/mPayYzyo+8WJMxQ==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "node_modules/socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sonic-boom": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "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-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/split-lines": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/split-lines/-/split-lines-2.1.0.tgz", + "integrity": "sha512-8dv+1zKgTpfTkOy8XZLFyWrfxO0NV/bj/3EaQ+hBrBxGv2DwiroljPjU8NlCr+59nLnsVm9WYT7lXKwe4TC6bw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "as-table": "^1.0.36", + "get-source": "^2.0.12" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-attributes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stringify-attributes/-/stringify-attributes-2.0.0.tgz", + "integrity": "sha512-wrVfRV6sCCB6wr3gx8OgKsp/9dSWWbKr8ifLfOxEcd/BBoa8d5pAf4BZb/jQW1JZnoZImjvUdxdo3ikYHZmYiw==", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "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/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "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/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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "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": "4.2.0", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.0.tgz", + "integrity": "sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w==", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/truncatise": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/truncatise/-/truncatise-0.0.8.tgz", + "integrity": "sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==" + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/tsse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tsse/-/tsse-2.0.0.tgz", + "integrity": "sha512-KiYDxhCTbCUQWXtCSF2OWafC71C/ZUZP6TyCh/w7nPjzY1ZLY70KtDSfmePs3H4vSdxQotqdJvAkGAofxsQ05w==", + "dependencies": { + "safe-buffer": "^5.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "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.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.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/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uuid-random": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/uuid-random/-/uuid-random-1.3.2.tgz", + "integrity": "sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ==" + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.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==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/youch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/youch/-/youch-3.2.0.tgz", + "integrity": "sha512-H+hTPaqFc1EDXHmp8sqOQe7pOvP3GlYovV+Dkg8sQ2RUy95p9gJeH2gJ64V4LYxh8wI8+4KqJjhbLt4DeUgzgQ==", + "dev": true, + "dependencies": { + "cookie": "^0.5.0", + "mustache": "^4.2.0", + "stacktracey": "^2.1.8" + } + }, + "node_modules/youch-terminal": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/youch-terminal/-/youch-terminal-2.1.4.tgz", + "integrity": "sha512-pxJ8JmnqWDg9Eayefy9WuiZFtFrT9+fBTZBWHCocuo0Iv0CW3daAkwCGxh7IDZtq6/OA/v+5MhH52cde0p0ZSA==", + "dev": true, + "dependencies": { + "kleur": "^4.1.4" + } + } + }, + "dependencies": { + "@adonisjs/ace": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-11.3.1.tgz", + "integrity": "sha512-Ho3+Lk/16OSjX3CfhxsoLUTlcVG4sDlXUwHx+Zry/RLft5M6plT5ln0WkZvL7tqtb1uCZgP5YiMrMtDjSRzZLA==", + "requires": { + "@poppinss/cliui": "^3.0.2", + "@poppinss/prompts": "^2.0.2", + "@poppinss/utils": "^4.0.4", + "fs-extra": "^10.1.0", + "getopts": "^2.3.0", + "leven": "^3.1.0", + "mustache": "^4.2.0", + "slash": "^3.0.0", + "term-size": "^2.2.1" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/application": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-5.2.5.tgz", + "integrity": "sha512-gWhW/dAzMb8019kTPzY+1QIhnXoBjZgRxkMFWz7BQzS8GUJr8BDzrRpGzhWoj8Xpal3EkprN3gv5Upcqvg6uEQ==", + "requires": { + "@adonisjs/config": "^3.0.8", + "@adonisjs/env": "^3.0.9", + "@adonisjs/fold": "^8.2.0", + "@adonisjs/logger": "^4.1.4", + "@adonisjs/profiler": "^6.0.9", + "@poppinss/utils": "^4.0.4", + "semver": "^7.3.7" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@adonisjs/assembler": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-5.7.0.tgz", + "integrity": "sha512-13ombiG4YLzrOnYvY6qIAHRX9Wc6KnAbmxmyVTd3gxLq/knqHLX8apwk9O/hebf7t8lBxwnIVmw61C9dYBBsqg==", + "dev": true, + "requires": { + "@adonisjs/application": "^5.2.4", + "@adonisjs/env": "^3.0.9", + "@adonisjs/ioc-transformer": "^2.3.4", + "@adonisjs/require-ts": "^2.0.12", + "@adonisjs/sink": "^5.3.2", + "@poppinss/chokidar-ts": "^3.3.5", + "@poppinss/cliui": "^3.0.2", + "@poppinss/utils": "^4.0.4", + "cpy": "^8.1.2", + "emittery": "^0.11.0", + "execa": "^5.1.1", + "fs-extra": "^10.0.1", + "get-port": "^5.1.1", + "glob-parent": "^6.0.2", + "has-yarn": "^2.1.0", + "picomatch": "^2.3.1", + "slash": "^3.0.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dev": true, + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/attachment-lite": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@adonisjs/attachment-lite/-/attachment-lite-1.0.7.tgz", + "integrity": "sha512-LIMVQ1ejrsDfzUAWwhL7W8GnWBFkEn9SvnY8Q8FnTihYD+Mjt3TO7Nxt5JhO3ZtuuvzcJMQUrH6xjYC4p/Yb8Q==", + "requires": { + "@poppinss/utils": "^4.0.4" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/auth": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-8.2.1.tgz", + "integrity": "sha512-rLtbefIzyHAq3UZgiE47WyZyc+92t4jPF8n/MeRV6FNIIdnAdQypBrz+K5lZZDNF5n3kOcbeii6SNH4KvDm6Og==", + "requires": { + "@poppinss/hooks": "^5.0.3", + "@poppinss/utils": "^4.0.4", + "luxon": "^2.4.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/bodyparser": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-8.1.6.tgz", + "integrity": "sha512-8OyQO4BeIKK+xJSH1YdSZVTllTsq0uTHcZw4a/7eShXKaVT0z8/IupIG2uymVpPPSfu+3kbN9ueipqFsvz9MpA==", + "requires": { + "@poppinss/co-body": "^1.1.3", + "@poppinss/multiparty": "^2.0.1", + "@poppinss/utils": "^4.0.4", + "bytes": "^3.1.2", + "end-of-stream": "^1.4.4", + "file-type": "^16.5.3", + "fs-extra": "^10.1.0", + "media-typer": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/bouncer": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@adonisjs/bouncer/-/bouncer-2.3.0.tgz", + "integrity": "sha512-wJTIgIkDXtUyeCJGX/iV/EdrLQAuIU0YSwl8Lxn7hcYec9VbsMJ5aYIXeSNtOqECNqVm7KFdzyJiOEij9Luoqg==", + "requires": { + "@poppinss/utils": "^4.0.4" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/config": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-3.0.8.tgz", + "integrity": "sha512-rquKb2GVmrITfkdwbmFoTIWJRCsgci8g/FJOz3iG35AB6/dW2ksSa6TSRH+zC4fKb3MO/rkS2guUpxKTvG7wHA==", + "requires": { + "@poppinss/utils": "^4.0.2" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/core": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-5.8.3.tgz", + "integrity": "sha512-hzIfOp+leo4KD45uh4TYjLzCBPFgreOlEqJX/+LBmN40dh6S6Dhl6ayWSHrD2N5yiA+5LXBY/Drw3zfjUJQ8ZQ==", + "requires": { + "@adonisjs/ace": "^11.3.0", + "@adonisjs/application": "^5.2.5", + "@adonisjs/bodyparser": "^8.1.6", + "@adonisjs/drive": "^2.2.0", + "@adonisjs/encryption": "^4.0.8", + "@adonisjs/events": "^7.2.1", + "@adonisjs/hash": "^7.1.1", + "@adonisjs/http-server": "^5.10.0", + "@adonisjs/validator": "^12.3.2", + "@poppinss/cliui": "^3.0.2", + "@poppinss/manager": "^5.0.2", + "@poppinss/utils": "^4.0.4", + "fs-extra": "^10.1.0", + "macroable": "^7.0.1", + "memfs": "^3.4.3", + "serve-static": "^1.15.0", + "stringify-attributes": "^2.0.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/drive": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/drive/-/drive-2.2.0.tgz", + "integrity": "sha512-Js5/kiNZ2d8q9FBnmhh11N4VcmodhU4JlBF3HvGmITOeLFTpljhmBEX9SLLZgi3mRxhB43Z/tC3CSTpkiGGKOQ==", + "requires": { + "@poppinss/manager": "^5.0.2", + "@poppinss/utils": "^4.0.4", + "@types/fs-extra": "^9.0.13", + "etag": "^1.8.1", + "fs-extra": "^10.1.0", + "memfs": "^3.4.1" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/drive-s3": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@adonisjs/drive-s3/-/drive-s3-1.3.1.tgz", + "integrity": "sha512-Zzy59A98E270Tomgmoo1GyqvUeCN77EX/AHy/J/FX0enT/fQU0+vOs6SmrAmnN3I6oQR/xD23hd1piwkCdEnoA==", + "requires": { + "@aws-sdk/client-s3": "^3.92.0", + "@aws-sdk/lib-storage": "^3.92.0", + "@aws-sdk/s3-request-presigner": "^3.92.0", + "get-stream": "^6.0.1" + } + }, + "@adonisjs/encryption": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@adonisjs/encryption/-/encryption-4.0.8.tgz", + "integrity": "sha512-zMWbIESPHXafsbiLJyON/hlRYwrTIA3PuTil7xC8W4ngC36PgWe86Ra0x0t961u1We/LaSGkT8Vn93DymqB3aA==", + "requires": { + "@poppinss/utils": "^4.0.3" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/env": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-3.0.9.tgz", + "integrity": "sha512-9lxGmOQuF4FpUQ6NIwL/YQumaXG+2Wt8jQlQptplSUTasy6DHSEp7/SYvtC2RD9vxwn4gsptNCo+f8YRiqUvwQ==", + "requires": { + "@poppinss/utils": "^4.0.2", + "dotenv": "^16.0.0", + "validator": "^13.7.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/events": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-7.2.1.tgz", + "integrity": "sha512-N+ewQ19pvdWVIRGBeio1GqlMRJpHpZ+ZHCjhObI+bqoCh5nBApumW0JYe4blyMnUbUAtA9Aq1m1QbGaE7pRMcw==", + "requires": { + "emittery": "^0.10.0" + }, + "dependencies": { + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==" + } + } + }, + "@adonisjs/fold": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-8.2.0.tgz", + "integrity": "sha512-Uoo2HPp4SShIkGOF3+p3gT09W3j0zpkK+fOpPyYPTqYm7CWAunklTlowqX45b6CAVb5DCcORDUB8ia4D1ijeKg==", + "requires": { + "@poppinss/utils": "^4.0.4" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/hash": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-7.1.1.tgz", + "integrity": "sha512-Oso6uIbgkNfqh4LM+m1IlDs6D+KvuLXia0pOyUR3GUwc6oRfrfVwaaONZI0+LWsNBfKPs5kRjxEq/Rq6m+VkeQ==", + "requires": { + "@phc/format": "^1.0.0", + "@poppinss/manager": "^5.0.2", + "@poppinss/utils": "^4.0.4" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/http-server": { + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-5.10.1.tgz", + "integrity": "sha512-8C14Qd+ySW9pXrH3QeEbXsiJiOiIQtiiQ+MReKPZMbt3A19wqZEBAbgcHFvUEN72lpUHQBgGE5NoQuSBKi9/zw==", + "requires": { + "@poppinss/matchit": "^3.1.2", + "@poppinss/utils": "^4.0.4", + "accepts": "^1.3.8", + "co-compose": "^7.0.2", + "content-disposition": "^0.5.4", + "cookie": "^0.5.0", + "destroy": "^1.2.0", + "encodeurl": "^1.0.2", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "haye": "^3.0.0", + "macroable": "^7.0.1", + "mime-types": "^2.1.35", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "pluralize": "^8.0.0", + "proxy-addr": "^2.0.7", + "qs": "^6.10.3", + "tmp-cache": "^1.1.0", + "type-is": "^1.6.18", + "vary": "^1.1.2" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/ioc-transformer": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@adonisjs/ioc-transformer/-/ioc-transformer-2.3.4.tgz", + "integrity": "sha512-ik1C7f0Hbqenw6S1Ty06B4pznGfpUH5bL2fiCYgwq+jKPw8CKdsTQKvYudS6Tj68Nr6Mpqow4RNbvFV/OC0mZg==", + "dev": true + }, + "@adonisjs/logger": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-4.1.4.tgz", + "integrity": "sha512-OEfve1bqv3IzRWPTKauJb0Gjq6GIrZhbl6alpFaKXMbHbK49ocgo+2Q/N2WAl58kj5VIt/4CE3q2EG44AHfhDA==", + "requires": { + "@poppinss/utils": "^4.0.3", + "@types/pino": "^6.3.12", + "abstract-logging": "^2.0.1", + "pino": "^6.14.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/lucid": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-18.0.1.tgz", + "integrity": "sha512-oiE586osItDN1v7L+O44tHZupR4JyVyqpG5Oel6EdqfnPb7qhc+jKfBl81XA96MwZtLvI8yLGAx0e+GLAPgtXA==", + "requires": { + "@faker-js/faker": "^6.3.1", + "@poppinss/hooks": "^5.0.3", + "@poppinss/utils": "^4.0.4", + "fast-deep-equal": "^3.1.3", + "igniculus": "^1.5.0", + "knex": "^2.0.0", + "knex-dynamic-connection": "^3.0.0", + "luxon": "^2.4.0", + "macroable": "^7.0.1", + "pretty-hrtime": "^1.0.3", + "qs": "^6.10.3", + "slash": "^3.0.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/mail": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@adonisjs/mail/-/mail-8.1.2.tgz", + "integrity": "sha512-5mjSbrm9CZdjMVB3Ht3LBfifZPtijAK51ZmtCrga5gPhNYn3SgJdhD0NIg05ROq1+au1g53I8cZ8cESA3g84DQ==", + "requires": { + "@poppinss/colors": "^3.0.2", + "@poppinss/manager": "^5.0.2", + "@poppinss/utils": "^4.0.4", + "fastq": "^1.13.0", + "get-stream": "^6.0.1", + "got": "^11.8.2", + "ical-generator": "^3.4.1", + "multi-part": "^3.0.0", + "nodemailer": "^6.7.3" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/profiler": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/@adonisjs/profiler/-/profiler-6.0.9.tgz", + "integrity": "sha512-V1bJPPDTn05NzAKUEICnYtWi9fC8NownUToaqxVkWOUovYBO6ubt06qtH1Uv9zvUjB2PKHUn+ieDAOgyHle09A==", + "requires": { + "@poppinss/utils": "^4.0.3", + "jest-worker": "^27.5.1" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/redis": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@adonisjs/redis/-/redis-7.3.0.tgz", + "integrity": "sha512-oSwzjbLhnPmU+yQs6g48piRjlZxNdRwAUfMg6vqnhKWklPG1EOGLi9kd0I9JhIygGpwtzYYVRsazCK+p2vDtYQ==", + "requires": { + "@poppinss/utils": "^4.0.4", + "@types/ioredis": "^4.28.10", + "ioredis": "^5.0.5" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/repl": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/@adonisjs/repl/-/repl-3.1.11.tgz", + "integrity": "sha512-t4xN+G+fa/XeZ+7qHnFbTk1bri/4RIGdFDk1cq2SeZI3nfu3E8Ma62uQVc8U3AAroN51plzXVcUoQ/Iw8q1P+Q==", + "requires": { + "@poppinss/colors": "^3.0.2", + "node-repl-await": "^0.1.2", + "parse-imports": "0.0.5", + "string-width": "^4.2.2" + } + }, + "@adonisjs/require-ts": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@adonisjs/require-ts/-/require-ts-2.0.12.tgz", + "integrity": "sha512-zSXTtJOQV0rutj+If6SPOL0XL+Lp5dgxdyGP25XfaQ5VYQAcnL9vlOy1PXANOsuWyOWFiBHQKFzWmDmwrlckhg==", + "dev": true, + "requires": { + "@poppinss/utils": "^4.0.4", + "debug": "^4.3.4", + "find-cache-dir": "^3.3.2", + "fs-extra": "^10.1.0", + "normalize-path": "^3.0.0", + "pirates": "^4.0.5", + "rev-hash": "^3.0.0", + "source-map-support": "^0.5.21" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dev": true, + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/sink": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/@adonisjs/sink/-/sink-5.3.2.tgz", + "integrity": "sha512-DLwXt6FrNxS2DlRwy/xK6BKjxgE34+WSluWhi7k2AYA0YUtLNzZCNecut03/G1PmeWOTmwiSXaUaRY6Q+9w3IQ==", + "dev": true, + "requires": { + "@poppinss/cliui": "^3.0.2", + "@poppinss/prompts": "^2.0.2", + "@poppinss/utils": "^4.0.4", + "cp-file": "^9.1.0", + "fs-extra": "^10.1.0", + "marked": "^4.0.16", + "marked-terminal": "^5.1.1", + "mrm-core": "^7.0.0", + "mustache": "^4.2.0", + "open": "^8.4.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "dev": true, + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/validator": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/@adonisjs/validator/-/validator-12.3.2.tgz", + "integrity": "sha512-nwI4wTamYHgleMn4LoU/ZleSRhKBOVzK/bnkBvCOpiUuF4Bxtz+JCSpRWp6VX66jRJwh8DLBFH09Ul0HzKnjJg==", + "requires": { + "@poppinss/utils": "^4.0.4", + "@types/luxon": "^2.3.2", + "@types/validator": "^13.7.2", + "luxon": "^2.4.0", + "normalize-url": "^6.1.0", + "tmp-cache": "^1.1.0", + "validator": "^13.7.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "@adonisjs/view": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/@adonisjs/view/-/view-6.1.5.tgz", + "integrity": "sha512-WGyNGXZQYzeK39ufkK+OELsARBg9GRQFZUCUwQpe33ddLVGYb3D1ElAhW+rFY9l0/+h7ClXpjdns0JKBsYk9iQ==", + "requires": { + "edge-error": "^2.0.8", + "edge-supercharged": "^3.1.1", + "edge.js": "^5.3.6" + } + }, + "@arr/every": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz", + "integrity": "sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==" + }, + "@aws-crypto/crc32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-2.0.0.tgz", + "integrity": "sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA==", + "requires": { + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/crc32c": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-2.0.0.tgz", + "integrity": "sha512-vF0eMdMHx3O3MoOXUfBZry8Y4ZDtcuskjjKgJz8YfIDjLStxTZrYXk+kZqtl6A0uCmmiN/Eb/JbC/CndTV1MHg==", + "requires": { + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/ie11-detection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", + "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", + "requires": { + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/sha1-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-2.0.0.tgz", + "integrity": "sha512-3fIVRjPFY8EG5HWXR+ZJZMdWNRpwbxGzJ9IH9q93FpbgCH8u8GHRi46mZXp3cYD7gealmyqpm3ThZwLKJjWJhA==", + "requires": { + "@aws-crypto/ie11-detection": "^2.0.0", + "@aws-crypto/supports-web-crypto": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/sha256-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", + "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "requires": { + "@aws-crypto/ie11-detection": "^2.0.0", + "@aws-crypto/sha256-js": "^2.0.0", + "@aws-crypto/supports-web-crypto": "^2.0.0", + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/sha256-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", + "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "requires": { + "@aws-crypto/util": "^2.0.0", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/supports-web-crypto": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", + "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", + "requires": { + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-crypto/util": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", + "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", + "requires": { + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@aws-sdk/abort-controller": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.78.0.tgz", + "integrity": "sha512-iz1YLwM2feJUj/y97yO4XmDeTxs+yZ1XJwQgoawKuc8IDBKUutnJNCHL5jL04WUKU7Nrlq+Hr2fCTScFh2z9zg==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/chunked-blob-reader": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.55.0.tgz", + "integrity": "sha512-o/xjMCq81opAjSBjt7YdHJwIJcGVG5XIV9+C2KXcY5QwVimkOKPybWTv0mXPvSwSilSx+EhpLNhkcJuXdzhw4w==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/chunked-blob-reader-native": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.58.0.tgz", + "integrity": "sha512-+D3xnPD5985iphgAqgUerBDs371a2WzzoEVi7eHJUMMsP/gEnSTdSH0HNxsqhYv6CW4EdKtvDAQdAwA1VtCf2A==", + "requires": { + "@aws-sdk/util-base64-browser": "3.58.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-s3": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.100.0.tgz", + "integrity": "sha512-UmgFdJabWtiUS4dWsC3kZ+ZMvH5QUUbDnLS8pT12duwLGt+xlWPn3PUkV8kL6qjG6XePLUgCqFTLjDD4tsTZNg==", + "requires": { + "@aws-crypto/sha1-browser": "2.0.0", + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/client-sts": "3.100.0", + "@aws-sdk/config-resolver": "3.80.0", + "@aws-sdk/credential-provider-node": "3.100.0", + "@aws-sdk/eventstream-serde-browser": "3.78.0", + "@aws-sdk/eventstream-serde-config-resolver": "3.78.0", + "@aws-sdk/eventstream-serde-node": "3.78.0", + "@aws-sdk/fetch-http-handler": "3.78.0", + "@aws-sdk/hash-blob-browser": "3.78.0", + "@aws-sdk/hash-node": "3.78.0", + "@aws-sdk/hash-stream-node": "3.78.0", + "@aws-sdk/invalid-dependency": "3.78.0", + "@aws-sdk/md5-js": "3.78.0", + "@aws-sdk/middleware-bucket-endpoint": "3.80.0", + "@aws-sdk/middleware-content-length": "3.78.0", + "@aws-sdk/middleware-expect-continue": "3.78.0", + "@aws-sdk/middleware-flexible-checksums": "3.78.0", + "@aws-sdk/middleware-host-header": "3.78.0", + "@aws-sdk/middleware-location-constraint": "3.78.0", + "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-retry": "3.80.0", + "@aws-sdk/middleware-sdk-s3": "3.86.0", + "@aws-sdk/middleware-serde": "3.78.0", + "@aws-sdk/middleware-signing": "3.78.0", + "@aws-sdk/middleware-ssec": "3.78.0", + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/middleware-user-agent": "3.78.0", + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/node-http-handler": "3.94.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4-multi-region": "3.88.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/url-parser": "3.78.0", + "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/util-base64-node": "3.55.0", + "@aws-sdk/util-body-length-browser": "3.55.0", + "@aws-sdk/util-body-length-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", + "@aws-sdk/util-stream-browser": "3.78.0", + "@aws-sdk/util-stream-node": "3.78.0", + "@aws-sdk/util-user-agent-browser": "3.78.0", + "@aws-sdk/util-user-agent-node": "3.80.0", + "@aws-sdk/util-utf8-browser": "3.55.0", + "@aws-sdk/util-utf8-node": "3.55.0", + "@aws-sdk/util-waiter": "3.78.0", + "@aws-sdk/xml-builder": "3.55.0", + "entities": "2.2.0", + "fast-xml-parser": "3.19.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-sso": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.100.0.tgz", + "integrity": "sha512-nmBRUO5QfQ2IO8fHb37p8HT3n1ZooPb3sfTQejrpFH9Eq82VEOatIGt6yH3yTQ8+mhbabEhV5aY2wt/0D7wGVA==", + "requires": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.80.0", + "@aws-sdk/fetch-http-handler": "3.78.0", + "@aws-sdk/hash-node": "3.78.0", + "@aws-sdk/invalid-dependency": "3.78.0", + "@aws-sdk/middleware-content-length": "3.78.0", + "@aws-sdk/middleware-host-header": "3.78.0", + "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-retry": "3.80.0", + "@aws-sdk/middleware-serde": "3.78.0", + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/middleware-user-agent": "3.78.0", + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/node-http-handler": "3.94.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/url-parser": "3.78.0", + "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/util-base64-node": "3.55.0", + "@aws-sdk/util-body-length-browser": "3.55.0", + "@aws-sdk/util-body-length-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", + "@aws-sdk/util-user-agent-browser": "3.78.0", + "@aws-sdk/util-user-agent-node": "3.80.0", + "@aws-sdk/util-utf8-browser": "3.55.0", + "@aws-sdk/util-utf8-node": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/client-sts": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.100.0.tgz", + "integrity": "sha512-WHy0e6COf6/LfMsYqG9H4SGaQRDjuckMtwOLtu6cYr4cro3bOU5pNuyEjAdUHCpuhZgiE6gkZozhTlxMJqIuRQ==", + "requires": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/config-resolver": "3.80.0", + "@aws-sdk/credential-provider-node": "3.100.0", + "@aws-sdk/fetch-http-handler": "3.78.0", + "@aws-sdk/hash-node": "3.78.0", + "@aws-sdk/invalid-dependency": "3.78.0", + "@aws-sdk/middleware-content-length": "3.78.0", + "@aws-sdk/middleware-host-header": "3.78.0", + "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-retry": "3.80.0", + "@aws-sdk/middleware-sdk-sts": "3.78.0", + "@aws-sdk/middleware-serde": "3.78.0", + "@aws-sdk/middleware-signing": "3.78.0", + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/middleware-user-agent": "3.78.0", + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/node-http-handler": "3.94.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/url-parser": "3.78.0", + "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/util-base64-node": "3.55.0", + "@aws-sdk/util-body-length-browser": "3.55.0", + "@aws-sdk/util-body-length-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", + "@aws-sdk/util-user-agent-browser": "3.78.0", + "@aws-sdk/util-user-agent-node": "3.80.0", + "@aws-sdk/util-utf8-browser": "3.55.0", + "@aws-sdk/util-utf8-node": "3.55.0", + "entities": "2.2.0", + "fast-xml-parser": "3.19.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/config-resolver": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.80.0.tgz", + "integrity": "sha512-vFruNKlmhsaC8yjnHmasi1WW/7EELlEuFTj4mqcqNqR4dfraf0maVvpqF1VSR8EstpFMsGYI5dmoWAnnG4PcLQ==", + "requires": { + "@aws-sdk/signature-v4": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-config-provider": "3.55.0", + "@aws-sdk/util-middleware": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-env": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.78.0.tgz", + "integrity": "sha512-K41VTIzVHm2RyIwtBER8Hte3huUBXdV1WKO+i7olYVgLFmaqcZUNrlyoGDRqZcQ/u4AbxTzBU9jeMIbIfzMOWg==", + "requires": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-imds": { + "version": "3.81.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.81.0.tgz", + "integrity": "sha512-BHopP+gaovTYj+4tSrwCk8NNCR48gE9CWmpIOLkP9ell0gOL81Qh7aCEiIK0BZBZkccv1s16cYq1MSZZGS7PEQ==", + "requires": { + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/url-parser": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-ini": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.100.0.tgz", + "integrity": "sha512-2pCtth/Iv4mATRwb2g1nJdd9TolMyhTnhcskopukFvzp13VS5cgtz0hgYmJNnztTF8lpKJhJaidtKS5JJTWnHg==", + "requires": { + "@aws-sdk/credential-provider-env": "3.78.0", + "@aws-sdk/credential-provider-imds": "3.81.0", + "@aws-sdk/credential-provider-sso": "3.100.0", + "@aws-sdk/credential-provider-web-identity": "3.78.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-node": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.100.0.tgz", + "integrity": "sha512-PMIPnn/dhv9tlWR0qXnANJpTumujWfhKnLAsV3BUqB1K9IzWqz/zXjCT0jcSUTY8X/VkSuehtBdCKvOOM5mMqg==", + "requires": { + "@aws-sdk/credential-provider-env": "3.78.0", + "@aws-sdk/credential-provider-imds": "3.81.0", + "@aws-sdk/credential-provider-ini": "3.100.0", + "@aws-sdk/credential-provider-process": "3.80.0", + "@aws-sdk/credential-provider-sso": "3.100.0", + "@aws-sdk/credential-provider-web-identity": "3.78.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-process": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.80.0.tgz", + "integrity": "sha512-3Ro+kMMyLUJHefOhGc5pOO/ibGcJi8bkj0z/Jtqd5I2Sm1qi7avoztST67/k48KMW1OqPnD/FUqxz5T8B2d+FQ==", + "requires": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-sso": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.100.0.tgz", + "integrity": "sha512-DwJvrh77vBJ1/fS9z0i2QuIvSk4pATA4DH8AEWoQ8LQX97tp3es7gZV5Wu93wFsEyIYC8penz6pNVq5QajMk2A==", + "requires": { + "@aws-sdk/client-sso": "3.100.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/credential-provider-web-identity": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.78.0.tgz", + "integrity": "sha512-9/IvqHdJaVqMEABA8xZE3t5YF1S2PepfckVu0Ws9YUglj6oO+2QyVX6aRgMF1xph6781+Yc31TDh8/3eaDja7w==", + "requires": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/eventstream-marshaller": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-3.78.0.tgz", + "integrity": "sha512-BMbRvLe6wNWQ+NO1pdPw3kGXXEdYV94BxEr3rTkKwr5yHpl8sUb/Va9sJJufUjzggpgE4vYu5nVsrT8ByMYXuA==", + "requires": { + "@aws-crypto/crc32": "2.0.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-hex-encoding": "3.58.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/eventstream-serde-browser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.78.0.tgz", + "integrity": "sha512-ehQI2iLsj8MMskDRbrPB7SibIdJq6LleBP6ojT+cgrLJRbVXUOxK+3MPHDZVdGYx4ukVg48E1fA2DzVfAp7Emw==", + "requires": { + "@aws-sdk/eventstream-marshaller": "3.78.0", + "@aws-sdk/eventstream-serde-universal": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/eventstream-serde-config-resolver": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.78.0.tgz", + "integrity": "sha512-iUG0wtZH/L7d6XfipwbhgjBHip0uTm9S27EasCn+g0CunbW6w7rXd7rfMqA+gSLVXPTBYjTMPIwRxrTCdRprwA==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/eventstream-serde-node": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.78.0.tgz", + "integrity": "sha512-H78LLoZEngZBSdk3lRQkAaR3cGsy/3UIjq9AFPeqoPVQtHkzBob1jVfE/5VSVAMhKLxWn8iqhRPS37AvyBGOwQ==", + "requires": { + "@aws-sdk/eventstream-marshaller": "3.78.0", + "@aws-sdk/eventstream-serde-universal": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/eventstream-serde-universal": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.78.0.tgz", + "integrity": "sha512-PZTLdyF923/1GJuMNtq9VMGd2vEx33HhsGInXvYtulKDSD5SgaTGj+Dz5wYepqL1gUEuXqZjBD71uZgrY/JgRg==", + "requires": { + "@aws-sdk/eventstream-marshaller": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/fetch-http-handler": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.78.0.tgz", + "integrity": "sha512-cR6r2h2kJ1DNEZSXC6GknQB7OKmy+s9ZNV+g3AsNqkrUmNNOaHpFoSn+m6SC3qaclcGd0eQBpqzSu/TDn23Ihw==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/querystring-builder": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-base64-browser": "3.58.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/hash-blob-browser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.78.0.tgz", + "integrity": "sha512-IEkA+t6qJEtEYEZgsqFRRITeZJ3mirw7IHJVHxwb86lpeufTVcbILI59B8/rhbqG+9dk0kWTjYSjC/ZdM+rgHA==", + "requires": { + "@aws-sdk/chunked-blob-reader": "3.55.0", + "@aws-sdk/chunked-blob-reader-native": "3.58.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/hash-node": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.78.0.tgz", + "integrity": "sha512-ev48yXaqZVtMeuKy52LUZPHCyKvkKQ9uiUebqkA+zFxIk+eN8SMPFHmsififIHWuS6ZkXBUSctjH9wmLebH60A==", + "requires": { + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-buffer-from": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/hash-stream-node": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.78.0.tgz", + "integrity": "sha512-y42Pm0Nk6zf/MI6acLFVFAMya0Ncvy6F6Xu5aYAmwIMIoMI0ctNeyuL/Dikgt8+oyxC+kORw+W9jtzgWj2zY/w==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/invalid-dependency": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.78.0.tgz", + "integrity": "sha512-zUo+PbeRMN/Mzj6y+6p9qqk/znuFetT1gmpOcZGL9Rp2T+b9WJWd+daq5ktsL10sVCzIt2UvneJRz6b+aU+bfw==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/is-array-buffer": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", + "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/lib-storage": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.100.0.tgz", + "integrity": "sha512-IP8Y310+24FOI3bZqdx9mTef1fKUa5YFfMa+Zmfj4+cxMB5/5wrAc2MacyQdPshmdOCIfJ8Izikop6SqeEQqcg==", + "requires": { + "buffer": "5.6.0", + "events": "3.3.0", + "stream-browserify": "3.0.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/md5-js": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.78.0.tgz", + "integrity": "sha512-vKOXJWJvv6QH6rnqMYEWzwAnMr4hfcmY8+t6BAuTcDpcEVF77e3bwUcaajXi2U0JMuNvnLwuJF3h6kL6aX4l6g==", + "requires": { + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-utf8-browser": "3.55.0", + "@aws-sdk/util-utf8-node": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-bucket-endpoint": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.80.0.tgz", + "integrity": "sha512-FSSx6IgT7xftSlpjxoPKv8XI9nv7EK+OCODo2s3CmElMW1kBRdmQ/ImVuTwvqhdxJEVUeUdgupmC7cqyqgt04w==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-arn-parser": "3.55.0", + "@aws-sdk/util-config-provider": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-content-length": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.78.0.tgz", + "integrity": "sha512-5MpKt6lB9TdFy25/AGrpOjPY0iDHZAKpEHc+jSOJBXLl6xunXA7qHdiYaVqkWodLxy70nIckGNHqQ3drabidkA==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-expect-continue": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.78.0.tgz", + "integrity": "sha512-IXfcSugFV3uNk50VQsN/Cm80iCsUSwcYJ5RzEwy7wXbZ+KM03xWXlbXzqkeTDnS74wLWSw09nKF3rkp1eyfDfg==", + "requires": { + "@aws-sdk/middleware-header-default": "3.78.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-flexible-checksums": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.78.0.tgz", + "integrity": "sha512-1jjxHcB3Le/2Z7BzugXzZnIwKGlUluNm0d1lB4fF2QVq3GHlA6e8uv0rCtqe/3wSsrzV6YzJ8vjioymKSNIjKQ==", + "requires": { + "@aws-crypto/crc32": "2.0.0", + "@aws-crypto/crc32c": "2.0.0", + "@aws-sdk/is-array-buffer": "3.55.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-header-default": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-header-default/-/middleware-header-default-3.78.0.tgz", + "integrity": "sha512-USyOIF7ObBVMKbV/8lOBLDNwMAGdOtujd+RO/9dX6OQLceUTKIS1dOfJoYYwRHgengn7ikpDxoyROyspPYYDZQ==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-host-header": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.78.0.tgz", + "integrity": "sha512-1zL8uaDWGmH50c8B8jjz75e0ePj6/3QeZEhjJgTgL6DTdiqvRt32p3t+XWHW+yDI14fZZUYeTklAaLVxqFrHqQ==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-location-constraint": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.78.0.tgz", + "integrity": "sha512-m626H1WwXYJtwHEkV/2DsLlu1ckWq3j57NzsexZki3qS0nU8HEiDl6YYi+k84vDD4Qpba6EI9AdhzwnvZLXtGw==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-logger": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.78.0.tgz", + "integrity": "sha512-GBhwxNjhCJUIeQQDaGasX/C23Jay77al2vRyGwmxf8no0DdFsa4J1Ik6/2hhIqkqko+WM4SpCnpZrY4MtnxNvA==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-retry": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.80.0.tgz", + "integrity": "sha512-CTk+tA4+WMUNOcUfR6UQrkhwvPYFpnMsQ1vuHlpLFOGG3nCqywA2hueLMRQmVcDXzP0sGeygce6dzRI9dJB/GA==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/service-error-classification": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-middleware": "3.78.0", + "tslib": "^2.3.1", + "uuid": "^8.3.2" + } + }, + "@aws-sdk/middleware-sdk-s3": { + "version": "3.86.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.86.0.tgz", + "integrity": "sha512-1L9q8iJXy/KNyVR8JRs4DZ5SJse6nJPiK4AR8c2xF5FWHdGoFaLcdqpg2/TLB1kpdcfGgNp96uCROxh+IPXtDQ==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-arn-parser": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-sdk-sts": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.78.0.tgz", + "integrity": "sha512-Lu/kN0J0/Kt0ON1hvwNel+y8yvf35licfIgtedHbBCa/ju8qQ9j+uL9Lla6Y5Tqu29yVaye1JxhiIDhscSwrLA==", + "requires": { + "@aws-sdk/middleware-signing": "3.78.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-serde": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.78.0.tgz", + "integrity": "sha512-4DPsNOxsl1bxRzfo1WXEZjmD7OEi7qGNpxrDWucVe96Fqj2dH08jR8wxvBIVV1e6bAad07IwdPuCGmivNvwRuQ==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-signing": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.78.0.tgz", + "integrity": "sha512-OEjJJCNhHHSOprLZ9CzjHIXEKFtPHWP/bG9pMhkV3/6Bmscsgcf8gWHcOnmIrjqX+hT1VALDNpl/RIh0J6/eQw==", + "requires": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-ssec": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.78.0.tgz", + "integrity": "sha512-3z+UOd95rxvj+iO6WxMjuRNNUMlO6xhXZdBHvQmoiyS+9nMDcNieTu6gfQyLAilVeCh8xU9a0IenJuIYVdJ96g==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-stack": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.78.0.tgz", + "integrity": "sha512-UoNfRh6eAJN3BJHlG1eb+KeuSe+zARTC2cglroJRyHc2j7GxH2i9FD3IJbj5wvzopJEnQzuY/VCs6STFkqWL1g==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-user-agent": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.78.0.tgz", + "integrity": "sha512-wdN5uoq8RxxhLhj0EPeuDSRFuXfUwKeEqRzCKMsYAOC0cAm+PryaP2leo0oTGJ9LUK8REK7zyfFcmtC4oOzlkA==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/node-config-provider": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.80.0.tgz", + "integrity": "sha512-vyTOMK04huB7n10ZUv0thd2TE6KlY8livOuLqFTMtj99AJ6vyeB5XBNwKnQtJIt/P7CijYgp8KcFvI9fndOmKg==", + "requires": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/shared-ini-file-loader": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/node-http-handler": { + "version": "3.94.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.94.0.tgz", + "integrity": "sha512-g9q6k+PS+BrtOzt8jrBWr9D543uB3ZoYZ2JCriwuCwnP4uIHlMf9wAOGcOgqgykfUAPBOLvz2rTwVs3Xl8GUmQ==", + "requires": { + "@aws-sdk/abort-controller": "3.78.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/querystring-builder": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/property-provider": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.78.0.tgz", + "integrity": "sha512-PZpLvV0hF6lqg3CSN9YmphrB/t5LVJVWGJLB9d9qm7sJs5ksjTYBb5bY91OQ3zit0F4cqBMU8xt2GQ9J6d4DvQ==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/protocol-http": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.78.0.tgz", + "integrity": "sha512-SQB26MhEK96yDxyXd3UAaxLz1Y/ZvgE4pzv7V3wZiokdEedM0kawHKEn1UQJlqJLEZcQI9QYyysh3rTvHZ3fyg==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/querystring-builder": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.78.0.tgz", + "integrity": "sha512-aib6RW1WAaTQDqVgRU1Ku9idkhm90gJKbCxVaGId+as6QHNUqMChEfK2v+0afuKiPNOs5uWmqvOXI9+Gt+UGDg==", + "requires": { + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-uri-escape": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/querystring-parser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.78.0.tgz", + "integrity": "sha512-csaH8YTyN+KMNczeK6fBS8l7iJaqcQcKOIbpQFg5upX4Ly5A56HJn4sVQhY1LSgfSk4xRsNfMy5mu6BlsIiaXA==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/s3-request-presigner": { + "version": "3.100.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.100.0.tgz", + "integrity": "sha512-32j9o2ChP2pzsua5+Ci9XFKBsFXxlE5muVD9CSpEG9UfUieORAvXsZVChu86IWBFR2nQRm0vebrwJC2tKsgu1A==", + "requires": { + "@aws-sdk/middleware-sdk-s3": "3.86.0", + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4-multi-region": "3.88.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-create-request": "3.99.0", + "@aws-sdk/util-format-url": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/service-error-classification": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.78.0.tgz", + "integrity": "sha512-x7Lx8KWctJa01q4Q72Zb4ol9L/era3vy2daASu8l2paHHxsAPBE0PThkvLdUSLZSzlHSVdh3YHESIsT++VsK4w==" + }, + "@aws-sdk/shared-ini-file-loader": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.80.0.tgz", + "integrity": "sha512-3d5EBJjnWWkjLK9skqLLHYbagtFaZZy+3jUTlbTuOKhlOwe8jF7CUM3j6I4JA6yXNcB3w0exDKKHa8w+l+05aA==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/signature-v4": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.78.0.tgz", + "integrity": "sha512-eePjRYuzKoi3VMr/lgrUEF1ytLeH4fA/NMCykr/uR6NMo4bSJA59KrFLYSM7SlWLRIyB0UvJqygVEvSxFluyDw==", + "requires": { + "@aws-sdk/is-array-buffer": "3.55.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-hex-encoding": "3.58.0", + "@aws-sdk/util-middleware": "3.78.0", + "@aws-sdk/util-uri-escape": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/signature-v4-multi-region": { + "version": "3.88.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.88.0.tgz", + "integrity": "sha512-RBbyQRpohlIQiuZc5qAvwbXO0Bob9XhHFS/kuLh+DcyeaBp+m+Bt291FX1Ksz2A0Q3ETNM34LFt7kTOBtMvjIQ==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/signature-v4": "3.78.0", + "@aws-sdk/types": "3.78.0", + "@aws-sdk/util-arn-parser": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/smithy-client": { + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.99.0.tgz", + "integrity": "sha512-N9xgCcwbOBZ4/WuROzlErExXV6+vFrFkNJzeBT31/avvrHXjxgxwQlMoXoQCfM8PyRuDuVSfZeoh1iIRfoxidA==", + "requires": { + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/types": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz", + "integrity": "sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==" + }, + "@aws-sdk/url-parser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.78.0.tgz", + "integrity": "sha512-iQn2AjECUoJE0Ae9XtgHtGGKvUkvE8hhbktGopdj+zsPBe4WrBN2DgVxlKPPrBonG/YlcL1D7a5EXaujWSlUUw==", + "requires": { + "@aws-sdk/querystring-parser": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-arn-parser": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.55.0.tgz", + "integrity": "sha512-76KJxp4MRWufHYWys7DFl64znr5yeJ3AIQNAPCKKw1sP0hzO7p6Kx0PaJnw9x+CPSzOrT4NbuApL6/srYhKDGg==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-base64-browser": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz", + "integrity": "sha512-0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-base64-node": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", + "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", + "requires": { + "@aws-sdk/util-buffer-from": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-body-length-browser": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", + "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-body-length-node": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", + "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-buffer-from": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", + "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", + "requires": { + "@aws-sdk/is-array-buffer": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-config-provider": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", + "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-create-request": { + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.99.0.tgz", + "integrity": "sha512-7+jM8xe2u5FW7ufRqHTmvJa7nH9f8uZXuWpHcmITKm8IRnkst1ib1DUctEZE+go9lnonzy4TttSNMt5NqFCgOA==", + "requires": { + "@aws-sdk/middleware-stack": "3.78.0", + "@aws-sdk/smithy-client": "3.99.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-defaults-mode-browser": { + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.99.0.tgz", + "integrity": "sha512-qSYjUGuN8n7Q/zAi0tzU4BrU389jQosXtjp7eHpLATl0pKGpaHx6rJNwbiNhvBhBEfmSgqsJ09b4gZUpUezHEw==", + "requires": { + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-defaults-mode-node": { + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.99.0.tgz", + "integrity": "sha512-8TUO0kEnQcgT1gAW9y9oO6a5gKhfEGEUeKidEgbTczEUrjr3aCXIC+p0DI5FJfImwPrTKXra8A22utDM92phWw==", + "requires": { + "@aws-sdk/config-resolver": "3.80.0", + "@aws-sdk/credential-provider-imds": "3.81.0", + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/property-provider": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-format-url": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.78.0.tgz", + "integrity": "sha512-wdjt8ZAMyBrH/02QrQtB+S9cwtsBJ6bXRJ3XwL6z7L75nwTflKkzOQUS5Ie7HBf3j3JH0KhlqlEbf2nnM9jsPQ==", + "requires": { + "@aws-sdk/querystring-builder": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-hex-encoding": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz", + "integrity": "sha512-Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-locate-window": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz", + "integrity": "sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-middleware": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.78.0.tgz", + "integrity": "sha512-Hi3wv2b0VogO4mzyeEaeU5KgIt4qeo0LXU5gS6oRrG0T7s2FyKbMBkJW3YDh/Y8fNwqArZ+/QQFujpP0PIKwkA==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-stream-browser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.78.0.tgz", + "integrity": "sha512-EcThf/sJoD4NYTUNO/nehR57lqkOuL6btRoVnm4LGUR8XgQcJ/WMYYgxOMY8E81xXzRFX2ukRHRxL2xmQsbHDw==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-stream-node": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.78.0.tgz", + "integrity": "sha512-CHfX37ioUyamAnlS2p4Nq+4BBjCSlZolFkVyxtVJwzPBBksdvjW67nKG+SShR48RBPJ5LEzbgAaEXNRktCSf6w==", + "requires": { + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-uri-escape": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", + "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-user-agent-browser": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.78.0.tgz", + "integrity": "sha512-diGO/Bf4ggBOEnfD7lrrXaaXOwOXGz0bAJ0HhpizwEMlBld5zfDlWXjNpslh+8+u3EHRjPJQ16KGT6mp/Dm+aw==", + "requires": { + "@aws-sdk/types": "3.78.0", + "bowser": "^2.11.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-user-agent-node": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.80.0.tgz", + "integrity": "sha512-QV26qIXws1m6sZXg65NS+XrQ5NhAzbDVQLtEVE4nC39UN8fuieP6Uet/gZm9mlLI9hllwvcV7EfgBM3GSC7pZg==", + "requires": { + "@aws-sdk/node-config-provider": "3.80.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-utf8-browser": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", + "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-utf8-node": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", + "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", + "requires": { + "@aws-sdk/util-buffer-from": "3.55.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/util-waiter": { + "version": "3.78.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.78.0.tgz", + "integrity": "sha512-8pWd0XiNOS8AkWQyac8VNEI+gz/cGWlC2TAE2CJp0rOK5XhvlcNBINai4D6TxQ+9foyJXLOI1b8nuXemekoG8A==", + "requires": { + "@aws-sdk/abort-controller": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/xml-builder": { + "version": "3.55.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.55.0.tgz", + "integrity": "sha512-BH+i5S2FLprmfSeIuGy3UbNtEoJPVjh8arl5+LV3i2KY/+TmrS4yT8JtztDlDxHF0cMtNLZNO0KEPtsACS6SOg==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@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 + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.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" + }, + "dependencies": { + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + } + } + }, + "@faker-js/faker": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-6.3.1.tgz", + "integrity": "sha512-8YXBE2ZcU/pImVOHX7MWrSR/X5up7t6rPWZlk34RwZEcdr3ua6X+32pSd6XuOQRN+vbuvYNfA6iey8NbrjuMFQ==" + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@ioredis/commands": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.1.1.tgz", + "integrity": "sha512-fsR4P/ROllzf/7lXYyElUJCheWdTJVJvOTps8v9IWKFATxR61ANOlnoPqhH099xYLrJGpc2ZQ28B3rMeUt5VQg==" + }, + "@kdf/salt": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@kdf/salt/-/salt-2.0.1.tgz", + "integrity": "sha512-1RBY7HcGYuWBm0+4ygjdRerN+mhpuT5picGB6+azqUXsz/IZljegrKkeHRiV6wuxY8n4HrxOuw8ou7JuGxRWdQ==" + }, + "@mapbox/node-pre-gyp": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz", + "integrity": "sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==", + "requires": { + "detect-libc": "^1.0.3", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.5", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "dependencies": { + "@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==", + "dev": true + } + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@phc/format": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", + "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==" + }, + "@poppinss/chokidar-ts": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@poppinss/chokidar-ts/-/chokidar-ts-3.3.5.tgz", + "integrity": "sha512-Ht//xB2ZPa16EDH/bmaWEBWunsBTnBYdnv3nKwXHrqNHDfcYX1DHcJmcNORRH9YLOOuVsTmqDcpiAdTn06LaHQ==", + "dev": true, + "requires": { + "builtin-modules": "^3.2.0", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "emittery": "^0.10.2", + "fs-extra": "^10.0.1", + "mem": "^8.1.1", + "picomatch": "^2.3.1" + }, + "dependencies": { + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true + } + } + }, + "@poppinss/cliui": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/cliui/-/cliui-3.0.2.tgz", + "integrity": "sha512-nrAosoQy0ex3wSw3VuigLs3XCsxDsnNvx4ZL4ZvdZlygrChMUKPKnlxctQk13IyUHaH4F/wvaHnfWg/inhA36w==", + "requires": { + "@poppinss/colors": "^3.0.2", + "cli-boxes": "^3.0.0", + "cli-table3": "^0.6.1", + "color-support": "^1.1.3", + "log-update": "^4.0.0", + "pretty-hrtime": "^1.0.3", + "string-width": "^4.2.2" + } + }, + "@poppinss/co-body": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@poppinss/co-body/-/co-body-1.1.3.tgz", + "integrity": "sha512-Qhm2sGNTSRpKAlqt+ofZwWMzMI8QJXd36DN6F1Ska2B0Lt1Ev3qi+kNHym1GcIJ2NG/P/LS7i2fIbKZtGXnZ9w==", + "requires": { + "@poppinss/utils": "^3.1.3", + "inflation": "^2.0.0", + "qs": "^6.10.1", + "raw-body": "^2.4.1", + "type-is": "^1.6.18" + } + }, + "@poppinss/colors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-3.0.2.tgz", + "integrity": "sha512-kgIiDPKUV0IaNtzLKricxd3mMWepqCbgh2Mb0M8C5zyS1bJ0K86s6dMu9xEKtF2XksqyE0qV4ANtMnTCMjQgvA==", + "requires": { + "color-support": "^1.1.3", + "kleur": "^4.1.4" + } + }, + "@poppinss/file-generator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/file-generator/-/file-generator-1.0.2.tgz", + "integrity": "sha512-rRob//4jLbUVbDSsNRihloKGgpyVsWdFQWUmONxX/gyv4koT1OlVoc3ccWgk7Y/sEa2cFxj3zrFs+wdT09iXWw==", + "requires": { + "bytes": "^3.1.2" + } + }, + "@poppinss/hooks": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-5.0.3.tgz", + "integrity": "sha512-M5a151VUl+RslVP5qwDW+u+0VmzKt5Nfplzdx2nrtXol3yVlLN3u2Jp6UADESid3DDI7IRHmFrA3sQusey3eUA==", + "requires": {} + }, + "@poppinss/inspect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@poppinss/inspect/-/inspect-1.0.1.tgz", + "integrity": "sha512-kLeEaBSGhlleyYvKc7c9s3uE6xv7cwyulE0EgHf4jU/CL96h0yC4mkdw1wvC1l1PYYQozCGy46FwMBAAMOobCA==" + }, + "@poppinss/manager": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/manager/-/manager-5.0.2.tgz", + "integrity": "sha512-c5F3EKztq/iw0J+BfNu5rSI5/ji+kjts4rJaC/VvIzpTWzbRorb7UR9J32T8cLtTwjNHbmxk3BAU402lvL2JFA==" + }, + "@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==", + "requires": { + "@arr/every": "^1.0.0" + } + }, + "@poppinss/multiparty": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@poppinss/multiparty/-/multiparty-2.0.1.tgz", + "integrity": "sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==", + "requires": { + "http-errors": "^2.0.0", + "safe-buffer": "5.2.1", + "uid-safe": "2.1.5" + } + }, + "@poppinss/prompts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-2.0.2.tgz", + "integrity": "sha512-jTrE8U5rnHTZNpBvPauFVDMQZZuEnfABbJUEXfq0uu8oGJnPaaA+y0bQbyqVf4yWqgRGldgrzAwNz739hIEnPQ==", + "requires": { + "@poppinss/colors": "^3.0.2", + "enquirer": "^2.3.6" + } + }, + "@poppinss/utils": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-3.1.3.tgz", + "integrity": "sha512-A/FGhb+05UGf26rpicvyVCGabtC1Zw3LuugH9eHDYnWS4PLb8tDOdJF+yiOQ6QgGdMbYamzKUsPSgnOgSF4MGA==", + "requires": { + "@types/bytes": "^3.1.0", + "@types/he": "^1.1.1", + "buffer-alloc": "^1.2.0", + "bytes": "^3.1.0", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "fast-safe-stringify": "^2.0.7", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.5.3", + "truncatise": "0.0.8" + } + }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + }, + "@types/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-lOGyCnw+2JVPKU3wIV0srU0NyALwTBJlVSx5DfMQOFuuohA8y9S8orImpuIQikZ0uIQ8gehrRjxgQC1rLRi11w==" + }, + "@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/he": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/he/-/he-1.1.2.tgz", + "integrity": "sha512-kSJPcLO1x+oolc0R89pUl2kozldQ/fVQ1C1p5mp8fPoLdF/ZcBvckaTC2M8xXh3GYendXvCpy5m/a2eSbfgNgw==" + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "@types/ioredis": { + "version": "4.28.10", + "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.10.tgz", + "integrity": "sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "requires": { + "@types/node": "*" + } + }, + "@types/luxon": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-2.3.2.tgz", + "integrity": "sha512-WOehptuhKIXukSUUkRgGbj2c997Uv/iUgYgII8U7XLJqq9W2oF0kQ6frEznRQbdurioz+L/cdaIm4GutTQfgmA==" + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "@types/node": { + "version": "16.7.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", + "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==" + }, + "@types/pino": { + "version": "6.3.12", + "resolved": "https://registry.npmjs.org/@types/pino/-/pino-6.3.12.tgz", + "integrity": "sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw==", + "requires": { + "@types/node": "*", + "@types/pino-pretty": "*", + "@types/pino-std-serializers": "*", + "sonic-boom": "^2.1.0" + } + }, + "@types/pino-pretty": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-4.7.5.tgz", + "integrity": "sha512-rfHe6VIknk14DymxGqc9maGsRe8/HQSvM2u46EAz2XrS92qsAJnW16dpdFejBuZKD8cRJX6Aw6uVZqIQctMpAg==", + "requires": { + "@types/node": "*", + "@types/pino": "6.3" + } + }, + "@types/pino-std-serializers": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-2.4.1.tgz", + "integrity": "sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, + "@types/socket.io": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-3.0.2.tgz", + "integrity": "sha512-pu0sN9m5VjCxBZVK8hW37ZcMe8rjn4HHggBN5CbaRTvFwv5jOmuIRZEuddsBPa9Th0ts0SIo3Niukq+95cMBbQ==", + "requires": { + "socket.io": "*" + } + }, + "@types/validator": { + "version": "13.7.3", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.3.tgz", + "integrity": "sha512-DNviAE5OUcZ5s+XEQHRhERLg8fOp8gSgvyJ4aaFASx5wwaObm+PBwTIMXiOFm1QrSee5oYwEAYb7LMzX2O88gA==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.1.tgz", + "integrity": "sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/type-utils": "5.27.1", + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.1.tgz", + "integrity": "sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.1.tgz", + "integrity": "sha512-fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.1.tgz", + "integrity": "sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.27.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.1.tgz", + "integrity": "sha512-LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.1.tgz", + "integrity": "sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/visitor-keys": "5.27.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "@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==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.1.tgz", + "integrity": "sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.27.1", + "@typescript-eslint/types": "5.27.1", + "@typescript-eslint/typescript-estree": "5.27.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.1.tgz", + "integrity": "sha512-xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.27.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "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==" + }, + "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==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" + }, + "acorn-class-fields": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-1.0.0.tgz", + "integrity": "sha512-l+1FokF34AeCXGBHkrXFmml9nOIRI+2yBnBpO5MaVAaTIJ96irWLtcCxX+7hAp6USHFCe+iyyBB4ZhxV807wmA==", + "requires": { + "acorn-private-class-elements": "^1.0.0" + } + }, + "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, + "requires": {} + }, + "acorn-private-class-elements": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-1.0.0.tgz", + "integrity": "sha512-zYNcZtxKgVCg1brS39BEou86mIao1EV7eeREG+6WMwKbuYTeivRRs6S2XdWnboRde6G9wKh2w+WBydEyJsJ6mg==", + "requires": {} + }, + "acorn-private-methods": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/acorn-private-methods/-/acorn-private-methods-1.0.0.tgz", + "integrity": "sha512-Jou2L3nfwfPpFdmmHObI3yUpVPM1bPohTUAZCyVDw5Efyn9LSS6E36neRLCRfIr8QjskAfdxRdABOrvP4c/gwQ==", + "requires": { + "acorn-private-class-elements": "^1.0.0" + } + }, + "acorn-static-class-features": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/acorn-static-class-features/-/acorn-static-class-features-1.0.0.tgz", + "integrity": "sha512-XZJECjbmMOKvMHiNzbiPXuXpLAJfN3dAKtfIYbk1eHiWdsutlek+gS7ND4B8yJ3oqvHo1NxfafnezVmq7NXK0A==", + "requires": { + "acorn-private-class-elements": "^1.0.0" + } + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "adonis-preset-ts": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/adonis-preset-ts/-/adonis-preset-ts-2.1.0.tgz", + "integrity": "sha512-cQH/NP250gOF9k3TTDhVsTOPSAvyH4MhKVZ4ryYiihA+vnP27sut1gVIrRas3Evl5d2wEgWVGI5DgdP/ZFSk0w==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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==" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", + "dev": true + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "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 + }, + "args": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", + "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "dev": true, + "requires": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^1.9.0" + } + }, + "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, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "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, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "as-table": { + "version": "1.0.55", + "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", + "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", + "dev": true, + "requires": { + "printable-characters": "^1.0.42" + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + }, + "astring": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.3.tgz", + "integrity": "sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A==" + }, + "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 + }, + "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==" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, + "bcrypt": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", + "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^3.1.0" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-writer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", + "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" + }, + "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 + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", + "dev": true, + "requires": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "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==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "cloudinary": { + "version": "1.26.3", + "resolved": "https://registry.npmjs.org/cloudinary/-/cloudinary-1.26.3.tgz", + "integrity": "sha512-80ItEXYLbhOGPM42ksOsqG6320jbsU6kqszjVjl5QwDwzbjouktRlw/NdGva1beSu8sp/0lj1mtSGPymGsNiQA==", + "requires": { + "cloudinary-core": "^2.10.2", + "core-js": "3.6.5", + "lodash": "^4.17.11", + "q": "^1.5.1" + } + }, + "cloudinary-core": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/cloudinary-core/-/cloudinary-core-2.11.4.tgz", + "integrity": "sha512-F1BZczD6f5mB73D0c8gl/iuacVQQO+UhckNZxeeS9ZIVeIHbsfqwWiAZMQmIvEb7Wti/9MLU0xVwaWOak2THHA==", + "requires": {} + }, + "cluster-key-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", + "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==" + }, + "co-compose": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/co-compose/-/co-compose-7.0.2.tgz", + "integrity": "sha512-F3qbdPIg5L+DP06y00vNYqqfx86+YetkQyN5g54pSeWgFlKHzqacNIkimzfc0hPezPaab1aVerdCQ3U8a3/TWw==" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + }, + "commander": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", + "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==" + }, + "comment-json": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-2.4.2.tgz", + "integrity": "sha512-T+iXox779qsqneMYx/x5BZyz4xjCeQRmuNVzz8tko7qZUs3MlzpA3RAs+O1XsgcKToNBMIvfVzafGOeiU7RggA==", + "dev": true, + "requires": { + "core-util-is": "^1.0.2", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "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==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cp-file": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", + "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + } + }, + "cpy": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", + "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "cp-file": "^7.0.0", + "globby": "^9.2.0", + "has-glob": "^1.0.0", + "junk": "^3.1.0", + "nested-error-stacks": "^2.1.0", + "p-all": "^2.1.0", + "p-filter": "^2.1.0", + "p-map": "^3.0.0" + }, + "dependencies": { + "cp-file": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", + "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + } + } + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cuid": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz", + "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==" + }, + "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==", + "dev": true + }, + "dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "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 + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" + }, + "duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "dev": true, + "requires": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, + "edge-error": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-2.0.8.tgz", + "integrity": "sha512-ORKH7rn/LEfgo0qrgoMMwFPfestNFvTO+dRLDmS+zgulhd9BVXfv/p+V6K3OyEeu2L0ysYp/71uHB31GIDe68A==" + }, + "edge-lexer": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/edge-lexer/-/edge-lexer-4.0.10.tgz", + "integrity": "sha512-6hvRE0TkYyqogEGTU6GpNW3vf6PDA0U+zLEXIV4ZhsCRy2YX+FuprzitYpe69ZHC+BZdiFpdCn2Zqf1HOebqEg==", + "requires": { + "edge-error": "^2.0.8" + } + }, + "edge-parser": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/edge-parser/-/edge-parser-8.0.14.tgz", + "integrity": "sha512-N7mFw0JcozaHfHt5CJL53T8ETdAVr6aDoFa7cwjTN5qvtsYT8WyeTVO9720Rs0W8FVjliK/VZAkZ6dpxehJqFA==", + "requires": { + "acorn": "^8.7.0", + "astring": "^1.8.1", + "edge-error": "^2.0.8", + "edge-lexer": "^4.0.10", + "js-stringify": "^1.0.2" + } + }, + "edge-supercharged": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/edge-supercharged/-/edge-supercharged-3.1.1.tgz", + "integrity": "sha512-Pxgst3UeR+0PWuTIG2QHuFgFe73TMoVMphRsa/bOmIvOkQ87cD7+VxiS9ph2KbA4djJ2ChbdgtbNiIvju5yXEw==", + "requires": { + "@poppinss/utils": "^3.1.3", + "slash": "^3.0.0" + } + }, + "edge.js": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/edge.js/-/edge.js-5.3.6.tgz", + "integrity": "sha512-cyaHhR+1iIoozpftTbqyMVW8cDcdEqm9e/2vKxp2XIH0JPMTCVRGBdAC6k2MzYizygbgjnZdKRoz+Ec9xFnU5Q==", + "requires": { + "@poppinss/inspect": "^1.0.1", + "@poppinss/utils": "^4.0.4", + "edge-error": "^2.0.8", + "edge-lexer": "^4.0.10", + "edge-parser": "^8.0.14", + "js-stringify": "^1.0.2", + "macroable": "^7.0.1", + "stringify-attributes": "^2.0.0" + }, + "dependencies": { + "@poppinss/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", + "requires": { + "@poppinss/file-generator": "^1.0.2", + "@types/bytes": "^3.1.1", + "@types/he": "^1.1.2", + "bytes": "^3.1.2", + "change-case": "^4.1.2", + "cuid": "^2.1.8", + "flattie": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "he": "^1.2.0", + "kind-of": "^6.0.3", + "lodash": "^4.17.21", + "ms": "^2.1.3", + "pluralize": "^8.0.0", + "require-all": "^3.0.0", + "resolve-from": "^5.0.0", + "slugify": "^1.6.5", + "truncatise": "0.0.8" + } + } + } + }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "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==" + }, + "emittery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.11.0.tgz", + "integrity": "sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==", + "dev": true + }, + "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==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "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==", + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + } + } + }, + "engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==" + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-module-lexer": { + "version": "0.3.26", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.26.tgz", + "integrity": "sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==" + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" + }, + "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==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "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 + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + } + } + }, + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-config-airbnb-typescript": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz", + "integrity": "sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==", + "dev": true, + "requires": { + "eslint-config-airbnb-base": "^15.0.0" + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" + }, + "espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "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, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-copy": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.3.tgz", + "integrity": "sha512-LDzYKNTHhD+XOp8wGMuCkY4eTxFZOOycmpwLBiuF3r3OjOmZnURRD8t2dUAbmKuXGbo/MGggwbSjcBdp8QT0+g==", + "dev": true + }, + "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==" + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "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 + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-redact": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.1.tgz", + "integrity": "sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A==" + }, + "fast-safe-stringify": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", + "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==" + }, + "fast-xml-parser": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", + "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==" + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-type": { + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", + "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", + "requires": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "flattie": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.0.tgz", + "integrity": "sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "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==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "dependencies": { + "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==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "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==" + }, + "get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "data-uri-to-buffer": "^2.0.0", + "source-map": "^0.6.1" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", + "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", + "dev": true, + "requires": { + "is-glob": "^3.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "haye": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/haye/-/haye-3.0.0.tgz", + "integrity": "sha512-yWxbPdeex78IR3x3X/DdqkZbVG4rP4UaRdUGmpClfnUh1C61mASt7Iav8vk2tXcTMSygBHDDfgoVqk68NJqzhQ==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "requires": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "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==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "ical-generator": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/ical-generator/-/ical-generator-3.4.3.tgz", + "integrity": "sha512-9NkhRZ1cnfgIeXfv9iPPXIqBLYlKBUq8iteSDQxf1qEzhrmWgwb4jitTDGKOLvCoHB/pPmmtBTVHQw1WgCK3dg==", + "requires": { + "uuid-random": "^1.3.2" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "igniculus": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/igniculus/-/igniculus-1.5.0.tgz", + "integrity": "sha1-9tXneE2+lItOaooipU02XekGI9A=" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "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 + }, + "inflation": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", + "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" + }, + "ioredis": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.0.6.tgz", + "integrity": "sha512-KUm7wPzIet9QrFMoMm09/4bkfVKBUD9KXwBitP3hrNkZ+A6NBndweXGwYIB/7szHcTZgfo7Kvx88SxljJV4D9A==", + "requires": { + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.0.1", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + } + }, + "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==" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "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==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true + }, + "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==" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true + }, + "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, + "requires": { + "argparse": "^2.0.1" + } + }, + "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==" + }, + "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 + }, + "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==" + }, + "knex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/knex/-/knex-2.1.0.tgz", + "integrity": "sha512-vVsnD6UJdSJy55TvCXfFF9syfwyXNxfE9mvr2hJL/4Obciy2EPGoqjDpgRSlMruHuPWDOeYAG25nyrGvU+jJog==", + "requires": { + "colorette": "2.0.16", + "commander": "^9.1.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.5.0", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + } + }, + "knex-dynamic-connection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/knex-dynamic-connection/-/knex-dynamic-connection-3.0.0.tgz", + "integrity": "sha512-LSUlabH/5QHTzMxd8d+bhbiBAivV7QdtE4zPI2CfKYbx+uV1gqaN5Ua5AZc/O7kGAQJ4q35/4gUheCoHGPUHzg==", + "requires": { + "debug": "^4.3.4", + "knex": "^2.0.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "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, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "listify": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/listify/-/listify-1.0.3.tgz", + "integrity": "sha512-083swF7iH7bx8666zdzBColpgEuy46HjN3r1isD4zV6Ix7FuHfb/2/WVnl4CH8hjuoWeFF7P5KkKNXUnJCFEJg==", + "dev": true + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + }, + "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 + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "luxon": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.4.0.tgz", + "integrity": "sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA==" + }, + "macroable": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/macroable/-/macroable-7.0.1.tgz", + "integrity": "sha512-8bbZLq2JoGI7FdvmDIxed41opR2cqgUUrRN4fVEsajARzfHkZDAzbCg0RW+jIY93YhWuBsMOeLcIyYz5WU4HNQ==" + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.16.tgz", + "integrity": "sha512-wahonIQ5Jnyatt2fn8KqF/nIqZM8mh3oRu2+l5EANGMhu6RFjiSG52QNE2eWzFMI94HqYSgN184NurgNG6CztA==", + "dev": true + }, + "marked-terminal": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", + "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", + "dev": true, + "requires": { + "ansi-escapes": "^5.0.0", + "cardinal": "^2.1.1", + "chalk": "^5.0.0", + "cli-table3": "^0.6.1", + "node-emoji": "^1.11.0", + "supports-hyperlinks": "^2.2.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "requires": { + "type-fest": "^1.0.2" + } + }, + "chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==" + }, + "mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true + } + } + }, + "memfs": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", + "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", + "requires": { + "fs-monkey": "1.0.3" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-kind": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime-kind/-/mime-kind-3.0.0.tgz", + "integrity": "sha512-sx9lClVP7GXY2mO3aVDWTQLhfvAdDvNhGi3o3g7+ae3aKaoybeGbEIlnreoRKjrbDpvlPltlkIryxOtatojeXQ==", + "requires": { + "file-type": "^12.1.0", + "mime-types": "^2.1.24" + }, + "dependencies": { + "file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==" + } + } + }, + "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==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true + }, + "mrm-core": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/mrm-core/-/mrm-core-7.0.0.tgz", + "integrity": "sha512-NB22azURu3CMDN/VWvC5QO5zAUECe0VIPr+QWft+dxeeSz/mbsNAXt4GxaepA1VUGrddPMUmQuWikFPoaPKMbw==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "comment-json": "^2.2.0", + "detect-indent": "^6.0.0", + "editorconfig": "^0.15.3", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "kleur": "^3.0.3", + "listify": "^1.0.0", + "lodash": "^4.17.15", + "minimist": "^1.2.0", + "prop-ini": "^0.0.2", + "rc": "^1.2.8", + "readme-badger": "^0.3.0", + "semver": "^6.3.0", + "smpltmpl": "^1.0.2", + "split-lines": "^2.0.0", + "strip-bom": "^4.0.0", + "validate-npm-package-name": "^3.0.0", + "webpack-merge": "^4.2.2", + "yaml": "^2.0.0-1" + }, + "dependencies": { + "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, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "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, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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, + "requires": { + "p-try": "^2.0.0" + } + }, + "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, + "requires": { + "p-limit": "^2.2.0" + } + }, + "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 + }, + "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 + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "multi-part": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/multi-part/-/multi-part-3.0.0.tgz", + "integrity": "sha512-pDbdYQ6DLDxAsD83w9R7r7rlW56cETL7hIB5bCWX7FJYw0K+kL5JwHr0I8tRk9lGeFcAzf+2OEzXWlG/4wCnFw==", + "requires": { + "mime-kind": "^3.0.0", + "multi-part-lite": "^1.0.0" + } + }, + "multi-part-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/multi-part-lite/-/multi-part-lite-1.0.0.tgz", + "integrity": "sha512-KxIRbBZZ45hoKX1ROD/19wJr0ql1bef1rE8Y1PCwD3PuNXV42pp7Wo8lEHYuAajoT4vfAFcd3rPjlkyEEyt1nw==" + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + }, + "node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-repl-await": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/node-repl-await/-/node-repl-await-0.1.2.tgz", + "integrity": "sha512-e03zlI31RjF6Ks9+/ju0gY55dZSm21XXMSzy85FGZtDxuAZCa/iQwzWoQjmZvaolQCrIjzs0e4shxZs1bxbpUg==", + "requires": { + "acorn": "^8.0.5", + "acorn-class-fields": "^1.0.0", + "acorn-private-methods": "^1.0.0", + "acorn-static-class-features": "^1.0.0", + "acorn-walk": "^8.0.2" + } + }, + "nodemailer": { + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.5.tgz", + "integrity": "sha512-6VtMpwhsrixq1HDYSBBHvW0GwiWawE75dS3oal48VqRhUvKJNnKnJo2RI/bCVQubj1vgrgscMNW4DHaD6xtMCg==" + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "on-exit-leak-free": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", + "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==", + "dev": true + }, + "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==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "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.3" + } + }, + "p-all": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", + "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", + "dev": true, + "requires": { + "p-map": "^2.0.0" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "dev": true + }, + "p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "requires": { + "p-map": "^2.0.0" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "packet-reader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", + "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-imports": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-0.0.5.tgz", + "integrity": "sha512-yA6mDNotJmyAXcEdi2AjiHfI8Llk+/uv/jgBgvzFVP8iGaHC5L3rR6VQk/1qEE3SvLUsDQ2GdQMfPTi0qrmt8Q==", + "requires": { + "es-module-lexer": "0.3.26", + "slashes": "2.0.2" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "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==" + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "peek-readable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" + }, + "pg": { + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", + "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", + "requires": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.5.1", + "pg-protocol": "^1.5.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + } + }, + "pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + }, + "pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" + }, + "pg-pool": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", + "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", + "requires": {} + }, + "pg-protocol": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", + "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" + }, + "pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "requires": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + } + }, + "pgpass": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", + "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", + "requires": { + "split2": "^3.1.1" + } + }, + "phc-bcrypt": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/phc-bcrypt/-/phc-bcrypt-1.0.7.tgz", + "integrity": "sha512-seNphgu9x8NgzpemlweNsxvcyH0bqJSjNEz1+d3mRCicZ6ucFzmASaNhUiGkpZ8KltTIWz4/ppB3UEhl8OctGA==", + "requires": { + "@kdf/salt": "^2.0.1", + "@phc/format": "^1.0.0", + "bcrypt": "^5.0.1", + "tsse": "^2.0.0" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pino": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", + "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", + "requires": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.8", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + }, + "dependencies": { + "sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "requires": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + } + } + }, + "pino-abstract-transport": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", + "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", + "dev": true, + "requires": { + "duplexify": "^4.1.2", + "split2": "^4.0.0" + }, + "dependencies": { + "split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "dev": true + } + } + }, + "pino-pretty": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-8.0.0.tgz", + "integrity": "sha512-6Zn+2HBc8ZXEJb1XYZfY0Kh0jVBeKxmu077BzE0wzJZzQwNffmdQbIH7bNe0WPLjLApnVTx8TvvR8UNUcgE4nA==", + "dev": true, + "requires": { + "args": "5.0.1", + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^2.1.1", + "fast-safe-stringify": "^2.0.7", + "joycon": "^3.1.1", + "on-exit-leak-free": "^0.2.0", + "pino-abstract-transport": "^0.5.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^2.2.0", + "strip-json-comments": "^3.1.1" + } + }, + "pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "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, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "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, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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, + "requires": { + "p-try": "^2.0.0" + } + }, + "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, + "requires": { + "p-limit": "^2.2.0" + } + }, + "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 + }, + "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 + } + } + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==" + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" + }, + "postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" + }, + "postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" + }, + "postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "requires": { + "xtend": "^4.0.0" + } + }, + "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 + }, + "prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true + }, + "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, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, + "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==", + "dev": true + }, + "process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + }, + "prop-ini": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/prop-ini/-/prop-ini-0.0.2.tgz", + "integrity": "sha512-qyU57WvAvZDbzmRy9xDbJGVwrGJhmA+rYnVjy4xtX4Ny9c7gzvpmf/j7A3oq9ChbPh15MZQKjPep2mNdnAhtig==", + "dev": true, + "requires": { + "extend": "^3.0.0" + } + }, + "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==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "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==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==" + }, + "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==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "requires": { + "readable-stream": "^3.6.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "readme-badger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/readme-badger/-/readme-badger-0.3.0.tgz", + "integrity": "sha512-+sMOLSs1imZUISZ2Rhz7qqVd77QtpcAPbGeIraFdgJmijb04YtdlPjGNBvDChTNtLbeQ6JNGQy3pOgslWfaP3g==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "requires": { + "resolve": "^1.20.0" + } + }, + "redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "dev": true, + "requires": { + "esprima": "~4.0.0" + } + }, + "redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=" + }, + "redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", + "requires": { + "redis-errors": "^1.0.0" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "require-all": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/require-all/-/require-all-3.0.0.tgz", + "integrity": "sha1-Rz1JcEvjEBFc4ST3c4Ox69hnExI=" + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rev-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rev-hash/-/rev-hash-3.0.0.tgz", + "integrity": "sha512-s+87HfEKAu95TaTxnbCobn0/BkbzR23LHSwVdYvr8mn5+PPjzy+hTWyh92b5oaLgig9TKPe5d6ZcubsVBtUrZg==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "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==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "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==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "secure-json-parse": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", + "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + } + } + }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "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==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slashes": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-2.0.2.tgz", + "integrity": "sha512-68p+QkFAQQRetIUzNXAdktNJr8AYLxJukjBegYQz8F7VATsBJG621UYtY/vS2j9jerxdJ1k6Tc25K4DXEw1d5w==" + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "slugify": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", + "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==" + }, + "smpltmpl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/smpltmpl/-/smpltmpl-1.0.2.tgz", + "integrity": "sha512-Hq23NNgeZigOzIiX1dkb6W3gFn2/XQj43KhPxu65IMieG/gIwf/lQb1IudjYv0c/5LwJeS/mPayYzyo+8WJMxQ==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0" + } + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + } + }, + "socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "sonic-boom": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "requires": { + "atomic-sleep": "^1.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "split-lines": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/split-lines/-/split-lines-2.1.0.tgz", + "integrity": "sha512-8dv+1zKgTpfTkOy8XZLFyWrfxO0NV/bj/3EaQ+hBrBxGv2DwiroljPjU8NlCr+59nLnsVm9WYT7lXKwe4TC6bw==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "requires": { + "readable-stream": "^3.0.0" + } + }, + "stacktracey": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", + "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", + "dev": true, + "requires": { + "as-table": "^1.0.36", + "get-source": "^2.0.12" + } + }, + "standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "stringify-attributes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stringify-attributes/-/stringify-attributes-2.0.0.tgz", + "integrity": "sha512-wrVfRV6sCCB6wr3gx8OgKsp/9dSWWbKr8ifLfOxEcd/BBoa8d5pAf4BZb/jQW1JZnoZImjvUdxdo3ikYHZmYiw==", + "requires": { + "escape-goat": "^2.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "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 + }, + "strtok3": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "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==" + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "tarn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==" + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==" + }, + "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==" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "token-types": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.0.tgz", + "integrity": "sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w==", + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "truncatise": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/truncatise/-/truncatise-0.0.8.tgz", + "integrity": "sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==" + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "tsse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tsse/-/tsse-2.0.0.tgz", + "integrity": "sha512-KiYDxhCTbCUQWXtCSF2OWafC71C/ZUZP6TyCh/w7nPjzY1ZLY70KtDSfmePs3H4vSdxQotqdJvAkGAofxsQ05w==", + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "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, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "dependencies": { + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + } + } + }, + "typescript": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", + "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", + "dev": true + }, + "uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "requires": { + "random-bytes": "~1.0.0" + } + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "uuid-random": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/uuid-random/-/uuid-random-1.3.2.tgz", + "integrity": "sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ==" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "requires": {} + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "dev": true + }, + "youch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/youch/-/youch-3.2.0.tgz", + "integrity": "sha512-H+hTPaqFc1EDXHmp8sqOQe7pOvP3GlYovV+Dkg8sQ2RUy95p9gJeH2gJ64V4LYxh8wI8+4KqJjhbLt4DeUgzgQ==", + "dev": true, + "requires": { + "cookie": "^0.5.0", + "mustache": "^4.2.0", + "stacktracey": "^2.1.8" + } + }, + "youch-terminal": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/youch-terminal/-/youch-terminal-2.1.4.tgz", + "integrity": "sha512-pxJ8JmnqWDg9Eayefy9WuiZFtFrT9+fBTZBWHCocuo0Iv0CW3daAkwCGxh7IDZtq6/OA/v+5MhH52cde0p0ZSA==", + "dev": true, + "requires": { + "kleur": "^4.1.4" + } + } + } +} diff --git a/build/package.json b/build/package.json new file mode 100644 index 0000000..565b343 --- /dev/null +++ b/build/package.json @@ -0,0 +1,58 @@ +{ + "name": "server", + "version": "1.4.2", + "private": true, + "scripts": { + "build": "node ace build --production", + "start": "node server.js", + "dev": "node ace serve --watch", + "format": "prettier --write \"**/*.{js,ts,tsx,css,json,md,yml,yaml}\"", + "db:migrate": "node ace migration:run", + "db:migrate:force": "node ace migration:run --force", + "db:rollback": "node ace migration:rollback", + "db:status": "node ace migration:status", + "db:seed": "node ace db:seed", + "db:seed:force": "node ace seed --force" + }, + "devDependencies": { + "@adonisjs/assembler": "^5.7.0", + "@typescript-eslint/eslint-plugin": "^5.27.0", + "@typescript-eslint/parser": "^5.27.0", + "adonis-preset-ts": "^2.1.0", + "eslint": "^8.17.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.0.0", + "pino-pretty": "^8.0.0", + "prettier": "^2.6.2", + "typescript": "^4.7.3", + "youch": "^3.2.0", + "youch-terminal": "^2.1.4" + }, + "dependencies": { + "@adonisjs/application": "^5.2.5", + "@adonisjs/attachment-lite": "^1.0.7", + "@adonisjs/auth": "^8.2.1", + "@adonisjs/bouncer": "^2.3.0", + "@adonisjs/core": "^5.8.3", + "@adonisjs/drive": "^2.2.0", + "@adonisjs/drive-s3": "^1.3.1", + "@adonisjs/lucid": "^18.0.1", + "@adonisjs/mail": "^8.1.2", + "@adonisjs/redis": "^7.3.0", + "@adonisjs/repl": "^3.1.11", + "@adonisjs/view": "^6.1.5", + "@types/socket.io": "^3.0.2", + "cloudinary": "^1.26.3", + "luxon": "^2.4.0", + "nanoid": "^3.3.4", + "pg": "^8.7.3", + "phc-bcrypt": "^1.0.7", + "proxy-addr": "^2.0.7", + "reflect-metadata": "^0.1.13", + "socket.io": "^4.5.1", + "source-map-support": "^0.5.21" + } +} diff --git a/build/providers/AppProvider.js b/build/providers/AppProvider.js new file mode 100644 index 0000000..293d4c3 --- /dev/null +++ b/build/providers/AppProvider.js @@ -0,0 +1,45 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +class AppProvider { + constructor(app) { + Object.defineProperty(this, "app", { + enumerable: true, + configurable: true, + writable: true, + value: app + }); + } + register() { } + async boot() { } + async ready() { + if (this.app.environment === 'web') { + await Promise.resolve().then(() => __importStar(require('../start/socket'))); + } + } + async shutdown() { } +} +exports.default = AppProvider; +//# sourceMappingURL=AppProvider.js.map \ No newline at end of file diff --git a/build/providers/AppProvider.js.map b/build/providers/AppProvider.js.map new file mode 100644 index 0000000..b1e71a4 --- /dev/null +++ b/build/providers/AppProvider.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AppProvider.js","sourceRoot":"","sources":["../../providers/AppProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAqB,WAAW;IAC9B,YAAsB,GAAwB;;;;;mBAAxB;;IAA2B,CAAC;IAE3C,QAAQ,KAAI,CAAC;IAEb,KAAK,CAAC,IAAI,KAAI,CAAC;IAEf,KAAK,CAAC,KAAK;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,KAAK,EAAE;YAClC,wDAAa,iBAAiB,GAAC,CAAC;SACjC;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,KAAI,CAAC;CAC3B;AAdD,8BAcC"} \ No newline at end of file diff --git a/build/resources/views/emails/change_email_confirm.edge b/build/resources/views/emails/change_email_confirm.edge new file mode 100644 index 0000000..b01f225 --- /dev/null +++ b/build/resources/views/emails/change_email_confirm.edge @@ -0,0 +1,4 @@ +
+ Code: {{ confirmationCode }} +
\ No newline at end of file diff --git a/build/server.js b/build/server.js new file mode 100644 index 0000000..a3ce491 --- /dev/null +++ b/build/server.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +require("reflect-metadata"); +const source_map_support_1 = __importDefault(require("source-map-support")); +const standalone_1 = require("@adonisjs/core/build/standalone"); +source_map_support_1.default.install({ handleUncaughtExceptions: false }); +const server = new standalone_1.Ignitor(__dirname).httpServer(); +server.start().catch(error => { + throw new Error(error); +}); +//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/build/server.js.map b/build/server.js.map new file mode 100644 index 0000000..83c5ffc --- /dev/null +++ b/build/server.js.map @@ -0,0 +1 @@ +{"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":";;;;;AAYA,4BAA0B;AAC1B,4EAAkD;AAClD,gEAA0D;AAE1D,4BAAgB,CAAC,OAAO,CAAC,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,CAAC;AAE9D,MAAM,MAAM,GAAG,IAAI,oBAAO,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;AAEnD,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IAC3B,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/bouncer.js b/build/start/bouncer.js new file mode 100644 index 0000000..3d8dbd4 --- /dev/null +++ b/build/start/bouncer.js @@ -0,0 +1,36 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.policies = exports.actions = void 0; +const Bouncer_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Addons/Bouncer")); +exports.actions = Bouncer_1.default.actions; +exports.policies = Bouncer_1.default.registerPolicies({ + LessonPolicy: () => Promise.resolve().then(() => __importStar(global[Symbol.for('ioc.use')]('App/Policies/LessonPolicy'))), + RolePolicy: () => Promise.resolve().then(() => __importStar(global[Symbol.for('ioc.use')]('App/Policies/RolePolicy'))), +}).policies; +//# sourceMappingURL=bouncer.js.map \ No newline at end of file diff --git a/build/start/bouncer.js.map b/build/start/bouncer.js.map new file mode 100644 index 0000000..e4850ea --- /dev/null +++ b/build/start/bouncer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bouncer.js","sourceRoot":"","sources":["../../start/bouncer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,0FAAiD;AAwBlC,eAAO,GAAK,iBAAO,SAAC;AAyBpB,gBAAQ,GAAK,iBAAO,CAAC,gBAAgB,CAAC;IACnD,YAAY,EAAE,GAAG,EAAE,yEAAQ,2BAA2B,GAAC;IACvD,UAAU,EAAE,GAAG,EAAE,yEAAQ,yBAAyB,GAAC;CACpD,CAAC,UAAC"} \ No newline at end of file diff --git a/build/start/event.js b/build/start/event.js new file mode 100644 index 0000000..9276125 --- /dev/null +++ b/build/start/event.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Event_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Event")); +const Database_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Database")); +const Application_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Application")); +Event_1.default.on('db:query', query => { + if (Application_1.default.inDev) { + Database_1.default.prettyPrint(query); + } +}); +//# sourceMappingURL=event.js.map \ No newline at end of file diff --git a/build/start/event.js.map b/build/start/event.js.map new file mode 100644 index 0000000..6cc51fb --- /dev/null +++ b/build/start/event.js.map @@ -0,0 +1 @@ +{"version":3,"file":"event.js","sourceRoot":"","sources":["../../start/event.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAC3C,2FAAkD;AAClD,gGAAuD;AAKvD,eAAK,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;IAC3B,IAAI,qBAAW,CAAC,KAAK,EAAE;QACrB,kBAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAC7B;AACH,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/kernel.js b/build/start/kernel.js new file mode 100644 index 0000000..de14327 --- /dev/null +++ b/build/start/kernel.js @@ -0,0 +1,35 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Server_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Server")); +Server_1.default.middleware.register([() => Promise.resolve().then(() => __importStar(global[Symbol.for('ioc.use')]("Adonis/Core/BodyParser")))]); +Server_1.default.middleware.registerNamed({ + auth: () => Promise.resolve().then(() => __importStar(global[Symbol.for('ioc.use')]('App/Middleware/Auth'))), + role: () => Promise.resolve().then(() => __importStar(global[Symbol.for('ioc.use')]('App/Middleware/Role'))), +}); +//# sourceMappingURL=kernel.js.map \ No newline at end of file diff --git a/build/start/kernel.js.map b/build/start/kernel.js.map new file mode 100644 index 0000000..3d392d6 --- /dev/null +++ b/build/start/kernel.js.map @@ -0,0 +1 @@ +{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../start/kernel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,sFAA6C;AAW7C,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,oGAAsC,CAAC,CAAC,CAAC;AAkB1E,gBAAM,CAAC,UAAU,CAAC,aAAa,CAAC;IAC9B,IAAI,EAAE,GAAG,EAAE,yEAAQ,qBAAqB,GAAC;IACzC,IAAI,EAAE,GAAG,EAAE,yEAAQ,qBAAqB,GAAC;CAC1C,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes.js b/build/start/routes.js new file mode 100644 index 0000000..d404598 --- /dev/null +++ b/build/start/routes.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("./routes/index"); +require("./routes/apis/v1/auth"); +require("./routes/apis/v1/categories"); +require("./routes/apis/v1/chat"); +require("./routes/apis/v1/courses"); +require("./routes/apis/v1/health"); +require("./routes/apis/v1/lessons"); +require("./routes/apis/v1/me"); +require("./routes/apis/v1/stat"); +require("./routes/apis/v1/users"); +require("./routes/videos"); +//# sourceMappingURL=routes.js.map \ No newline at end of file diff --git a/build/start/routes.js.map b/build/start/routes.js.map new file mode 100644 index 0000000..146f461 --- /dev/null +++ b/build/start/routes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../start/routes.ts"],"names":[],"mappings":";;AAAA,0BAAwB;AAKxB,iCAA+B;AAC/B,uCAAqC;AACrC,iCAA+B;AAC/B,oCAAkC;AAClC,mCAAiC;AACjC,oCAAkC;AAClC,+BAA6B;AAC7B,iCAA+B;AAC/B,kCAAgC;AAKhC,2BAAyB"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/auth.js b/build/start/routes/apis/v1/auth.js new file mode 100644 index 0000000..aef930e --- /dev/null +++ b/build/start/routes/apis/v1/auth.js @@ -0,0 +1,11 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.post('login', 'Api/v1/AuthController.login').as('auth.login'); + Route_1.default.post('logout', 'Api/v1/AuthController.logout').middleware('auth').as('auth.logout'); +}).prefix('v1/auth'); +//# sourceMappingURL=auth.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/auth.js.map b/build/start/routes/apis/v1/auth.js.map new file mode 100644 index 0000000..b202a2e --- /dev/null +++ b/build/start/routes/apis/v1/auth.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/auth.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IACpE,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,8BAA8B,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAC5F,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/categories.js b/build/start/routes/apis/v1/categories.js new file mode 100644 index 0000000..d706d16 --- /dev/null +++ b/build/start/routes/apis/v1/categories.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.get('/', 'Api/v1/CategoriesController.list').middleware('role:admin,teacher,student').as('categories.list'); + Route_1.default.get('/:id', 'Api/v1/CategoriesController.show').middleware('role:admin,teacher,student').as('categories.show'); + Route_1.default.post('/', 'Api/v1/CategoriesController.create').middleware('role:admin,teacher').as('categories.create'); + Route_1.default.delete('/:id', 'Api/v1/CategoriesController.delete').middleware('role:admin,teacher').as('categories.delete'); + Route_1.default.patch('/:id', 'Api/v1/CategoriesController.update').middleware('role:admin,teacher').as('categories.update'); +}) + .prefix('v1/categories') + .middleware('auth'); +//# sourceMappingURL=categories.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/categories.js.map b/build/start/routes/apis/v1/categories.js.map new file mode 100644 index 0000000..0e31dc1 --- /dev/null +++ b/build/start/routes/apis/v1/categories.js.map @@ -0,0 +1 @@ +{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/categories.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAClH,eAAK,CAAC,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACrH,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC/G,eAAK,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IACpH,eAAK,CAAC,KAAK,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACrH,CAAC,CAAC;KACC,MAAM,CAAC,eAAe,CAAC;KACvB,UAAU,CAAC,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/chat.js b/build/start/routes/apis/v1/chat.js new file mode 100644 index 0000000..b46c95a --- /dev/null +++ b/build/start/routes/apis/v1/chat.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.get('/conversations', 'Api/v1/ChatController.getConversations') + .middleware('role:admin,teacher,student') + .as('chat.get-conversations'); +}) + .prefix('v1/chat') + .middleware('auth'); +//# sourceMappingURL=chat.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/chat.js.map b/build/start/routes/apis/v1/chat.js.map new file mode 100644 index 0000000..6ee1d74 --- /dev/null +++ b/build/start/routes/apis/v1/chat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/chat.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SAClE,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,wBAAwB,CAAC,CAAC;AAClC,CAAC,CAAC;KACC,MAAM,CAAC,SAAS,CAAC;KACjB,UAAU,CAAC,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/courses.js b/build/start/routes/apis/v1/courses.js new file mode 100644 index 0000000..adadd6e --- /dev/null +++ b/build/start/routes/apis/v1/courses.js @@ -0,0 +1,58 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.get('/', 'Api/v1/CoursesController.list').middleware('role:admin,teacher,student').as('courses.list'); + Route_1.default.post('/', 'Api/v1/CoursesController.create').middleware('role:admin,teacher').as('courses.create'); + Route_1.default.get('/:id', 'Api/v1/CoursesController.show').middleware('role:admin,teacher,student').as('courses.show'); + Route_1.default.delete('/:id', 'Api/v1/CoursesController.delete').middleware('role:admin,teacher').as('courses.delete'); + Route_1.default.patch('/:id', 'Api/v1/CoursesController.update').middleware('role:admin,teacher').as('courses.update'); + Route_1.default.get('/:id/teacher', 'Api/v1/CoursesController.showTeacher') + .middleware('role:admin,teacher,student') + .as('courses.show-teacher'); + Route_1.default.get('/:id/category', 'Api/v1/CoursesController.showCategory') + .middleware('role:admin,teacher,student') + .as('courses.show-category'); + Route_1.default.get('/:id/lessons', 'Api/v1/CoursesController.showLessons') + .middleware('role:admin,teacher,student') + .as('courses.show-lessons'); + Route_1.default.get('/:id/students', 'Api/v1/CoursesController.showStudents') + .middleware('role:admin,teacher,student') + .as('courses.show-students'); + Route_1.default.get('/:id/students/count', 'Api/v1/CoursesController.studentsCount') + .middleware('role:admin,teacher,student') + .as('courses.students-count'); + Route_1.default.post('/:id/attach-student', 'Api/v1/CoursesController.attachStudent') + .middleware('role:admin,teacher') + .as('courses.attach-student'); + Route_1.default.post('/:id/attach-student-list', 'Api/v1/CoursesController.attachStudentList') + .middleware('role:admin,teacher') + .as('courses.attach-student-list'); + Route_1.default.patch('/:id/detach-student-list', 'Api/v1/CoursesController.detachStudentList') + .middleware('role:admin,teacher') + .as('courses.detach-student-list'); + Route_1.default.delete('/:id/detach-student', 'Api/v1/CoursesController.detachStudent') + .middleware('role:admin,teacher') + .as('courses.detach-student'); + Route_1.default.get('/:id/likes', 'Api/v1/CoursesController.showLikes') + .middleware('role:admin,teacher,student') + .as('courses.show-likes'); + Route_1.default.put('/:id/likes', 'Api/v1/CoursesController.setLike') + .middleware('role:admin,teacher,student') + .as('courses.set-like'); + Route_1.default.delete('/:id/likes', 'Api/v1/CoursesController.unsetLike') + .middleware('role:admin,teacher,student') + .as('courses.unset-like'); + Route_1.default.post('/:id/set-status', 'Api/v1/CoursesController.setStatus') + .middleware('role:admin,teacher') + .as('courses.set-status'); + Route_1.default.get('/:id/lessons-progress', 'Api/v1/CoursesController.getLessonsProgress') + .middleware('role:admin,teacher,student') + .as('courses.get-lessons-progress'); +}) + .prefix('v1/courses') + .middleware('auth'); +//# sourceMappingURL=courses.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/courses.js.map b/build/start/routes/apis/v1/courses.js.map new file mode 100644 index 0000000..eb4e749 --- /dev/null +++ b/build/start/routes/apis/v1/courses.js.map @@ -0,0 +1 @@ +{"version":3,"file":"courses.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/courses.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/health.js b/build/start/routes/apis/v1/health.js new file mode 100644 index 0000000..1806c7c --- /dev/null +++ b/build/start/routes/apis/v1/health.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +const HealthCheck_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/HealthCheck")); +Route_1.default.group(() => { + Route_1.default.get('/', async (ctx) => { + const report = await HealthCheck_1.default.getReport(); + return report.healthy ? ctx.response.ok(report) : ctx.response.badRequest(report); + }).as('health'); +}) + .prefix('v1/health') + .middleware('auth'); +//# sourceMappingURL=health.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/health.js.map b/build/start/routes/apis/v1/health.js.map new file mode 100644 index 0000000..303a626 --- /dev/null +++ b/build/start/routes/apis/v1/health.js.map @@ -0,0 +1 @@ +{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/health.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,gGAAuD;AAEvD,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAwB,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,MAAM,qBAAW,CAAC,SAAS,EAAE,CAAC;QAE7C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAClB,CAAC,CAAC;KACC,MAAM,CAAC,WAAW,CAAC;KACnB,UAAU,CAAC,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/images.js b/build/start/routes/apis/v1/images.js new file mode 100644 index 0000000..982429a --- /dev/null +++ b/build/start/routes/apis/v1/images.js @@ -0,0 +1,15 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.post('/', 'Api/v1/ImagesController.create').as('images.create'); + Route_1.default.delete('/:id', 'Api/v1/ImagesController.delete').as('images.delete'); + Route_1.default.get('/', 'Api/v1/ImagesController.list').as('images.list'); + Route_1.default.get('/:id', 'Api/v1/ImagesController.show').as('images.show'); +}) + .prefix('v1/images') + .middleware('auth'); +//# sourceMappingURL=images.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/images.js.map b/build/start/routes/apis/v1/images.js.map new file mode 100644 index 0000000..1c1dfa7 --- /dev/null +++ b/build/start/routes/apis/v1/images.js.map @@ -0,0 +1 @@ +{"version":3,"file":"images.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/images.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IACtE,eAAK,CAAC,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAC3E,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IACjE,eAAK,CAAC,GAAG,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AACtE,CAAC,CAAC;KACC,MAAM,CAAC,WAAW,CAAC;KACnB,UAAU,CAAC,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/lessons.js b/build/start/routes/apis/v1/lessons.js new file mode 100644 index 0000000..c9af4f1 --- /dev/null +++ b/build/start/routes/apis/v1/lessons.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.get('/', 'Api/v1/LessonsController.list').middleware('role:admin,teacher,student').as('lessons.list'); + Route_1.default.post('/', 'Api/v1/LessonsController.create').middleware('role:admin,teacher').as('lessons.create'); + Route_1.default.post('/save-order', 'Api/v1/LessonsController.saveOrder') + .middleware('role:admin,teacher') + .as('lessons.update-order'); + Route_1.default.get('/:id', 'Api/v1/LessonsController.show').middleware('role:admin,teacher,student').as('lessons.show'); + Route_1.default.delete('/:id', 'Api/v1/LessonsController.delete').middleware('role:admin,teacher').as('lessons.delete'); + Route_1.default.patch('/:id', 'Api/v1/LessonsController.update').middleware('role:admin,teacher').as('lessons.update'); + Route_1.default.get('/:id/content', 'Api/v1/LessonsController.getContent') + .middleware('role:admin,teacher,student') + .as('lessons.get-content'); + Route_1.default.get('/materials/:fileName', 'Api/v1/LessonsController.getMaterial') + .middleware('role:admin,teacher,student') + .as('lessons.get-material'); + Route_1.default.get('/:id/progress', 'Api/v1/LessonsController.getVideoProgress') + .middleware('role:admin,teacher,student') + .as('lessons.get-video-progress'); +}) + .prefix('v1/lessons') + .middleware('auth'); +//# sourceMappingURL=lessons.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/lessons.js.map b/build/start/routes/apis/v1/lessons.js.map new file mode 100644 index 0000000..a30deae --- /dev/null +++ b/build/start/routes/apis/v1/lessons.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lessons.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/lessons.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAC5G,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACzG,eAAK,CAAC,IAAI,CAAC,aAAa,EAAE,oCAAoC,CAAC;SAC5D,UAAU,CAAC,oBAAoB,CAAC;SAChC,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAC9B,eAAK,CAAC,GAAG,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAC/G,eAAK,CAAC,MAAM,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC9G,eAAK,CAAC,KAAK,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC7G,eAAK,CAAC,GAAG,CAAC,cAAc,EAAE,qCAAqC,CAAC;SAC7D,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,qBAAqB,CAAC,CAAC;IAC7B,eAAK,CAAC,GAAG,CAAC,sBAAsB,EAAE,sCAAsC,CAAC;SACtE,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAC9B,eAAK,CAAC,GAAG,CAAC,eAAe,EAAE,2CAA2C,CAAC;SACpE,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,4BAA4B,CAAC,CAAC;AACtC,CAAC,CAAC;KACC,MAAM,CAAC,YAAY,CAAC;KACpB,UAAU,CAAC,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/me.js b/build/start/routes/apis/v1/me.js new file mode 100644 index 0000000..fdc4c89 --- /dev/null +++ b/build/start/routes/apis/v1/me.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.get('/', 'Api/v1/MeController.show').middleware('role:admin,teacher,student').as('me.show'); + Route_1.default.get('/messages/:chat_id', 'Api/v1/MeController.chatHistory') + .middleware('role:admin,teacher,student') + .as('me.chat-history'); + Route_1.default.patch('/info', 'Api/v1/MeController.updateInfo').middleware('role:admin,teacher,student').as('me.update-info'); + Route_1.default.patch('/email', 'Api/v1/MeController.changeEmail') + .middleware('role:admin,teacher,student') + .as('me.change-email'); + Route_1.default.post('/email/change/confirm', 'Api/v1/MeController.changeEmailConfirm') + .middleware('role:admin,teacher,student') + .as('me.change-email-confirm'); + Route_1.default.patch('/password', 'Api/v1/MeController.changePassword') + .middleware('role:admin,teacher,student') + .as('me.change-password'); + Route_1.default.patch('/contacts', 'Api/v1/MeController.updateContacts') + .middleware('role:admin,teacher,student') + .as('me.update-contacts'); +}) + .prefix('v1/me') + .middleware('auth'); +//# sourceMappingURL=me.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/me.js.map b/build/start/routes/apis/v1/me.js.map new file mode 100644 index 0000000..9777a85 --- /dev/null +++ b/build/start/routes/apis/v1/me.js.map @@ -0,0 +1 @@ +{"version":3,"file":"me.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/me.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAClG,eAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,iCAAiC,CAAC;SAC/D,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACzB,eAAK,CAAC,KAAK,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACrH,eAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,iCAAiC,CAAC;SACrD,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACzB,eAAK,CAAC,IAAI,CAAC,uBAAuB,EAAE,wCAAwC,CAAC;SAC1E,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,yBAAyB,CAAC,CAAC;IACjC,eAAK,CAAC,KAAK,CAAC,WAAW,EAAE,oCAAoC,CAAC;SAC3D,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,oBAAoB,CAAC,CAAC;IAC5B,eAAK,CAAC,KAAK,CAAC,WAAW,EAAE,oCAAoC,CAAC;SAC3D,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,oBAAoB,CAAC,CAAC;AAC9B,CAAC,CAAC;KACC,MAAM,CAAC,OAAO,CAAC;KACf,UAAU,CAAC,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/stat.js b/build/start/routes/apis/v1/stat.js new file mode 100644 index 0000000..c50d952 --- /dev/null +++ b/build/start/routes/apis/v1/stat.js @@ -0,0 +1,12 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.get('/', 'Api/v1/StatController.index').middleware('role:admin,teacher,student').as('stat.index'); +}) + .prefix('v1/stat') + .middleware('auth'); +//# sourceMappingURL=stat.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/stat.js.map b/build/start/routes/apis/v1/stat.js.map new file mode 100644 index 0000000..04a2022 --- /dev/null +++ b/build/start/routes/apis/v1/stat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"stat.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/stat.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAC1G,CAAC,CAAC;KACC,MAAM,CAAC,SAAS,CAAC;KACjB,UAAU,CAAC,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/apis/v1/users.js b/build/start/routes/apis/v1/users.js new file mode 100644 index 0000000..b7f3606 --- /dev/null +++ b/build/start/routes/apis/v1/users.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.get('/', 'Api/v1/UsersController.list').middleware('role:admin,teacher,student').as('users.list'); + Route_1.default.post('/', 'Api/v1/UsersController.create').middleware('role:admin,teacher').as('users.create'); + Route_1.default.get('/:id', 'Api/v1/UsersController.show').middleware('role:admin,teacher,student').as('users.show'); + Route_1.default.patch('/:id', 'Api/v1/UsersController.update').middleware('role:admin,teacher').as('users.update'); + Route_1.default.delete('/:id', 'Api/v1/UsersController.delete').middleware('role:admin,teacher').as('users.delete'); + Route_1.default.post('/:id/attach-roles', 'Api/v1/UsersController.attachRoles') + .middleware('role:admin') + .as('users.attach-role'); + Route_1.default.delete('/:id/detach-roles', 'Api/v1/UsersController.detachRoles') + .middleware('role:admin') + .as('users.detach-role'); +}) + .prefix('v1/users') + .middleware('auth'); +//# sourceMappingURL=users.js.map \ No newline at end of file diff --git a/build/start/routes/apis/v1/users.js.map b/build/start/routes/apis/v1/users.js.map new file mode 100644 index 0000000..cb1ecb1 --- /dev/null +++ b/build/start/routes/apis/v1/users.js.map @@ -0,0 +1 @@ +{"version":3,"file":"users.js","sourceRoot":"","sources":["../../../../../start/routes/apis/v1/users.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IACxG,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IACrG,eAAK,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAC3G,eAAK,CAAC,KAAK,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IACzG,eAAK,CAAC,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAC1G,eAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;SAClE,UAAU,CAAC,YAAY,CAAC;SACxB,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC3B,eAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;SACpE,UAAU,CAAC,YAAY,CAAC;SACxB,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAC7B,CAAC,CAAC;KACC,MAAM,CAAC,UAAU,CAAC;KAClB,UAAU,CAAC,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/index.js b/build/start/routes/index.js new file mode 100644 index 0000000..bf5470e --- /dev/null +++ b/build/start/routes/index.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.get('/', () => 'Educt Backend API'); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/start/routes/index.js.map b/build/start/routes/index.js.map new file mode 100644 index 0000000..fd626d1 --- /dev/null +++ b/build/start/routes/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../start/routes/index.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/routes/videos.js b/build/start/routes/videos.js new file mode 100644 index 0000000..7210384 --- /dev/null +++ b/build/start/routes/videos.js @@ -0,0 +1,12 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const Route_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Route")); +Route_1.default.group(() => { + Route_1.default.get('/video/:fileName', 'VideosController.getVideo') + .middleware('role:admin,teacher,student') + .as('videos.get-video'); +}).middleware('auth'); +//# sourceMappingURL=videos.js.map \ No newline at end of file diff --git a/build/start/routes/videos.js.map b/build/start/routes/videos.js.map new file mode 100644 index 0000000..b29dee2 --- /dev/null +++ b/build/start/routes/videos.js.map @@ -0,0 +1 @@ +{"version":3,"file":"videos.js","sourceRoot":"","sources":["../../../start/routes/videos.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2C;AAE3C,eAAK,CAAC,KAAK,CAAC,GAAG,EAAE;IACf,eAAK,CAAC,GAAG,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;SACvD,UAAU,CAAC,4BAA4B,CAAC;SACxC,EAAE,CAAC,kBAAkB,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/build/start/socket.js b/build/start/socket.js new file mode 100644 index 0000000..6e58941 --- /dev/null +++ b/build/start/socket.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const WsService_1 = __importDefault(global[Symbol.for('ioc.use')]("App/Services/WsService")); +WsService_1.default.boot(); +//# sourceMappingURL=socket.js.map \ No newline at end of file diff --git a/build/start/socket.js.map b/build/start/socket.js.map new file mode 100644 index 0000000..5aaf9ee --- /dev/null +++ b/build/start/socket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../start/socket.ts"],"names":[],"mappings":";;;;;AAAA,6FAAwC;AAKxC,mBAAE,CAAC,IAAI,EAAE,CAAC"} \ No newline at end of file diff --git a/build/tsconfig.tsbuildinfo b/build/tsconfig.tsbuildinfo new file mode 100644 index 0000000..5695f75 --- /dev/null +++ b/build/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"version":"4.7.3"} \ No newline at end of file