diff --git a/backend/files/misc/templates/README.md b/backend/files/misc/templates/README.md
deleted file mode 100644
index 485217b69f..0000000000
--- a/backend/files/misc/templates/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-
-# Your endpoints template folder
-
-This folder contains templates for generating _"something"_ out of your endpoints, and among
-other things, is the folder where the frontend scaffolders can be found in Magic. You can
-create your own templates here, by starting out with for instance the _"/anglar-default/"_
-template as your starting point.
diff --git a/backend/files/misc/templates/angular-service/README.md b/backend/files/misc/templates/angular-service/README.md
deleted file mode 100644
index 2ce42a1b56..0000000000
--- a/backend/files/misc/templates/angular-service/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-
-# Angular HTTP Service template
-
-This template will *only* generate an HTTP service layer for you, with some helper
-functionality, such as automatically injecting your JWT token if authenticated as
-an HTTP Bearer Authorization token into your requests towards your backend.
diff --git a/backend/files/misc/templates/angular-service/generate.hl b/backend/files/misc/templates/angular-service/generate.hl
deleted file mode 100644
index d6f76891e2..0000000000
--- a/backend/files/misc/templates/angular-service/generate.hl
+++ /dev/null
@@ -1,139 +0,0 @@
-
-// Generates an Angular HTTP service frontend for you wrapping the given [endpoints].
-.description:@"Generates an Angular frontend HTTP client service according to the given arguments.
-The frontend will have one method group for each of your grouped CRUD methods."
-
-/*
- * Retrieves main folder we're currently working in, to allow
- * for retrieving files relative to our current "working directory".
- */
-io.path.get-folder:x:@.filename
-
-/*
- * Transforming our CRUD methods, such that they become slightly more structured.
- *
- * This is later used to generate our components, since we create one component for each
- * CRUD type of endpoint that we were given as input.
- */
-.crud-methods
-add:x:+/*
- get-nodes:x:@.arguments/*
-add:x:@.crud-methods
- io.file.execute:/misc/templates/common/structure-endpoints.hl
-
-/*
- * Creating our HTTP Client service method implementations,
- * by invoking a helper file responsible for parsing arguments,
- * and creating our TypeScript HTTP client methods accordingly.
- */
-.http-service-methods
-add:x:+/*
- get-nodes:x:@.crud-methods/*
-set-value:x:@.http-service-methods
- io.file.execute:/misc/templates/common/create-angular-service-methods.hl
-
-// This will contain all template files.
-.main-files
-
-// Loads all files in "main" Angular template folder recursively.
-unwrap:x:+/*/*/*
-add:x:@.main-files
- signal:magic.io.file.load-recursively
- strings.concat
- .:x:@io.path.get-folder
- .:templates/main/
-
-/*
- * Removing "root" parts of our folder names in [.main-files], to make a
- * more friendly folder structure that we return to caller.
- */
-strings.trim-start:x:@io.path.get-folder
- .:/
-for-each:x:@.main-files/*
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- strings.concat
- get-value:x:@strings.trim-start
- .:templates/main
- get-value:x:@.arguments/*/name
-
-/*
- * Iterating through each [.main-files] and doing substitutions
- * according to specifications and META data.
- */
-for-each:x:@.main-files/*/*
-
- // Replacing all [[apiUrl]] occurrencies.
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- .:[[apiUrl]]
- get-value:x:@.arguments/*/apiUrl
-
- // Replacing all [[environmentDomain]] occurrencies.
- strings.split:x:@.arguments/*/apiUrl
- .:"://"
- strings.split:x:-/1
- .:/
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- .:[[environmentDomain]]
- get-value:x:@strings.split/0
-
- // Replacing all [[http-client-service-method-implementations]] occurrencies.
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- .:[[http-client-service-method-implementations]]
- get-value:x:@.http-service-methods
-
-// Adding all generated files to return value.
-add:x:../*/return-nodes
- get-nodes:x:@.main-files/*
-add:x:../*/return-nodes
- get-nodes:x:@.components/*
-
-// Applying copyright, if given.
-if
- and
- not
- eq
- get-value:x:@.arguments/*/copyright
- .:
- not
- eq
- get-value:x:@.arguments/*/copyright
- .
- .lambda
-
- // Copyright notice was supplied.
- for-each:x:../*/return-nodes/*
- if
- or
- strings.ends-with:x:@.dp/#
- .:.ts
- strings.ends-with:x:@.dp/#
- .:.js
- strings.ends-with:x:@.dp/#
- .:.css
- strings.ends-with:x:@.dp/#
- .:.scss
- strings.ends-with:x:@.dp/#
- .:.sass
- .lambda
-
- /*
- * Currently iterated file is of a type that can tolerate
- * having a copyright header comment.
- */
- set-value:x:@.dp/#/*
- strings.concat
- .:@"/*
-"
- .:" * "
- get-value:x:@.arguments/*/copyright
- .:@"
- */
-"
- get-value:x:@.dp/#/*
-
-// Returning all generated files to caller.
-return-nodes
diff --git a/backend/files/misc/templates/angular-service/templates/main/.dockerignore b/backend/files/misc/templates/angular-service/templates/main/.dockerignore
deleted file mode 100644
index 510ebaad17..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/.dockerignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-**/.DS_Store
diff --git a/backend/files/misc/templates/angular-service/templates/main/.editorconfig b/backend/files/misc/templates/angular-service/templates/main/.editorconfig
deleted file mode 100644
index e89330a618..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/.editorconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-# Editor configuration, see https://editorconfig.org
-root = true
-
-[*]
-charset = utf-8
-indent_style = space
-indent_size = 2
-insert_final_newline = true
-trim_trailing_whitespace = true
-
-[*.md]
-max_line_length = off
-trim_trailing_whitespace = false
diff --git a/backend/files/misc/templates/angular-service/templates/main/.gitignore b/backend/files/misc/templates/angular-service/templates/main/.gitignore
deleted file mode 100644
index 86d943a9b2..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/.gitignore
+++ /dev/null
@@ -1,46 +0,0 @@
-# See http://help.github.com/ignore-files/ for more about ignoring files.
-
-# compiled output
-/dist
-/tmp
-/out-tsc
-# Only exists if Bazel was run
-/bazel-out
-
-# dependencies
-/node_modules
-
-# profiling files
-chrome-profiler-events*.json
-speed-measure-plugin*.json
-
-# IDEs and editors
-/.idea
-.project
-.classpath
-.c9/
-*.launch
-.settings/
-*.sublime-workspace
-
-# IDE - VSCode
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-.history/*
-
-# misc
-/.sass-cache
-/connect.lock
-/coverage
-/libpeerconnection.log
-npm-debug.log
-yarn-error.log
-testem.log
-/typings
-
-# System Files
-.DS_Store
-Thumbs.db
diff --git a/backend/files/misc/templates/angular-service/templates/main/Dockerfile b/backend/files/misc/templates/angular-service/templates/main/Dockerfile
deleted file mode 100644
index 1262363a59..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/Dockerfile
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# Stage 0, "build-stage", based on Node.js, to build and compile the frontend
-FROM tiangolo/node-frontend:10 as build-stage
-WORKDIR /app
-COPY package*.json /app/
-RUN npm install
-COPY ./ /app/
-ARG configuration=production
-RUN npm run build -- --output-path=./dist/out --configuration $configuration --aot
-
-# Stage 1, based on Nginx, to have only the compiled app, ready for production with Nginx
-FROM nginx:1.19.6
-COPY --from=build-stage /app/dist/out/ /usr/share/nginx/html
-
-# Copy the default nginx.conf provided by tiangolo/node-frontend
-COPY --from=build-stage /nginx.conf /etc/nginx/conf.d/default.conf
diff --git a/backend/files/misc/templates/angular-service/templates/main/angular.json b/backend/files/misc/templates/angular-service/templates/main/angular.json
deleted file mode 100644
index c1d4cbdbef..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/angular.json
+++ /dev/null
@@ -1,126 +0,0 @@
-{
- "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
- "version": 1,
- "newProjectRoot": "projects",
- "projects": {
- "angular": {
- "projectType": "application",
- "schematics": {},
- "root": "",
- "sourceRoot": "src",
- "prefix": "app",
- "architect": {
- "build": {
- "builder": "@angular-devkit/build-angular:browser",
- "options": {
- "outputPath": "dist/angular",
- "index": "src/index.html",
- "main": "src/main.ts",
- "polyfills": "src/polyfills.ts",
- "tsConfig": "tsconfig.app.json",
- "aot": false,
- "assets": [
- "src/favicon.ico",
- "src/assets"
- ],
- "styles": [
- "src/styles.scss"
- ],
- "scripts": []
- },
- "configurations": {
- "production": {
- "fileReplacements": [
- {
- "replace": "src/environments/environment.ts",
- "with": "src/environments/environment.prod.ts"
- }
- ],
- "optimization": true,
- "outputHashing": "all",
- "sourceMap": false,
- "extractCss": true,
- "namedChunks": false,
- "extractLicenses": true,
- "vendorChunk": false,
- "buildOptimizer": true,
- "budgets": [
- {
- "type": "initial",
- "maximumWarning": "2mb",
- "maximumError": "5mb"
- },
- {
- "type": "anyComponentStyle",
- "maximumWarning": "6kb",
- "maximumError": "10kb"
- }
- ]
- }
- }
- },
- "serve": {
- "builder": "@angular-devkit/build-angular:dev-server",
- "options": {
- "browserTarget": "angular:build"
- },
- "configurations": {
- "production": {
- "browserTarget": "angular:build:production"
- }
- }
- },
- "extract-i18n": {
- "builder": "@angular-devkit/build-angular:extract-i18n",
- "options": {
- "browserTarget": "angular:build"
- }
- },
- "test": {
- "builder": "@angular-devkit/build-angular:karma",
- "options": {
- "main": "src/test.ts",
- "polyfills": "src/polyfills.ts",
- "tsConfig": "tsconfig.spec.json",
- "karmaConfig": "karma.conf.js",
- "assets": [
- "src/favicon.ico",
- "src/assets"
- ],
- "styles": [
- "./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
- "src/styles.scss"
- ],
- "scripts": []
- }
- },
- "lint": {
- "builder": "@angular-devkit/build-angular:tslint",
- "options": {
- "tsConfig": [
- "tsconfig.app.json",
- "tsconfig.spec.json",
- "e2e/tsconfig.json"
- ],
- "exclude": [
- "**/node_modules/**"
- ]
- }
- },
- "e2e": {
- "builder": "@angular-devkit/build-angular:protractor",
- "options": {
- "protractorConfig": "e2e/protractor.conf.js",
- "devServerTarget": "angular:serve"
- },
- "configurations": {
- "production": {
- "devServerTarget": "angular:serve:production"
- }
- }
- }
- }
- }
- },
- "defaultProject": "angular"
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular-service/templates/main/browserslist b/backend/files/misc/templates/angular-service/templates/main/browserslist
deleted file mode 100644
index 80848532e4..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/browserslist
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
-# For additional information regarding the format and rule options, please see:
-# https://github.com/browserslist/browserslist#queries
-
-# You can see what browsers were selected by your queries by running:
-# npx browserslist
-
-> 0.5%
-last 2 versions
-Firefox ESR
-not dead
-not IE 9-11 # For IE 9-11 support, remove 'not'.
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular-service/templates/main/package.json b/backend/files/misc/templates/angular-service/templates/main/package.json
deleted file mode 100644
index 3d17a81a3d..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "angular",
- "version": "0.0.0",
- "scripts": {
- "ng": "ng",
- "start": "ng serve",
- "build": "ng build",
- "build-prod": "ng build --prod --aot",
- "test": "ng test",
- "lint": "ng lint",
- "e2e": "ng e2e"
- },
- "private": true,
- "dependencies": {
- "@angular/cdk": "~8.2.3",
- "@angular/common": "~9.0.5",
- "@angular/compiler": "~9.0.5",
- "@angular/core": "~9.0.5",
- "@angular/platform-browser": "~9.0.5",
- "@angular/platform-browser-dynamic": "~9.0.5",
- "@auth0/angular-jwt": "^3.0.1",
- "tslib": "^1.10.0",
- "zone.js": "~0.10.2"
- },
- "devDependencies": {
- "@angular-devkit/build-angular": "~0.900.5",
- "@angular/cli": "~9.0.5",
- "@angular/compiler-cli": "~9.0.5",
- "@angular/language-service": "~9.0.5",
- "@types/node": "^12.11.1",
- "codelyzer": "^5.1.2",
- "protractor": "~5.4.0",
- "ts-node": "~7.0.0",
- "tslint": "~5.15.0",
- "typescript": "~3.7.5"
- }
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/app.module.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/app.module.ts
deleted file mode 100644
index 8ca60ebedc..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/app.module.ts
+++ /dev/null
@@ -1,28 +0,0 @@
- // Common imports from Angular ++.
-import { NgModule } from '@angular/core';
-import { BrowserModule } from '@angular/platform-browser';
-import { HttpClientModule } from '@angular/common/http';
-import { JwtModule } from '@auth0/angular-jwt';
-
-// Application specifics imports.
-import { AppComponent } from './components/app/app.component';
-import { environment } from 'src/environments/environment';
-
-// Your main Angular module.
-@NgModule({
- declarations: [
- AppComponent,
- ],
- imports: [
- HttpClientModule,
- BrowserModule,
- JwtModule.forRoot({
- config: {
- tokenGetter: () => localStorage.getItem('jwt_token'),
- whitelistedDomains: [environment.apiDomain],
- }
- }),
- ],
- bootstrap: [AppComponent],
-})
-export class AppModule { }
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/components/app/app.component.html b/backend/files/misc/templates/angular-service/templates/main/src/app/components/app/app.component.html
deleted file mode 100644
index 60595b9b23..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/components/app/app.component.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
Your Angular app
-
-
Modify this as you see fit
-
-
Authenticate
-
-
Log out
-
-
-
-
{{authService.me.isLoggedIn() ? 'logged in' : 'not logged in'}}
-
-
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/components/app/app.component.scss b/backend/files/misc/templates/angular-service/templates/main/src/app/components/app/app.component.scss
deleted file mode 100644
index 4c6c20cd80..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/components/app/app.component.scss
+++ /dev/null
@@ -1,12 +0,0 @@
- .main {
- width: 80%;
- margin-left: auto;
- margin-right: auto;
- h1 {
- color:lightgray;
- }
- em {
- display: block;
- font-size: .7rem;
- }
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/components/app/app.component.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/components/app/app.component.ts
deleted file mode 100644
index a89342d1a1..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/components/app/app.component.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-// Angular imports.
-import { Component } from '@angular/core';
-import { AuthService } from '../../services/auth-service';
-import { HttpService } from '../../services/http-service';
-
-@Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.scss']
-})
-export class AppComponent {
-
- constructor(
- private authService: AuthService,
- private httpService: HttpService)
- { }
-
- public authenticate() {
- this.authService.me.authenticate('root', 'admin').subscribe(res => {
- // Uncomment to test your JWT ticket towards backend (Sakila database).
- /*this.httpService.actor.read({}).subscribe(x => {
- console.log(x);
- });*/
- });
- }
-
- public logout() {
- this.authService.me.logout();
- }
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/auth-service.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/auth-service.ts
deleted file mode 100644
index e40cc94a4f..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/auth-service.ts
+++ /dev/null
@@ -1,295 +0,0 @@
-import { JwtHelperService } from '@auth0/angular-jwt';
-import { Injectable } from '@angular/core';
-import { Observable, Subscriber } from 'rxjs';
-import { HttpClient } from '@angular/common/http';
-import { environment } from 'src/environments/environment';
-import { IUsers } from './interfaces/users-interface';
-import { IRoles } from './interfaces/roles-interface';
-import { AuthFilter } from './models/auth-filter';
-import { Endpoint } from './models/endpoint';
-import { AuthenticateToken } from './models/authenticate-token';
-import { StatusResponse } from './models/status-response';
-import { CreateResponse } from './models/create-response';
-import { DeleteResponse } from './models/delete-response';
-import { CountResponse } from './models/count-response';
-import { IMe } from './interfaces/me-interface';
-
-/**
- * Authentication and authorization service, allowing you to query your backend
- * for its users/roles/etc.
- */
-@Injectable({
- providedIn: 'root'
-})
-export class AuthService {
-
- private endpoints: Endpoint[] = [];
- private userRoles: string[] = [];
-
- /**
- * Creates an instance of our object.
- *
- * @param httpClient HTTP client to use for HTTP invocations
- * @param jwtHelper OAuth0 helper class to parse JWT tokens
- */
- constructor(
- private httpClient: HttpClient,
- private jwtHelper: JwtHelperService)
- {
- this.initialize();
- }
-
- /**
- * Returns true if endpoints have been initialized.
- *
- * Do not initialize your app before this one returns true
- */
- public hasEndpoints() {
- return this.endpoints.length > 0;
- }
-
- /**
- * Returns method groups associated with the current user, allowing the user
- * to login, logout, change password, etc.
- */
- get me() : IMe {
-
- return {
-
- canInvoke: (url: string, verb: string) => {
- const endpoints = this.endpoints
- .filter((x: Endpoint) => x.path === url && x.verb === verb);
-
- if (endpoints.length === 0) {
- return false; // No such endpoint
- }
- return endpoints[0].auth === null ||
- endpoints[0].auth
- .filter(x => this.userRoles.includes(x)).length > 0;
- },
-
- inRole: (roles: string[]) => {
- return this.userRoles
- .filter(x => roles.indexOf(x) !== -1).length > 0;
- },
-
- isLoggedIn: () => {
- const ticket = localStorage.getItem('jwt_token');
- if (this.jwtHelper.isTokenExpired(ticket)) {
- localStorage.removeItem('jwt_token');
- return false;
- } else {
- return true;
- }
- },
-
- authenticate: (username: string, password: string) => {
- return new Observable((observer: Subscriber) => {
- this.httpClient.get(
- environment.apiUrl +
- 'magic/system/auth/authenticate?username=' +
- encodeURIComponent(username) +
- '&password=' +
- encodeURIComponent(password)).subscribe((res: any) => {
-
- // Success.
- localStorage.setItem('jwt_token', res.ticket);
- this.userRoles = this.jwtHelper.decodeToken(res.ticket).role.split(',');
- observer.next(res);
- observer.complete();
-
- }, (error: any) => {
-
- // Error.
- observer.error(error);
- observer.complete();
- });
- });
- },
-
- logout: () => {
- localStorage.removeItem('jwt_token');
- this.userRoles = [];
- },
-
- refreshTicket: () => {
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/auth/refresh-ticket');
- },
-
- changePassword: (password: string) => {
- return this.httpClient.put(
- environment.apiUrl +
- 'magic/system/auth/change-password', {
- password,
- });
- }
- }
- }
-
- /**
- * Returns users method group, allowing you to create, read, count, and delete
- * users in your backend - In addition to retrieve, associate, and disassociate
- * users with roles.
- */
- get users() : IUsers {
-
- return {
-
- create: (username: string, password: string) => {
- return this.httpClient.post(
- environment.apiUrl +
- 'magic/system/magic/users', {
- username,
- password,
- });
- },
-
- read: (filter: AuthFilter) => {
- let query = '';
- if (filter !== null) {
- query += '?limit=' + filter.limit;
- query += "&offset=" + filter.offset;
- if (filter.filter !== null &&
- filter.filter !== undefined &&
- filter.filter != '') {
- query += '&username.like=' + encodeURIComponent(filter.filter + '%');
- }
- }
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/users' + query);
- },
-
- count: (filter: string) => {
- let query = '';
- if (filter !== null) {
- query += '?username.like=' +
- encodeURIComponent(filter + '%');
- }
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/users-count' +
- query);
- },
-
- delete: (username: string) => {
- return this.httpClient.delete(
- environment.apiUrl +
- 'magic/system/magic/users?username=' +
- encodeURIComponent(username));
- },
-
- roles: (username: string) => {
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/users_roles?user.eq=' +
- encodeURIComponent(username));
- },
-
- addRole: (user: string, role: string) => {
- return this.httpClient.post(
- environment.apiUrl +
- 'magic/system/magic/users_roles', {
- user,
- role,
- });
- },
-
- deleteRole: (user: string, role: string) => {
- return this.httpClient.delete(
- environment.apiUrl +
- 'magic/system/magic/users_roles?role=' +
- encodeURIComponent(role) +
- '&user=' +
- encodeURIComponent(user));
- }
- }
- }
-
- /**
- * Returns roles method group, allowing you to create, read, count, and delete
- * roles in your backend.
- */
- get roles() : IRoles {
-
- return {
-
- create: (name: string, description: string) => {
- return this.httpClient.post(
- environment.apiUrl +
- 'magic/system/magic/roles', {
- name,
- description,
- });
- },
-
- read: (filter: AuthFilter) => {
- let query = '';
- if (filter !== null) {
- query += '?limit=' + filter.limit;
- query += "&offset=" + filter.offset;
- if (filter.filter !== null &&
- filter.filter !== undefined &&
- filter.filter != '') {
- query += '&name.like=' +
- encodeURIComponent(filter.filter + '%');
- }
- }
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/roles' + query);
- },
-
- count: (filter: string) => {
- let query = '';
- if (filter !== null) {
- query += '?name.like=' +
- encodeURIComponent(filter + '%');
- }
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/roles-count' + query);
- },
-
- delete: (name: string) => {
- return this.httpClient.delete(
- environment.apiUrl +
- 'magic/system/magic/roles?name=' +
- encodeURIComponent(name));
- }
- }
- }
-
- /*
- * Invoked as object is created, which only happens once, since
- * service is consumed as a Singleton due to Angular's way of reusing
- * service instantiations.
- */
- private initialize() {
-
- /*
- * Checking JWT token is persisted, and not expired, at which point
- * we use stored token to initialize roles.
- */
- const ticket = localStorage.getItem('jwt_token');
- if (this.jwtHelper.isTokenExpired(ticket)) {
- localStorage.removeItem('jwt_token');
- } else {
- this.userRoles = this.jwtHelper.decodeToken(ticket).role.split(',');
- }
-
- /*
- * Retrieving endpoints from backend, which is a URL/verb association,
- * coupled with all roles allowed to invoke URL/verb combination.
- */
- this.httpClient.get(
- environment.apiUrl +
- 'magic/system/auth/endpoints').subscribe((res: Endpoint[]) => {
- this.endpoints = res;
- }, (error: any) => {
- console.log(error);
- });
- }
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/http-service.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/http-service.ts
deleted file mode 100644
index 4176d577d4..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/http-service.ts
+++ /dev/null
@@ -1,127 +0,0 @@
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { environment } from 'src/environments/environment';
-import { ICrudEntity, ICrdEntity, ICrEntity, IREntity, IRdEntity } from './interfaces/crud-interfaces'
-import { ILog } from './interfaces/log-interface'
-import { StatusResponse } from './models/status-response';
-import { CreateResponse } from './models/create-response';
-import { CountResponse } from './models/count-response';
-import { UpdateResponse } from './models/update-response';
-import { DeleteResponse } from './models/delete-response';
-
-/**
- * Your main HTTP service for invoking CRUD methods in your backend.
- *
- * This class encapsulates the generated HTTP endpoints for your app.
- */
-@Injectable({
- providedIn: 'root'
-})
-export class HttpService {
-
- /**
- * Creates an instance of your service.
- *
- * @param httpClient What HTTP client to use for invocations towards your backend
- */
- constructor(private httpClient: HttpClient) { }
-
- /**
- * Returns the log instance, allowing you to create server-side
- * log entries.
- */
- get log() : ILog {
-
- return {
-
- debug: (content: string) => {
- this.httpClient.post(
- environment.apiUrl +
- 'magic/system/logging/log', {
- type: 'debug',
- content
- }).subscribe((res: StatusResponse) => {
- console.log('Info item successfully logged');
- }, (error: any) => {
- console.error(error.error.message);
- });
- },
-
- info: (content: string) => {
- this.httpClient.post(
- environment.apiUrl +
- 'magic/system/logging/log', {
- type: 'info',
- content
- }).subscribe((res: StatusResponse) => {
- console.log('Info item successfully logged');
- }, (error: any) => {
- console.error(error.error.message);
- });
- },
-
- error: (content: string) => {
- this.httpClient.post(
- environment.apiUrl +
- 'magic/system/logging/log', {
- type: 'error',
- content
- }).subscribe((res: StatusResponse) => {
- console.log('Info item successfully logged');
- }, (error: any) => {
- console.error(error.error.message);
- });
- },
-
- fatal: (content: string) => {
- this.httpClient.post(
- environment.apiUrl +
- 'magic/system/logging/log', {
- type: 'fatal',
- content
- }).subscribe((res: StatusResponse) => {
- console.log('Info item successfully logged');
- }, (error: any) => {
- console.error(error.error.message);
- });
- }
- }
- }
-
- /*
- * HTTP REST methods your backend exposes.
- *
- * These parts is exposed such that each table returns an ICrudEntity
- * or an ICrdEntity, depending upon whether or not the endpoint group
- * contains an update method or not.
- */
-[[http-client-service-method-implementations]]
-
- /*
- * Creates QUERY parameters from the specified "args" argument given.
- *
- * Used by CRUD service methods to create the correct QUERY parameters
- * during invocations towards your backend.
- */
- private getQueryArgs(args: any) {
- let result = '';
- for(const idx in args) {
- if (Object.prototype.hasOwnProperty.call(args, idx)) {
- const idxFilter = args[idx];
- if (idxFilter !== null && idxFilter !== undefined && idxFilter !== '') {
- if (result === '') {
- result += '?';
- } else {
- result += '&';
- }
- if (idx.endsWith('.like')) {
- result += idx + '=' + encodeURIComponent(idxFilter + '%');
- } else {
- result += idx + '=' + encodeURIComponent(idxFilter);
- }
- }
- }
- }
- return result;
- }
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/crud-interfaces.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/crud-interfaces.ts
deleted file mode 100644
index 8a4fc2c0a5..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/crud-interfaces.ts
+++ /dev/null
@@ -1,98 +0,0 @@
-import { Observable } from 'rxjs';
-import { CreateResponse } from '../models/create-response';
-import { CountResponse } from '../models/count-response';
-import { UpdateResponse } from '../models/update-response';
-import { DeleteResponse } from '../models/delete-response';
-
-/**
- * Entity method group containing only Read, but not Update, Create or Delete.
- *
- * This interface is implemented on method groups not containing update, create or delete,
- * which might happen if user explicitly chooses to not generate a frontend with the
- * delete endpoint included.
- */
-export interface IREntity {
-
- /**
- * Reads entities from your backend.
- *
- * @param filter Filter condition for items to retrieve
- */
- read(filter: any) : Observable;
-
- /**
- * Counts entities from your backend.
- *
- * @param filter Filter condition for items to count
- */
- count(filter: any) : Observable;
-}
-
-/**
- * Entity method group containing Read and Delete, but not Update or Create.
- *
- * This interface is implemented on method groups not containing update or create,
- * which might happen if a table have only automatic columns.
- */
-export interface IRdEntity extends IREntity {
-
- /**
- * Deletes one entity from your backend.
- *
- * @param args Filter condition for item to delete, implying primary key(s) for entity
- */
- delete(args: any) : Observable;
-}
-
-/**
- * Entity method group containing Create and Read, but not Update or Delete.
- *
- * This interface is implemented on method groups not containing update or delete,
- * which might happen if a table have no primary keys.
- */
-export interface ICrEntity extends IREntity {
-
- /**
- * Creates a new entity.
- *
- * @param args Initial values for your entity
- */
- create(args: any) : Observable;
-}
-
-/**
- * Entity method group containing Create, Read and Delete, but not Update.
- *
- * This interface is implemented on method groups not containing update,
- * which might happen, if a table have no updateable columns, such as
- * link tables, with only primary keys, etc.
- */
-export interface ICrdEntity extends IREntity {
-
- /**
- * Creates a new entity.
- *
- * @param args Initial values for your entity
- */
- create(args: any) : Observable;
-
- /**
- * Deletes one entity from your backend.
- *
- * @param args Filter condition for item to delete, implying primary key(s) for entity
- */
- delete(args: any) : Observable;
-}
-
-/**
- * Entity method group containing all 4 CRUD operations.
- */
-export interface ICrudEntity extends ICrdEntity {
-
- /**
- * Updates one entity in your backend.
- *
- * @param args What item to update, and what values to update it with. Must at the very least contain your entity's primary key.
- */
- update(args: any) : Observable;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/log-interface.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/log-interface.ts
deleted file mode 100644
index 71680f1077..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/log-interface.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Log interface, allowing you to create server side log entries.
- */
-export interface ILog {
-
- /**
- * Logs a debug entry.
- *
- * @param content What to log
- */
- debug(content: string) : void;
-
- /**
- * Logs an info entry.
- *
- * @param content What to log
- */
- info(content: string) : void;
-
- /**
- * Logs an error entry.
- *
- * @param content What to log
- */
- error(content: string) : void;
-
- /**
- * Logs a fatal entry.
- *
- * @param content What to log
- */
- fatal(content: string) : void;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/me-interface.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/me-interface.ts
deleted file mode 100644
index a9eb27426c..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/me-interface.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import { Observable } from 'rxjs';
-import { AuthenticateToken } from '../models/authenticate-token';
-import { StatusResponse } from '../models/status-response';
-
- /**
- * Service interface for methods somehow related to the current user,
- * such as authenticate, change-password, etc.
- */
- export interface IMe {
-
- /**
- * Returns true if current user are allowed to invoke specified URL/verb combination,
- * otherwise returns false.
- *
- * @param url URL of endpoint
- * @param verb HTTP verb for endpoint
- */
- canInvoke(url: string, verb: string) : boolean;
-
- /**
- * Authenticates the current user towards the backend.
- *
- * @param username Username user supplied
- * @param password Password user supplied
- */
- authenticate(username: string, password: string) : Observable;
-
- /**
- * Will refresh the JWT token, by invoking the backend's refresh token endpoint.
- */
- refreshTicket() : Observable;
-
- /**
- * Returns true if current user belongs to any of the specified roles,
- * otherwise it returns false.
- *
- * @param roles Roles to check
- */
- inRole(roles: string[]) : boolean;
-
- /**
- * Returns true if current user is authenticate, otherwise false.
- */
- isLoggedIn() : boolean;
-
- /**
- * Destroys the persisted JWT token for the current user, effectively
- * logging out the user from the backend.
- */
- logout() : void;
-
- /**
- * Changes the currently authenticated user's password, by invoking the backend
- * endpoint responsible for updating the user's password.
- *
- * @param password New password for user
- */
- changePassword(password: string) : Observable;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/roles-interface.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/roles-interface.ts
deleted file mode 100644
index 9f9cb867c2..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/roles-interface.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Observable } from 'rxjs';
-import { AuthFilter } from '../models/auth-filter';
-import { CreateResponse } from '../models/create-response';
-import { CountResponse } from '../models/count-response';
-import { DeleteResponse } from '../models/delete-response';
-
-/**
- * Interface for creating, reading, and deleting roles in your backend.
- */
-export interface IRoles {
-
- /**
- * Creates a new role in your backend.
- *
- * @param name Name of role to create
- * @param description Description for role
- */
- create(name: string, description: string) : Observable;
-
- /**
- * Reads roles from your backend.
- *
- * @param filter Filter, including paging conditions for roles to read
- */
- read(filter?: AuthFilter) : Observable;
-
- /**
- * Counts the number of roles in your backend.
- *
- * @param filter Filtering conditions for roles to include in counting process
- */
- count(filter?: string) : Observable;
-
- /**
- * Deletes a roles in your backend.
- *
- * @param name Name of roles to delete
- */
- delete(name: string) : Observable;
-}
-
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/users-interface.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/users-interface.ts
deleted file mode 100644
index 21b60de920..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/interfaces/users-interface.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-import { Observable } from 'rxjs';
-import { AuthFilter } from '../models/auth-filter';
-import { CreateResponse } from '../models/create-response';
-import { CountResponse } from '../models/count-response';
-import { DeleteResponse } from '../models/delete-response';
-
-/**
- * Interface for creating, reading, and deleting users from
- * your backend - In addition to retireving, associating, and disassociating users
- * with roles.
- */
-export interface IUsers {
-
- /**
- * Creates a new user in your backend.
- *
- * @param username Username of user to create
- * @param password Initial password for user
- */
- create(username: string, password: string) : Observable;
-
- /**
- * Reads users from your backend.
- *
- * @param filter Filter for users, including paging information
- */
- read(filter?: AuthFilter) : Observable;
-
- /**
- * Counts users in your backend.
- *
- * @param filter Filter for users to include in count
- */
- count(filter?: string) : Observable;
-
- /**
- * Deletes a user from your backend.
- *
- * @param username Name of user to delete.
- */
- delete(username: string) : Observable;
-
- /**
- * Retrieves all the roles belonging to a specific user.
- *
- * @param username Name of user to retrieve roles for
- */
- roles(username: string) : Observable;
-
- /**
- * Associates a user with a role in the backend.
- *
- * @param user Name of user to add to specified role
- * @param role Role to add to specified user
- */
- addRole(user: string, role: string) : Observable;
-
- /**
- * Removes (disassociates) a user with a role.
- *
- * @param user Name of user to disassociate with role
- * @param role Name of role to disassociate with user
- */
- deleteRole(user: string, role: string) : Observable;
-}
-
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/auth-filter.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/auth-filter.ts
deleted file mode 100644
index cba6d12d98..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/auth-filter.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Filter for invoking "auth" methods, allowing you to filter users/roles/etc.
- */
-export class AuthFilter {
-
- /**
- * What filter to apply.
- */
- filter?: string;
-
- /**
- * Offset of where to start returning records.
- */
- offset: number;
-
- /**
- * How many records to return max.
- */
- limit: number;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/authenticate-token.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/authenticate-token.ts
deleted file mode 100644
index d119fb0a09..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/authenticate-token.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Authentication token, returned from backend as user authenticates.
- * Contains a JWT token in its ticket field.
- */
-export class AuthenticateToken {
-
- /**
- * Actual JWT token returned from backend.
- */
- ticket: string;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/count-response.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/count-response.ts
deleted file mode 100644
index ad2de7af5d..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/count-response.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Common response class for invocations towards backend that counts items.
- */
-export class CountResponse {
-
- /**
- * Number of items in backend matching filtering condition.
- */
- count: number;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/create-response.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/create-response.ts
deleted file mode 100644
index c0ea0b36e5..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/create-response.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Common response class for invocations towards backend that creates
- * items. Notice, if the caller is responsible for supplying an explicit
- * id column for entity, the returned id from the backend will normally
- * be null.
- */
-export class CreateResponse {
-
- /**
- * Id of new item. Might be null if caller is assumed to specify an explicit id
- * for the new entity.
- */
- id: any;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/delete-response.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/delete-response.ts
deleted file mode 100644
index 15fbd73834..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/delete-response.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Common response class for invocations towards backend that deletes items.
- */
-export class DeleteResponse {
-
- /**
- * How many records was affected by delete invocation.
- */
- affected: number;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/endpoint.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/endpoint.ts
deleted file mode 100644
index bf3c9f95c0..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/endpoint.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Endpoint model, encapsulating a single endpoint/verb combination,
- * combined with what roles are allowed to access endpoint with the
- * specified verb.
- */
-export class Endpoint {
-
- /**
- * Relative URL to endpoint.
- */
- path: string;
-
- /**
- * HTTP verb for endpoint, normally either GET, PUT, POST, DELETE.
- */
- verb: string;
-
- /**
- * List of roles allowed to access path/verb combination.
- * If empty, everybody have access, including anonymous invocations.
- */
- auth: string[];
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/status-response.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/status-response.ts
deleted file mode 100644
index 7d57731964..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/status-response.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Common response class for invocations towards backend not returning
- * any particular data, besides "success", "failure", etc.
- */
-export class StatusResponse {
-
- /**
- * Status as reported from backend. Normally "success".
- */
- result: string;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/update-response.ts b/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/update-response.ts
deleted file mode 100644
index 8f7e10de5f..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/app/services/models/update-response.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Common response class for invocations towards backend that updates items.
- */
-export class UpdateResponse {
-
- /**
- * How many records was affected by delete invocation.
- */
- affected: number;
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/assets/.gitkeep b/backend/files/misc/templates/angular-service/templates/main/src/assets/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/environments/environment.prod.ts b/backend/files/misc/templates/angular-service/templates/main/src/environments/environment.prod.ts
deleted file mode 100644
index 59437c4e60..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/environments/environment.prod.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export const environment = {
- production: true,
-
- // The URL to your backend API.
- apiUrl: '[[apiUrl]]',
-
- // The domain for your backend API. Needed for "oauth0".
- apiDomain: '[[environmentDomain]]',
-};
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/environments/environment.ts b/backend/files/misc/templates/angular-service/templates/main/src/environments/environment.ts
deleted file mode 100644
index 2ed78f4ec9..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/environments/environment.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export const environment = {
- production: false,
-
- // The URL to your backend API.
- apiUrl: '[[apiUrl]]',
-
- // The domain for your backend API. Needed for "oauth0".
- apiDomain: '[[environmentDomain]]',
-};
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/index.html b/backend/files/misc/templates/angular-service/templates/main/src/index.html
deleted file mode 100644
index c7dd076dca..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Your app's name here
-
-
-
-
-
-
-
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/main.ts b/backend/files/misc/templates/angular-service/templates/main/src/main.ts
deleted file mode 100644
index c7b673cf44..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/main.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { enableProdMode } from '@angular/core';
-import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
-
-import { AppModule } from './app/app.module';
-import { environment } from './environments/environment';
-
-if (environment.production) {
- enableProdMode();
-}
-
-platformBrowserDynamic().bootstrapModule(AppModule)
- .catch(err => console.error(err));
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/polyfills.ts b/backend/files/misc/templates/angular-service/templates/main/src/polyfills.ts
deleted file mode 100644
index d04e88180e..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/polyfills.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-/***************************************************************************************************
- * Zone JS is required by default for Angular itself.
- */
-import 'zone.js/dist/zone'; // Included with Angular CLI.
diff --git a/backend/files/misc/templates/angular-service/templates/main/src/styles.scss b/backend/files/misc/templates/angular-service/templates/main/src/styles.scss
deleted file mode 100644
index 1f80a84d82..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/src/styles.scss
+++ /dev/null
@@ -1 +0,0 @@
- html, body { height: 100%; }
diff --git a/backend/files/misc/templates/angular-service/templates/main/tsconfig.app.json b/backend/files/misc/templates/angular-service/templates/main/tsconfig.app.json
deleted file mode 100644
index 565a11a215..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/tsconfig.app.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "outDir": "./out-tsc/app",
- "types": []
- },
- "files": [
- "src/main.ts",
- "src/polyfills.ts"
- ],
- "include": [
- "src/**/*.ts"
- ],
- "exclude": [
- "src/test.ts",
- "src/**/*.spec.ts"
- ]
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/tsconfig.json b/backend/files/misc/templates/angular-service/templates/main/tsconfig.json
deleted file mode 100644
index 30956ae7ea..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/tsconfig.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "compileOnSave": false,
- "compilerOptions": {
- "baseUrl": "./",
- "outDir": "./dist/out-tsc",
- "sourceMap": true,
- "declaration": false,
- "downlevelIteration": true,
- "experimentalDecorators": true,
- "module": "esnext",
- "moduleResolution": "node",
- "importHelpers": true,
- "target": "es2015",
- "typeRoots": [
- "node_modules/@types"
- ],
- "lib": [
- "es2018",
- "dom"
- ]
- },
- "angularCompilerOptions": {
- "fullTemplateTypeCheck": true,
- "strictInjectionParameters": true
- }
-}
diff --git a/backend/files/misc/templates/angular-service/templates/main/tslint.json b/backend/files/misc/templates/angular-service/templates/main/tslint.json
deleted file mode 100644
index f0adae9800..0000000000
--- a/backend/files/misc/templates/angular-service/templates/main/tslint.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "extends": "tslint:recommended",
- "rules": {
- "array-type": false,
- "arrow-parens": false,
- "deprecation": {
- "severity": "warning"
- },
- "component-class-suffix": true,
- "contextual-lifecycle": true,
- "directive-class-suffix": true,
- "directive-selector": [
- true,
- "attribute",
- "app",
- "camelCase"
- ],
- "component-selector": [
- true,
- "element",
- "app",
- "kebab-case"
- ],
- "import-blacklist": [
- true,
- "rxjs/Rx"
- ],
- "interface-name": false,
- "max-classes-per-file": false,
- "max-line-length": [
- true,
- 140
- ],
- "member-access": false,
- "member-ordering": [
- true,
- {
- "order": [
- "static-field",
- "instance-field",
- "static-method",
- "instance-method"
- ]
- }
- ],
- "no-consecutive-blank-lines": false,
- "no-console": [
- true,
- "debug",
- "info",
- "time",
- "timeEnd",
- "trace"
- ],
- "no-empty": false,
- "no-inferrable-types": [
- true,
- "ignore-params"
- ],
- "no-non-null-assertion": true,
- "no-redundant-jsdoc": true,
- "no-switch-case-fall-through": true,
- "no-use-before-declare": true,
- "no-var-requires": false,
- "object-literal-key-quotes": [
- true,
- "as-needed"
- ],
- "object-literal-sort-keys": false,
- "ordered-imports": false,
- "quotemark": [
- true,
- "single"
- ],
- "trailing-comma": false,
- "no-conflicting-lifecycle": true,
- "no-host-metadata-property": true,
- "no-input-rename": true,
- "no-inputs-metadata-property": true,
- "no-output-native": true,
- "no-output-on-prefix": true,
- "no-output-rename": true,
- "no-outputs-metadata-property": true,
- "template-banana-in-box": true,
- "template-no-negated-async": true,
- "use-lifecycle-interface": true,
- "use-pipe-transform-interface": true
- },
- "rulesDirectory": [
- "codelyzer"
- ]
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/README.md b/backend/files/misc/templates/angular/README.md
deleted file mode 100644
index 0542747539..0000000000
--- a/backend/files/misc/templates/angular/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
-# Dark Angular frontend template
-
-This template is similar to the default angular template, except it creates a dark theme, and
-contains some other changes, such that the default paging size is 25 records, etc.
-
-
-
-
diff --git a/backend/files/misc/templates/angular/generate.hl b/backend/files/misc/templates/angular/generate.hl
deleted file mode 100644
index e1a11032b0..0000000000
--- a/backend/files/misc/templates/angular/generate.hl
+++ /dev/null
@@ -1,641 +0,0 @@
-
-/*
- * Generates an Angular frontend for you wrapping the given [endpoints].
- * The frontend will contain one grid component for each CRUD method group supplied,
- * in addition to an edit/create modal dialogue, and an HTTP service endpoint
- * for each HTTP REST endpoint you supply.
- */
-.description:Generates an Angular frontend based upon ngx-generator and returns it to the client as a ZIP file
-
-// Sanity checking invocation.
-validators.mandatory:x:@.arguments/*/args/*/palette
-
-// Communicating custom arguments to consumers.
-.custom
- palette
- .
- name:Light blue
- value:mat-light-blue
- .
- name:Red
- value:mat-red
- .
- name:Pink
- value:mat-pink
- .
- name:Purple
- value:mat-purple
- .
- name:Deep purple
- value:mat-deep-purple
- .
- name:Indigo
- value:mat-indigo
- .
- name:Blue
- value:mat-blue
- .
- name:Cyan
- value:mat-cyan
- .
- name:Teal
- value:mat-teal
- .
- name:Green
- value:mat-green
- .
- name:Light green
- value:mat-light-green
- .
- name:Lime
- value:mat-lime
- .
- name:Yellow
- value:mat-yellow
- .
- name:Amber
- value:mat-amber
- .
- name:Orange
- value:mat-orange
- .
- name:Deep orange
- value:mat-deep-orange
- .
- name:Brown
- value:mat-brown
- .
- name:Grey
- value:mat-grey
- .
- name:Blue grey
- value:mat-blue-grey
- theme
- .
- name:Light
- value:mat-light-theme
- .
- name:Dark
- value:mat-dark-theme
- intro:@"
-
-
-
- This application was automatically generated with
- AINIRO Magic Cloud .
- It features easy translation into your language(s) of choice, and
- provides a default starter-kit for your CRUD apps. Feel free to modify this page as you see fit.
- Notice, to create ""an app"" out of this website, just click the bookmark button on your phone,
- and choose ""Add to home screen"" , and it will behave more or less exactly like a native app,
- as long as the user has an internet connection. In the ""helpers"" folder you can find several
- helper components, allowing you to change any aspect of your entity fields, to for instance provide
- file upload, image capturing, etc. These are as follows
-
-
- magic-autocomplete - Helps you when creating new entities when a field in your entity is referencing another field in another table. Useful for larger datasets.
- magic-file - Helps you when creating new entities when a field in your entity should be wrapping a file physically on disc in your backend, as in uploading files and associate these with data entities.
- magic-file-view - Helps you when viewing an entity and downloading an associated file when a field is wrapping a physical file.
- magic-filter - Helps you create filtering controls when a field in an item is referencing another field in another table.
- magic-image - Same as the magic-file, except it allows you to upload images specifically, and will automatically resize your images if you want it to.
- magic-image-view - The equivalent of the magic-file component, except it will display images inline on your form.
- magic-selector - The same as magic-autocomplete but will create a select dropdown list instead of an autocompleter and hence is more useful for smaller datasets.
-
-
- All of the above custom components are fairly well documented in the TypeScript files, and you can easily include them
- as you see fit in your own applications. Besides from the above special components, everything in this template is
- plain and standard Angular components, besides the occasional 3rd party component, used to for instance allow
- the user to pick a date and time, etc. The latter are open source libraries you can find documentation for if
- you search for your component's name.
-
"
-
-/*
- * Retrieves main folder we're currently working in, to allow
- * for retrieving files relative to our current "working directory".
- */
-io.path.get-folder:x:@.filename
-
-/*
- * Transforming our CRUD methods, such that they become slightly more structured.
- *
- * This is later used to generate our components, since we create one component for each
- * CRUD type of endpoint that we were given as input.
- */
-.crud-methods
-add:x:+/*
- get-nodes:x:@.arguments/*
-add:x:@.crud-methods
- io.file.execute:/misc/templates/common/structure-endpoints.hl
-
-/*
- * Creating our HTTP Client service method implementations,
- * by invoking a helper file responsible for parsing arguments,
- * and creating our TypeScript HTTP client methods accordingly.
- */
-.http-service-methods
-add:x:+/*
- get-nodes:x:@.crud-methods/*
-set-value:x:@.http-service-methods
- io.file.execute:/misc/templates/common/create-angular-service-methods.hl
-
-/*
- * These two nodes will contain all template files.
- *
- * The [.main-files] will contain the main template files.
- * The [.component-files] will contain the "per component" files, and
- * will be duplicated once for each component that is dynamically created.
- *
- * The [.component-files] will be used as the basis for creating one component for each
- * CRUD endpoint method group specified by caller.
- */
-.main-files
-.component-files
-
-// Loads all files in "main" Angular template folder recursively.
-unwrap:x:+/*/*/*
-add:x:@.main-files
- signal:magic.io.file.load-recursively
- strings.concat
- .:x:@io.path.get-folder
- .:templates/main/
- .hidden-files:bool:true
-
-// Loads all files in "component" Angular template folder recursively.
-unwrap:x:+/*/*/*
-add:x:@.component-files
- signal:magic.io.file.load-recursively
- strings.concat
- .:x:@io.path.get-folder
- .:templates/component/
- .hidden-files:bool:true
-
-/*
- * Removing "root" parts of our folder names in [.main-files], to create a
- * more friendly folder structure that we return to caller.
- */
-strings.trim-start:x:@io.path.get-folder
- .:/
-for-each:x:@.main-files/*
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- strings.concat
- get-value:x:@strings.trim-start
- .:templates/main
- get-value:x:@.arguments/*/name
-
-/*
- * Replacing component filenames such that we can keep them
- * slightly more semantically correct before starting transformation process.
- *
- * This makes it easier for us to later dynamically replace the filenames
- * of our component files, according to their component name.
- */
-for-each:x:@.component-files/*
- strings.replace:x:@.dp/#
- .:component.
- .:[[component-filename]].
- strings.replace:x:@strings.replace
- strings.concat
- get-value:x:@io.path.get-folder
- .:templates/component/
- .:/[[component-folder]]/
- set-value:x:@.dp/#
- get-value:x:@strings.replace
-
-/*
- * Loading router link file, that contains the declaration for
- * our router links.
- */
-.router-link-file
-strings.concat
- get-value:x:@io.path.get-folder
- .:templates/misc/router-link.html
-set-value:x:@.router-link-file
- io.file.load:x:@strings.concat
-
-// Loading import file, that contains the import declarations for components.
-.imports-file
-strings.concat
- get-value:x:@io.path.get-folder
- .:templates/misc/import.ts
-set-value:x:@.imports-file
- io.file.load:x:@strings.concat
-.imports-file-only-grid
-strings.concat
- get-value:x:@io.path.get-folder
- .:templates/misc/import-only-grid.ts
-set-value:x:@.imports-file-only-grid
- io.file.load:x:@strings.concat
-
-// Loading router declaration file.
-.router-declaration-file
-strings.concat
- get-value:x:@io.path.get-folder
- .:templates/misc/router-declaration.ts
-set-value:x:@.router-declaration-file
- io.file.load:x:@strings.concat
-
-// Building our CRUD components.
-.components
-strings.concat
- get-value:x:@io.path.get-folder
- .:generator/generate-components.hl
-add:x:+/+/+/*
- get-nodes:x:@.component-files
-add:x:+/+/*
- get-nodes:x:@.crud-methods
-unwrap:x:+/*/*
-add:x:@.components
- io.file.execute:x:@strings.concat
- root-folder:x:@io.path.get-folder
-
-/*
- * Retrieving import statements/router declarations,
- * etc, for each component we have.
- */
-.imports
-.imports-only-main
-.routes
-.module-declarations
-.entry-components
-.router-links
-for-each:x:@.crud-methods/*
-
- // Verifying GET verbs exists for CRUD method.
- if
- exists:x:@.dp/#/*/verbs/*/get
- .lambda
-
- // Import declarations.
- strings.replace:x:@.imports-file
- .:[[component-name]]
- strings.capitalize:x:@.dp/#/*/component-name
- strings.replace:x:-
- .:[[component-folder]]
- get-value:x:@.dp/#/*/component-folder
- strings.replace:x:-
- .:[[component-filename]]
- get-value:x:@.dp/#/*/component-filename
- strings.replace:x:-
- .:[[component-edit-name]]
- get-value:x:@.dp/#/*/component-edit-name
- strings.replace:x:-
- .:[[component-edit-filename]]
- get-value:x:@.dp/#/*/component-edit-filename
- set-value:x:@.imports
- strings.concat
- get-value:x:@.imports
- get-value:x:@strings.replace
-
- // Import declarations (only main component imports).
- strings.replace:x:@.imports-file-only-grid
- .:[[component-name]]
- strings.capitalize:x:@.dp/#/*/component-name
- strings.replace:x:-
- .:[[component-folder]]
- get-value:x:@.dp/#/*/component-folder
- strings.replace:x:-
- .:[[component-filename]]
- get-value:x:@.dp/#/*/component-filename
- set-value:x:@.imports-only-main
- strings.concat
- get-value:x:@.imports-only-main
- get-value:x:@strings.replace
-
- // Router declarations.
- strings.replace:x:@.router-declaration-file
- .:[[component-name]]
- strings.capitalize:x:@.dp/#/*/component-name
- strings.replace:x:-
- .:[[router-url]]
- get-value:x:@.dp/#/*/component-routing-url
- set-value:x:@.routes
- strings.concat
- get-value:x:@.routes
- get-value:x:@strings.replace
-
- // Router links.
- strings.replace:x:@.router-link-file
- .:[[url]]
- get-value:x:@.dp/#/*/component-routing-url
- strings.replace:x:@strings.replace
- .:[[endpoint-url]]
- get-value:x:@.dp/#/*/url
- strings.replace:x:@strings.replace
- .:[[name]]
- get-value:x:@.dp/#/*/component-header
- set-value:x:@.router-links
- strings.concat
- get-value:x:@.router-links
- get-value:x:@strings.replace
-
- // Module declarations.
- set-value:x:@.module-declarations
- strings.concat
- get-value:x:@.module-declarations
- .:" "
- get-value:x:@.dp/#/*/component-name
- .:@",
-"
- .:" "
- get-value:x:@.dp/#/*/component-edit-name
- .:@",
-"
-
- /*
- * Adding entry components, which basically is the edit modal windows
- * for each component we have.
- */
- set-value:x:@.entry-components
- strings.concat
- get-value:x:@.entry-components
- .:" "
- get-value:x:@.dp/#/*/component-edit-name
- .:@",
-"
-
-/*
- * Replacing any [[imports]], [[imports-only-main]], [[routes]],
- * etc in any of our main files.
- */
-for-each:x:@.main-files/*
-
- // Replacing [[intro]]
- set-value:x:@.dp/#/*
- strings.replace:x:@.dp/#/*
- .:[[intro]]
- get-value:x:@.arguments/*/args/*/intro
-
- // Replacing [[palette]]
- set-value:x:@.dp/#/*
- strings.replace:x:@.dp/#/*
- .:[[palette]]
- get-value:x:@.arguments/*/args/*/palette
-
- // Replacing [[theme]]
- set-value:x:@.dp/#/*
- strings.replace:x:@.dp/#/*
- .:[[theme]]
- get-value:x:@.arguments/*/args/*/theme
-
- // Replacing [[router-links]]
- set-value:x:@.dp/#/*
- strings.replace:x:@.dp/#/*
- .:[[router-links]]
- get-value:x:@.router-links
-
- // Replacing [[imports]]
- set-value:x:@.dp/#/*
- strings.replace:x:@.dp/#/*
- .:[[imports]]
- get-value:x:@.imports
-
- // Replacing [[imports-only-main]]
- set-value:x:@.dp/#/*
- strings.replace:x:@.dp/#/*
- .:[[imports-only-main]]
- get-value:x:@.imports-only-main
-
- // Replacing [[routes]]
- set-value:x:@.dp/#/*
- strings.replace:x:@.dp/#/*
- .:[[routes]]
- get-value:x:@.routes
-
- // Replacing [[module-declarations]]
- set-value:x:@.dp/#/*
- strings.replace:x:@.dp/#/*
- .:[[module-declarations]]
- get-value:x:@.module-declarations
-
- // Replacing [[entry-components]]
- set-value:x:@.dp/#/*
- strings.replace:x:@.dp/#/*
- .:[[entry-components]]
- get-value:x:@.entry-components
-
-// Making sure we position our components correctly inside of our zip file.
-for-each:x:@.components/*
- set-value:x:@.dp/#
- strings.concat
- .:/
- get-value:x:@.arguments/*/name
- .:/src/app/components
- get-value:x:@.dp/#
-
-// Some template fields needs the name in to-lower form, without spaces.
-.name-lowers
-set-value:x:@.name-lowers
- strings.replace-not-of:x:@.arguments/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0987654321
- .:_
-
-/*
- * Iterating through each [.main-files] and doing substitutions
- * according to specifications and meta information.
- *
- * Notice, this is not a completely optimal approach, since according to the
- * way our template files are looking, we could further have optimised things slightly.
- *
- * However, to accommodate for future changes, such as for instance having the
- * name of the app in
- * any
- * file we wish, we do things this way, to make sure
- * we have a substitution process that is as flexible and generic as we possibly can.
- */
-for-each:x:@.main-files/*/*
-
- // Replacing all [[name]] occurrencies.
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- .:[[name]]
- get-value:x:@.arguments/*/name
-
- // Replacing all [[name-lowers]] occurrencies.
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- .:[[name-lowers]]
- get-value:x:@.name-lowers
-
- // Replacing all [[apiUrl]] occurrencies.
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- .:[[apiUrl]]
- get-value:x:@.arguments/*/apiUrl
-
- // Replacing all [[environmentDomain]] occurrencies.
- strings.split:x:@.arguments/*/apiUrl
- .:"://"
- strings.split:x:-/1
- .:/
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- .:[[environmentDomain]]
- get-value:x:@strings.split/0
-
- // Replacing all [[http-client-service-method-implementations]] occurrencies.
- set-value:x:@.dp/#
- strings.replace:x:@.dp/#
- .:[[http-client-service-method-implementations]]
- get-value:x:@.http-service-methods
-
-// Adding all generated files to return value.
-add:x:../*/.return-nodes
- get-nodes:x:@.main-files/*
-add:x:../*/.return-nodes
- get-nodes:x:@.components/*
-
-// Applying copyright, if given.
-if
- and
- not
- eq
- get-value:x:@.arguments/*/copyright
- .:
- not
- eq
- get-value:x:@.arguments/*/copyright
- .
- .lambda
-
- // Copyright notice was supplied.
- for-each:x:../*/.return-nodes/*
- if
- or
- strings.ends-with:x:@.dp/#
- .:.ts
- strings.ends-with:x:@.dp/#
- .:.js
- strings.ends-with:x:@.dp/#
- .:.css
- strings.ends-with:x:@.dp/#
- .:.scss
- strings.ends-with:x:@.dp/#
- .:.sass
- .lambda
-
- /*
- * Currently iterated file is of a type that can tolerate
- * having a copyright header comment.
- */
- set-value:x:@.dp/#/*
- strings.concat
- .:@"/*
-"
- .:" * "
- get-value:x:@.arguments/*/copyright
- .:@"
- */
-"
- get-value:x:@.dp/#/*
-
-/*
- * Iterating through each file in [.return-nodes] and making sure we only return
- * files we actually want.
- */
-for-each:x:../*/.return-nodes/*
- if
- and
- not
- strings.ends-with:x:@.dp/#
- .:.DS_Store
- not
- strings.ends-with:x:@.dp/#
- .:.jpeg
- not
- strings.ends-with:x:@.dp/#
- .:.png
- .lambda
- add:x:../*/return-nodes
- get-nodes:x:@.dp/#
-
-// Adding touch icons, first our smallest, then our larger icons.
-strings.concat
- .:/
- get-value:x:@.arguments/*/name
- .:/src/assets/apple-icon-57x57.png
-io.path.get-folder:x:@.filename
-strings.concat
- get-value:x:@io.path.get-folder
- .:templates/main/src/assets/apple-icon-57x57.png
-io.stream.open-file:x:@strings.concat
-io.stream.read:x:@io.stream.open-file
-io.stream.close:x:@io.stream.open-file
-unwrap:x:+/*/**
-add:x:../*/return-nodes
- .
- .:x:@strings.concat/@strings.concat
- .:x:@io.stream.read
-strings.concat
- .:/
- get-value:x:@.arguments/*/name
- .:/src/assets/apple-icon-72x72.png
-io.path.get-folder:x:@.filename
-strings.concat
- get-value:x:@io.path.get-folder
- .:templates/main/src/assets/apple-icon-72x72.png
-io.stream.open-file:x:@strings.concat
-io.stream.read:x:@io.stream.open-file
-io.stream.close:x:@io.stream.open-file
-unwrap:x:+/*/**
-add:x:../*/return-nodes
- .
- .:x:@strings.concat/@strings.concat
- .:x:@io.stream.read
-strings.concat
- .:/
- get-value:x:@.arguments/*/name
- .:/src/assets/apple-icon-128x128.png
-io.path.get-folder:x:@.filename
-strings.concat
- get-value:x:@io.path.get-folder
- .:templates/main/src/assets/apple-icon-128x128.png
-io.stream.open-file:x:@strings.concat
-io.stream.read:x:@io.stream.open-file
-io.stream.close:x:@io.stream.open-file
-unwrap:x:+/*/**
-add:x:../*/return-nodes
- .
- .:x:@strings.concat/@strings.concat
- .:x:@io.stream.read
-strings.concat
- .:/
- get-value:x:@.arguments/*/name
- .:/src/assets/apple-icon-144x144.png
-io.path.get-folder:x:@.filename
-strings.concat
- get-value:x:@io.path.get-folder
- .:templates/main/src/assets/apple-icon-144x144.png
-io.stream.open-file:x:@strings.concat
-io.stream.read:x:@io.stream.open-file
-io.stream.close:x:@io.stream.open-file
-unwrap:x:+/*/**
-add:x:../*/return-nodes
- .
- .:x:@strings.concat/@strings.concat
- .:x:@io.stream.read
-strings.concat
- .:/
- get-value:x:@.arguments/*/name
- .:/src/assets/logo-official.png
-io.path.get-folder:x:@.filename
-strings.concat
- get-value:x:@io.path.get-folder
- .:templates/main/src/assets/logo-official.png
-io.stream.open-file:x:@strings.concat
-io.stream.read:x:@io.stream.open-file
-io.stream.close:x:@io.stream.open-file
-unwrap:x:+/*/**
-add:x:../*/return-nodes
- .
- .:x:@strings.concat/@strings.concat
- .:x:@io.stream.read
-
-// Returning all generated files to caller.
-.return-nodes
-return-nodes
diff --git a/backend/files/misc/templates/angular/generator/generate-components.hl b/backend/files/misc/templates/angular/generator/generate-components.hl
deleted file mode 100644
index cfd8f16071..0000000000
--- a/backend/files/misc/templates/angular/generator/generate-components.hl
+++ /dev/null
@@ -1,1307 +0,0 @@
-
-/*
- * Internal helper file that creates our components according to
- * which endpoints we have at our disposal.
- *
- * The file will perform substitutions according to a [[xx]] pattern,
- * substituting values in our component templates, return a list of
- * substituted specialized template files, depending upon which arguments
- * you supply.
- *
- * The file expects [root-folder] argument being the root folder for the
- * generator template currently being used.
- */
-
-/*
- * This is our buffer element, and will contain all component
- * files, that are eventually returned to caller at the bottom
- * of the file.
- */
-.components
-
-/*
- * Loading form control file, that contains the declaration
- * for a single form control.
- */
-.form-control-file
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/misc/form-control.ts
-set-value:x:@.form-control-file
- io.file.load:x:@strings.concat
-
-/*
- * Loading column file, that contains the HTML markup for a single
- * column, including its specialized versions for specific types.
- */
-.column-file
- long
- date
- bool
- lookup
- image
- file
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/column/column.html
-set-value:x:@.column-file
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/column/column.long.html
-set-value:x:@.column-file/*/long
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/column/column.date.html
-set-value:x:@.column-file/*/date
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/column/column.bool.html
-set-value:x:@.column-file/*/bool
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/column/column.lookup.html
-set-value:x:@.column-file/*/lookup
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/column/column.image.html
-set-value:x:@.column-file/*/image
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/column/column.file.html
-set-value:x:@.column-file/*/file
- io.file.load:x:@strings.concat
-
-/*
- * Loading view details file, that contains the declaration
- * for viewing a single element's details, including its specialized versions
- * for specific types.
- */
-.view-details-file
- date
- bool
- lookup
- image
- file
- email
- url
- phone
- youtube
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.html
-set-value:x:@.view-details-file
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.date.html
-set-value:x:@.view-details-file/*/date
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.bool.html
-set-value:x:@.view-details-file/*/bool
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.lookup.html
-set-value:x:@.view-details-file/*/lookup
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.image.html
-set-value:x:@.view-details-file/*/image
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.file.html
-set-value:x:@.view-details-file/*/file
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.email.html
-set-value:x:@.view-details-file/*/email
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.url.html
-set-value:x:@.view-details-file/*/url
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.phone.html
-set-value:x:@.view-details-file/*/phone
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/view-details/view-details.youtube.html
-set-value:x:@.view-details-file/*/youtube
- io.file.load:x:@strings.concat
-
-/*
- * Loading form field file, that contains the input necessary to
- * edit a single column's value during editing, including its specializaed type overrides.
- */
-.form-field-file
- long
- textarea
- bool
- date
- decimal
- selector
- autocomplete
- image
- file
- username_lookup
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.html
-set-value:x:@.form-field-file
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.long.html
-set-value:x:@.form-field-file/*/long
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.decimal.html
-set-value:x:@.form-field-file/*/decimal
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.bool.html
-set-value:x:@.form-field-file/*/bool
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.date.html
-set-value:x:@.form-field-file/*/date
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.selector.html
-set-value:x:@.form-field-file/*/selector
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.autocomplete.html
-set-value:x:@.form-field-file/*/autocomplete
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.image.html
-set-value:x:@.form-field-file/*/image
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.file.html
-set-value:x:@.form-field-file/*/file
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.textarea.html
-set-value:x:@.form-field-file/*/textarea
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-field/form-field.username_lookup.html
-set-value:x:@.form-field-file/*/username_lookup
- io.file.load:x:@strings.concat
-
-/*
- * Loading form control instantiations file, that instantiates
- * a single form control somehow, including its specialized type versions.
- */
-.form-control-instantiation-file
- string
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-control-instantiations/form-control-instantiations.ts
-set-value:x:@.form-control-instantiation-file
- io.file.load:x:@strings.concat
-strings.concat
- get-value:x:@.arguments/*/root-folder
- .:templates/form-control-instantiations/form-control-instantiations.string.ts
-set-value:x:@.form-control-instantiation-file/*/string
- io.file.load:x:@strings.concat
-
-// Iterating through each CRUD method given.
-for-each:x:@.arguments/*/.crud-methods/*
-
- /*
- * Verifying CRUD endpoint have GET CRUD endpoint, otherwise
- * we don't create a component for it.
- */
- if
- exists:x:@.dp/#/*/verbs/*/get
- .lambda
-
- /*
- * Currently iterated endpoint can handle the GET verb, hence
- * at the minimum we should create a datagrid "view" component.
- */
- .substitutions
-
- // URL of endpoint we're currently encapsulating.
- endpoint-url
-
- // Primary keys for entity
- primary-keys:
-
- // Input to DELETE endpoint.
- delete-input:
-
- // Input to POST endpoint.
- create-input:
-
- // Input to PUT endpoint.
- update-input:
-
- // How many columns our table contains.
-
- // Notice, it always has at least one column, its delete-item column.
- container-count:int:1
-
- // All table column declarations. (normally HTML)
- ng-containers
-
- // View details for an entity. (normally HTML)
- view-details
-
- // A TypeScript list of strings, declaring which columns are visible in table.
- displayed-columns:
-
- // TypeScript fields/properties, declaring the columns.
- form-controls
-
- // Declaration for a single column. (normally HTML)
- form-fields
-
- // Instantiations for each above form field.
- form-controls-instantiations
-
- dates-to-format:
-
- // Setting the URL for our endpoint.
- set-value:x:@.substitutions/*/endpoint-url
- get-value:x:@.dp/#/*/url
-
- /*
- * Figuring out input to our DELETE method, which happens to
- * also be the primary keys for table - Hence setting primary
- * keys in the same operation.
- */
- for-each:x:@.dp/#/*/verbs/*/delete/*/input/*
- set-value:x:@.substitutions/*/primary-keys
- strings.concat
- get-value:x:@.substitutions/*/primary-keys
- .:", '"
- get-value:x:@.dp/#/*/name
- .:"'"
- set-value:x:@.substitutions/*/delete-input
- strings.concat
- get-value:x:@.substitutions/*/delete-input
- .:", '"
- get-value:x:@.dp/#/*/name
- .:"': el['"
- get-value:x:@.dp/#/*/name
- .:"']"
-
- // Trimming away additional ',' and ' ' characters.
- set-value:x:@.substitutions/*/delete-input
- strings.trim:x:@.substitutions/*/delete-input
- .:", "
- set-value:x:@.substitutions/*/primary-keys
- strings.trim:x:@.substitutions/*/primary-keys
- .:", "
-
- // Figuring out input to our POST method.
- for-each:x:@.dp/#/*/verbs/*/post/*/input/*
- set-value:x:@.substitutions/*/create-input
- strings.concat
- get-value:x:@.substitutions/*/create-input
- .:@",
- '"
- get-value:x:@.dp/#/*/name
- .:"'"
- set-value:x:@.substitutions/*/create-input
- strings.trim:x:@.substitutions/*/create-input
- .:", "
-
- // Figuring out input to our PUT method.
- for-each:x:@.dp/#/*/verbs/*/put/*/input/*
- set-value:x:@.substitutions/*/update-input
- strings.concat
- get-value:x:@.substitutions/*/update-input
- .:@",
- '"
- get-value:x:@.dp/#/*/name
- .:"'"
- set-value:x:@.substitutions/*/update-input
- strings.trim:x:@.substitutions/*/update-input
- .:", "
-
- /*
- * Now we know input to POST, PUT and DELETE endpoints.
- *
- * Now we can start creating our datagrid component, and our edit/create component.
- */
-
- /*
- * Dynamically creating our datagrid parts, and our form controls
- * for editing entities.
- *
- * Notice - We use the GET methods here to find out what columns to create for our
- * grids.
- */
- for-each:x:@.dp/#/*/verbs/*/get/*/output/*
-
- /*
- * Column exists in GET output, now we need to check if the column is
- * a primary key - At which point we only display the column if the URL
- * does NOT have a PUT verb, or the primary key is of type string. This is chosen
- * because URLs without PUT typically ONLY have primary key columns - Hence, if we
- * don't display primary keys for such endpoints, we have NOTHING to display.
- * Besides, such columns are also often foreign keys into other tables.
- *
- * Notice, if the column is a lookup it is ALWAYS displayed in the main grid.
- *
- * While also primary keys with type string is also typically a part of
- * the "main data" of the entity.
- *
- * Notice, even though we do not display primary keys by default in grid/table/view-details,
- * we still create a wrapper component/ng-container for these, because end user
- * might want to have the columns displayed depending upon requirements, and/or
- * specific tables, etc.
- */
- .should-display:bool:false
- strings.concat
- .:@.dp/#/./././*/delete/*/input/*/*/name/=
- get-value:x:@.dp/#/*/name
- .:/./*/type/=string
- strings.concat
- .:@.dp/#/./././*/delete/*/input/*/*/name/=
- get-value:x:@.dp/#/*/name
- set-x:x:+/+/0/1
- convert:x:@strings.concat/@strings.concat
- type:x
- set-x:x:+/0/0/0
- convert:x:@strings.concat
- type:x
- if
- or
- not
- exists
- exists
- not
- exists:x:@.dp/#/./././*/put
- exists:x:@.dp/#/*/lookup/*
- .lambda
-
- /*
- * Checking if there's another field that starts out with the column's name, followed by a ".",
- * implying it's a foreign key field, based upon currently iterated column - At which point we
- * do NOT display the column.
- */
- .is-foreign:bool:false
- for-each:x:@for-each/@.dp/#/*/verbs/*/get/*/output/*
- if
- strings.starts-with:x:@.dp/#/*/name
- strings.concat
- get-value:x:@for-each/@.dp/#/*/name
- .:.
- .lambda
-
- /*
- * Another output column starts with the name of currently iterated column, and
- * adds a "." followed by something more. This implies that this is a foreign key
- * field, and the column has already been displayed, or will be displayed in later
- * iterations, using it foreign table lookup field.
- *
- * We do NOT display such fields by default, but we create a form control in case
- * user wants to (easily) display these anyways.
- */
- set-value:x:@.is-foreign
- .:bool:true
- if
- eq
- get-value:x:@.is-foreign
- .:bool:false
- .lambda
-
- // Storing the fact of that this is a field we're interested in displaying.
- set-value:x:@.should-display
- .:bool:true
-
- // Making sure we increment colspan value.
- set-value:x:@.substitutions/*/container-count
- math.increment:x:@.substitutions/*/container-count
-
- // Appending currently iterated column to [displayed-columns]
- set-value:x:@.substitutions/*/displayed-columns
- strings.concat
- get-value:x:@.substitutions/*/displayed-columns
- .:@",
- '"
- get-value:x:@.dp/#/*/name
- .:"'"
-
- // Figuring out entire column name.
- .col-name-tmp
- if
- strings.contains:x:@.dp/#/*/name
- .:.
- .lambda
- set-value:x:@.col-name-tmp
- get-value:x:@.dp/#/*/name
- else
- set-value:x:@.col-name-tmp
- strings.concat
- get-value:x:@for-each/@.dp/#/*/database-name
- .:.
- get-value:x:@.dp/#/*/name
-
- /*
- * Finding filtering column in [input] for currently iterated [output] column.
- */
- .col-filter
- for-each:x:@.dp/@.dp/#/*/verbs/*/get/*/input/*
- if
- strings.ends-with:x:@.dp/#/*/name
- strings.concat
- get-value:x:@.dp/@.dp/#/*/name
- .:.like
- .lambda
- set-value:x:@.col-filter
- get-value:x:@.dp/#/*/name
- else-if
- and
- null:x:@.col-filter
- strings.ends-with:x:@.dp/#/*/name
- strings.concat
- get-value:x:@.dp/@.dp/#/*/name
- .:.eq
- .lambda
- set-value:x:@.col-filter
- get-value:x:@.dp/#/*/name
-
- /*
- * Checking if this is a lookup type of field, implying a foreign key into
- * another table.
- */
- .lookup:bool:false
- if
- exists:x:@.dp/#/*/lookup/*
- .lambda
-
- // Using the autocomplete component for our filtering control.
- set-value:x:@.lookup
- .:bool:true
- strings.replace:x:@.column-file/*/lookup
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- strings.replace:x:@strings.replace
- .:[[lookup_key]]
- get-value:x:@.dp/#/*/lookup/*/key
- strings.replace:x:@strings.replace
- .:[[lookup_name]]
- get-value:x:@.dp/#/*/lookup/*/name
- strings.replace:x:@strings.replace
- .:[[lookup_table]]
- get-value:x:@.dp/#/*/lookup/*/service
- strings.replace:x:@strings.replace
- .:[[lookup_table_with_namespace]]
- get-value:x:@.dp/#/*/lookup/*/table
- set-value:x:@.substitutions/*/ng-containers
- strings.concat
- get-value:x:@.substitutions/*/ng-containers
- get-value:x:@strings.replace
-
- // Applying correct changes to view-details parts.
- strings.replace:x:@.view-details-file/*/lookup
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- strings.replace:x:@strings.replace
- .:[[lookup_key]]
- get-value:x:@.dp/#/*/lookup/*/key
- strings.replace:x:@strings.replace
- .:[[lookup_name]]
- get-value:x:@.dp/#/*/lookup/*/name
- strings.replace:x:@strings.replace
- .:[[lookup_table]]
- get-value:x:@.dp/#/*/lookup/*/service
- strings.replace:x:@strings.replace
- .:[[lookup_table_with_namespace]]
- get-value:x:@.dp/#/*/lookup/*/table
- strings.replace:x:@strings.replace
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- get-value:x:@strings.replace
- else
-
- // Checking if this column should be displayed.
- if
- get-value:x:@.should-display
- .lambda
-
- /*
- * Appending currently iterated column to [view-details].
- *
- * Notice, some types have specialized implementations, such as for instance
- * date types, etc.
- */
- switch:x:@.dp/#/*/type
-
- // Date type.
- case:date
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- strings.replace:x:@.view-details-file/*/date
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Boolean type.
- case:bool
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- strings.replace:x:@.view-details-file/*/bool
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Default (anything not having a specialized implementation).
- default
- if
- eq:x:@.dp/#/*/handling
- .:image
- .lambda
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- strings.replace:x:@.view-details-file/*/image
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else-if
- eq:x:@.dp/#/*/handling
- .:file
- .lambda
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- strings.replace:x:@.view-details-file/*/file
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else-if
- eq:x:@.dp/#/*/handling
- .:email
- .lambda
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- strings.replace:x:@.view-details-file/*/email
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else-if
- eq:x:@.dp/#/*/handling
- .:url
- .lambda
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- strings.replace:x:@.view-details-file/*/url
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else-if
- eq:x:@.dp/#/*/handling
- .:youtube
- .lambda
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- strings.replace:x:@.view-details-file/*/youtube
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else-if
- eq:x:@.dp/#/*/handling
- .:phone
- .lambda
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- strings.replace:x:@.view-details-file/*/phone
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else
- set-value:x:@.substitutions/*/view-details
- strings.concat
- get-value:x:@.substitutions/*/view-details
- strings.replace:x:@.view-details-file
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- /*
- * Making sure we create a TypeScript instance of correct type to
- * hold our column.
- */
- set-value:x:@.substitutions/*/form-controls
- strings.concat
- get-value:x:@.substitutions/*/form-controls
- strings.replace:x:@.form-control-file
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
-
- /*
- * Making sure we correctly instantiate our TypeScript instance.
- *
- * Notice, some types have specialized implementations here.
- */
- switch:x:@.dp/#/*/type
-
- // String type.
- case:string
- strings.replace:x:@.form-control-instantiation-file/*/string
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-controls-instantiations
- strings.concat
- get-value:x:@.substitutions/*/form-controls-instantiations
- strings.replace:x:@strings.replace
- .:[[column-filter]]
- get-value:x:@.col-filter
-
- // Default (anything not having a specialized implementation).
- default
- strings.replace:x:@.form-control-instantiation-file
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-controls-instantiations
- strings.concat
- get-value:x:@.substitutions/*/form-controls-instantiations
- strings.replace:x:@strings.replace
- .:[[column-filter]]
- get-value:x:@.col-filter
-
- /*
- * Appending currently iterated column to [.ng-containers].
- *
- * Notice, some types have specialized implementations here.
- */
- switch:x:@.dp/#/*/type
-
- // Long type.
- case:long
- case:int
- strings.replace:x:@.column-file/*/long
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/ng-containers
- strings.concat
- get-value:x:@.substitutions/*/ng-containers
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Date type.
- case:date
- strings.replace:x:@.column-file/*/date
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/ng-containers
- strings.concat
- get-value:x:@.substitutions/*/ng-containers
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Bool type.
- case:bool
- strings.replace:x:@.column-file/*/bool
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/ng-containers
- strings.concat
- get-value:x:@.substitutions/*/ng-containers
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Default (anything not having a specialized implementation).
- default
- if
- eq:x:@.dp/#/*/handling
- .:image
- .lambda
- strings.replace:x:@.column-file/*/image
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/ng-containers
- strings.concat
- get-value:x:@.substitutions/*/ng-containers
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else-if
- eq:x:@.dp/#/*/handling
- .:file
- .lambda
- strings.replace:x:@.column-file/*/file
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/ng-containers
- strings.concat
- get-value:x:@.substitutions/*/ng-containers
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else
- strings.replace:x:@.column-file
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/ng-containers
- strings.concat
- get-value:x:@.substitutions/*/ng-containers
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Replacing full name.
- set-value:x:@.substitutions/*/ng-containers
- strings.replace:x:@.substitutions/*/ng-containers
- .:[[column-full-name]]
- get-value:x:@.col-name-tmp
-
- /*
- * Dynamically creating our editor component.
- *
- * Notice, this relies upon the combined input of both our
- * POST and PUT endpoint's input. Depending upon whether or not
- * it's a PUT or POST invocation, we'll hide some fields, depending upon
- * which input these different endpoints requires.
- */
- .form-fields
-
- // First adding PUT input to above [.form-fields].
- for-each:x:@.dp/#/*/verbs/*/put/*/input/*
- add:x:@.form-fields
- get-nodes:x:@.dp/#
-
- /*
- * Then adding POST input to above [.form-fields], making sure
- * we don't add fields already existing in PUT input.
- */
- for-each:x:@.dp/#/*/verbs/*/post/*/input/*
-
- // Checking if above PUT loop already added currently iterated field.
- .exists:bool:false
- for-each:x:@.form-fields/*
- if
- eq
- get-value:x:@.dp/#/*/name
- get-value:x:@for-each/@.dp/#/*/name
- .lambda
- set-value:x:@.exists
- .:bool:true
- if
- not
- get-value:x:@.exists
- .lambda
- add:x:@.form-fields
- get-nodes:x:@.dp/#
-
- /*
- * Looping through combined input fields of both PUT and POST, to create
- * our edit/create form fields.
- *
- * Notice, we don't create form fields for anything that's an input field
- * to our DELETE endpoint, since it's a primary key.
- */
- for-each:x:@.form-fields/*
-
- /*
- * Checking if this is a selector type of field, implying a foreign key into
- * another table.
- */
- if
- exists:x:@.dp/#/*/lookup
- .lambda
-
- /*
- * Figuring out service method name, which is the last parts
- * of the entity's table name, due to schemas namespacing tables.
- */
- strings.split:x:@.dp/#/*/lookup/*/table
- .:.
-
- // Figuring out if this is a long dataset or not.
- if
- eq
- get-value:x:@.dp/#/*/lookup/*/long
- .:bool:true
- .lambda
-
- // Using the autocomplete component for our edit/create modal dialog.
- strings.replace:x:@.form-field-file/*/autocomplete
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- strings.replace:x:@strings.replace
- .:[[lookup_key]]
- get-value:x:@.dp/#/*/lookup/*/key
- strings.replace:x:@strings.replace
- .:[[lookup_name]]
- get-value:x:@.dp/#/*/lookup/*/name
- strings.replace:x:@strings.replace
- .:[[lookup_table]]
- get-value:x:@.dp/#/*/lookup/*/service
- strings.replace:x:@strings.replace
- .:[[lookup_table_with_namespace]]
- get-value:x:@.dp/#/*/lookup/*/table
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- get-value:x:@strings.replace
- else
-
- // Using the selector component for our edit/create modal dialog.
- strings.replace:x:@.form-field-file/*/selector
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- strings.replace:x:@strings.replace
- .:[[lookup_key]]
- get-value:x:@.dp/#/*/lookup/*/key
- strings.replace:x:@strings.replace
- .:[[lookup_name]]
- get-value:x:@.dp/#/*/lookup/*/name
- strings.replace:x:@strings.replace
- .:[[lookup_table]]
- get-value:x:@.dp/#/*/lookup/*/service
- strings.replace:x:@strings.replace
- .:[[lookup_table_with_namespace]]
- get-value:x:@.dp/#/*/lookup/*/table
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- get-value:x:@strings.replace
- else
-
- /*
- * Not a foreign key, figuring out its type.
- *
- * We can now safely create a form control for currently iterated [.form-fields] instance.
- * Making sure we correctly create our HTML markup for edit/create component.
- *
- * Notice, some types have specialized implementations here.
- */
- switch:x:@.dp/#/*/type
-
- // Long type.
- case:long
- case:int
- strings.replace:x:@.form-field-file/*/long
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Decimal type.
- case:decimal
- strings.replace:x:@.form-field-file/*/decimal
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Boolean type.
- case:bool
- strings.replace:x:@.form-field-file/*/bool
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Date type.
- case:date
- strings.replace:x:@.form-field-file/*/date
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- set-value:x:@.substitutions/*/dates-to-format
- strings.concat
- get-value:x:@.substitutions/*/dates-to-format
- .:"'"
- get-value:x:@.dp/#/*/name
- .:"', "
-
- // Default (anything not having a specialized implementation).
- default
- if
- eq:x:@.dp/#/*/handling
- .:image
- .lambda
- strings.replace:x:@.form-field-file/*/image
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else-if
- eq:x:@.dp/#/*/handling
- .:textarea
- .lambda
- strings.replace:x:@.form-field-file/*/textarea
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else-if
- eq:x:@.dp/#/*/handling
- .:file
- .lambda
- strings.replace:x:@.form-field-file/*/file
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@strings.replace
- strings.replace:x:@.form-field-file/*/file
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else-if
- eq:x:@.dp/#/*/handling
- .:username_lookup
- .lambda
- strings.replace:x:@.form-field-file/*/username_lookup
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
- else
- strings.replace:x:@.form-field-file
- .:[[form-control-name]]
- strings.replace-not-of:x:@.dp/#/*/name
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
- .:_
- set-value:x:@.substitutions/*/form-fields
- strings.concat
- get-value:x:@.substitutions/*/form-fields
- strings.replace:x:@strings.replace
- .:[[column-name]]
- get-value:x:@.dp/#/*/name
-
- // Adding "delete-instance" to [displayed-columns]
- set-value:x:@.substitutions/*/displayed-columns
- strings.concat
- get-value:x:@.substitutions/*/displayed-columns
- .:@",
- 'delete-instance'"
-
- /*
- * Making sure we remove redundant commas and spaces
- * from [.substitutions]/[displayed-columns].
- *
- * Notice, this has to be done, not only to remove additional characters
- * at the end of the string, but also at the BEGINNING of the string.
- */
- set-value:x:@.substitutions/*/displayed-columns
- strings.trim:x:@.substitutions/*/displayed-columns
- .:@",
-"
-
- // Iterating through each component file, to do our substitutions.
- for-each:x:@.arguments/*/.component-files/*
-
- // Replacing [[component-folder]].
- strings.replace:x:@.dp/#
- .:[[component-folder]]
- get-value:x:@.lambda/@.dp/#/*/component-folder
-
- // Replacing [[component-filename]].
- strings.replace:x:@strings.replace
- .:[[component-filename]]
- get-value:x:@.lambda/@.dp/#/*/component-filename
-
- // Buffer to hold component's filename.
- unwrap:x:+
- .filename:x:@strings.replace
-
- // Replacing [[component-header]].
- strings.replace:x:@.dp/#/*
- .:[[component-header]]
- get-value:x:@.lambda/@.dp/#/*/component-header
-
- // Replacing [[form-fields]].
- strings.replace:x:@strings.replace
- .:[[form-fields]]
- get-value:x:@.substitutions/*/form-fields
-
- // Replacing [[delete-input]].
- strings.replace:x:@strings.replace
- .:[[delete-input]]
- get-value:x:@.substitutions/*/delete-input
-
- // Replacing [[primary-keys]].
- strings.replace:x:@strings.replace
- .:[[primary-keys]]
- get-value:x:@.substitutions/*/primary-keys
-
- // Replacing [[dates-to-format]].
- strings.replace:x:@strings.replace
- .:[[dates-to-format]]
- strings.trim:x:@.substitutions/*/dates-to-format
- .:", "
-
- // Replacing [[create-input]].
- strings.replace:x:@strings.replace
- .:[[create-input]]
- get-value:x:@.substitutions/*/create-input
-
- // Replacing [[update-input]].
- strings.replace:x:@strings.replace
- .:[[update-input]]
- get-value:x:@.substitutions/*/update-input
-
- // Replacing [[ng-containers]].
- strings.replace:x:@strings.replace
- .:[[ng-containers]]
- get-value:x:@.substitutions/*/ng-containers
-
- // Replacing [[view-details]].
- strings.replace:x:@strings.replace
- .:[[view-details]]
- get-value:x:@.substitutions/*/view-details
-
- // Replacing [[colspan]].
- strings.replace:x:@strings.replace
- .:[[colspan]]
- get-value:x:@.substitutions/*/container-count
-
- // Replacing [[component-filename]].
- strings.replace:x:@strings.replace
- .:[[component-filename]]
- strings.concat
- get-value:x:@.lambda/@.dp/#/*/component-filename
-
- // Replacing [[component-name]].
- strings.replace:x:@strings.replace
- .:[[component-name]]
- get-value:x:@.lambda/@.dp/#/*/component-name
-
- // Replacing [[component-selector]].
- strings.replace:x:@strings.replace
- .:[[component-selector]]
- get-value:x:@.lambda/@.dp/#/*/component-selector
-
- // Replacing [[displayed-columns]].
- strings.replace:x:@strings.replace
- .:[[displayed-columns]]
- get-value:x:@.substitutions/*/displayed-columns
-
- // Replacing [[endpoint-url]].
- strings.replace:x:@strings.replace
- .:[[endpoint-url]]
- get-value:x:@.substitutions/*/endpoint-url
-
- // Replacing [[crud-entity]].
- strings.replace:x:@strings.replace
- .:[[crud-entity]]
- strings.replace:x:@.lambda/@.dp/#/*/component-folder
- .:/
- .:_
-
- // Appending our actual form controls into our TypeScript file.
- strings.replace:x:@strings.replace
- .:[[form-control-declarations]]
- get-value:x:@.substitutions/*/form-controls
-
- // Appending our actual control instantiations into our TypeScript file.
- strings.replace:x:@strings.replace
- .:[[form-control-instantiations]]
- get-value:x:@.substitutions/*/form-controls-instantiations
-
- // Appending our HTTP client service GET method name into TypeScript file.
- strings.replace:x:@strings.replace
- .:[[service-get-method]]
- get-value:x:@.lambda/@.dp/#/*/verbs/*/get/*/service-method-name
-
- /*
- * Appending our HTTP client service DELETE method name into TypeScript file,
- * if it exists - otherwise making sure method simply throws exception.
- */
- .delete-method
- if
- exists:x:@.lambda/@.dp/#/*/verbs/*/delete/*/service-method-name
- .lambda
- set-value:x:@.delete-method
- strings.replace:x:@strings.replace
- .:[[service-delete-method]]
- strings.concat
- .:return this.httpService.
- get-value:x:@if/@.lambda/@.dp/#/*/verbs/*/delete/*/service-method-name
- .:(ids);
- else
- set-value:x:@.delete-method
- strings.replace:x:@strings.replace
- .:[[service-delete-method]]
- .:"return throwError('No HTTP DELETE service method exists for entity');"
-
- /*
- * Appending our HTTP client service DELETE method name into TypeScript file,
- * if it exists - otherwise making sure method simply throws exception.
- */
- .create-method
- if
- exists:x:@.lambda/@.dp/#/*/verbs/*/post/*/service-method-name
- .lambda
-
- // Adding HTTP POST method invocation for entity.
- set-value:x:@.create-method
- strings.replace:x:@.delete-method
- .:[[service-create-method]]
- strings.concat
- .:return this.service.
- get-value:x:@if/@.lambda/@.dp/#/*/verbs/*/post/*/service-method-name
- .:(this.data.entity);
- else
- set-value:x:@.create-method
-
- // No HTTP POST method exists for entity.
- strings.replace:x:@.delete-method
- .:[[service-create-method]]
- .:"return throwError('No HTTP POST service method exists for entity');"
-
- // Appending our HTTP client service COUNT method name into TypeScript file.
- strings.replace:x:@.create-method
- .:[[service-count-method]]
- get-value:x:@.lambda/@.dp/#/*/count-method
-
- /*
- * Appending our HTTP client service PUT method name into TypeScript file.
- *
- * Notice, some endpoints might not have a PUT method. If they don't we'll
- * have to make sure we don't add any getUpdateMethod to the edit component,
- * at which point the base method will kick in, and return an error in case
- * method is invoked - Which should be impossible for the record, but since
- * there might exist situations where the endpoint is later added, and the
- * scaffolded Angular code is modified, to later include such an endpoint,
- * we still generate an edit component for endpoints - Even those that don't
- * even have a PUT method.
- */
- if
- exists:x:@.lambda/@.dp/#/*/verbs/*/put
- .lambda
-
- // PUT method exists for component.
- set-value:x:@strings.replace
- strings.replace:x:@strings.replace
- .:[[service-update-wrapper]]
- strings.concat
- .:@"
- /**
- * Returns a reference to the update method, to update entity.
- */
- protected getUpdateMethod() {
- return this.service."
- get-value:x:@.lambda/@.lambda/@.dp/#/*/verbs/*/put/*/service-method-name
- .:@"(this.data.entity);
- }"
- else
-
- /*
- * No PUT method for component, hence not adding getUpdateMethod method
- * on edit component.
- */
- set-value:x:@strings.replace
- strings.replace:x:@strings.replace
- .:[[service-update-wrapper]]
- .:
-
- // Buffer to hold component's content.
- unwrap:x:+
- .content:x:@strings.replace
-
- /*
- * Adding finished component to [.components] node, that is
- * returned to caller after file is done evaluating.
- */
- unwrap:x:+/+/*/*
- unwrap:x:+/*/*/*
- add:x:@.components
- .
- :x:@.filename
- :x:@.content
-
-// Returns results to caller.
-return-nodes:x:@.components/*
diff --git a/backend/files/misc/templates/angular/templates/column/column.bool.html b/backend/files/misc/templates/angular/templates/column/column.bool.html
deleted file mode 100644
index 877f800958..0000000000
--- a/backend/files/misc/templates/angular/templates/column/column.bool.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
- {{'[[column-name]]' | translate}}
-
- search
-
-
- {{getSortIcon('[[column-full-name]]')}}
-
-
-
- check
-
-
diff --git a/backend/files/misc/templates/angular/templates/column/column.date.html b/backend/files/misc/templates/angular/templates/column/column.date.html
deleted file mode 100644
index b8cbae7afd..0000000000
--- a/backend/files/misc/templates/angular/templates/column/column.date.html
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- {{'[[column-name]]' | translate}}
-
- search
-
-
- {{getSortIcon('[[column-full-name]]')}}
-
-
- {{el['[[column-name]]'] | formatDate}}
-
diff --git a/backend/files/misc/templates/angular/templates/column/column.file.html b/backend/files/misc/templates/angular/templates/column/column.file.html
deleted file mode 100644
index 3787dc77c4..0000000000
--- a/backend/files/misc/templates/angular/templates/column/column.file.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- {{el['[[column-name]]'] ? el['[[column-name]]'].substring(0, el['[[column-name]]'].indexOf(';')) : ''}}
-
diff --git a/backend/files/misc/templates/angular/templates/column/column.html b/backend/files/misc/templates/angular/templates/column/column.html
deleted file mode 100644
index 235f76cc97..0000000000
--- a/backend/files/misc/templates/angular/templates/column/column.html
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- {{'[[column-name]]' | translate}}
-
- search
-
-
- {{getSortIcon('[[column-full-name]]')}}
-
-
- {{el['[[column-name]]']}}
-
diff --git a/backend/files/misc/templates/angular/templates/column/column.image.html b/backend/files/misc/templates/angular/templates/column/column.image.html
deleted file mode 100644
index 78ff59dc98..0000000000
--- a/backend/files/misc/templates/angular/templates/column/column.image.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- {{'Expand ...' | translate}}
-
diff --git a/backend/files/misc/templates/angular/templates/column/column.long.html b/backend/files/misc/templates/angular/templates/column/column.long.html
deleted file mode 100644
index d024941437..0000000000
--- a/backend/files/misc/templates/angular/templates/column/column.long.html
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- {{'[[column-name]]' | translate}}
-
- search
-
-
- {{getSortIcon('[[column-full-name]]')}}
-
-
- {{el['[[column-name]]']}}
-
diff --git a/backend/files/misc/templates/angular/templates/column/column.lookup.html b/backend/files/misc/templates/angular/templates/column/column.lookup.html
deleted file mode 100644
index e1fa9df003..0000000000
--- a/backend/files/misc/templates/angular/templates/column/column.lookup.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
- {{ getSortIcon('[[column-full-name]]') }}
-
-
-
- {{ getCachedItem('[[lookup_table]]', el['[[column-name]]'], '[[lookup_key]].eq', httpService.[[lookup_table]], '[[lookup_name]]') }}
-
-
diff --git a/backend/files/misc/templates/angular/templates/component/component.html b/backend/files/misc/templates/angular/templates/component/component.html
deleted file mode 100644
index ea2cfa9f9f..0000000000
--- a/backend/files/misc/templates/angular/templates/component/component.html
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
- add_circle
-
-
-
-[[ng-containers]]
-
-
-
-
-
- delete
-
-
-
-
-
-
-
-
- edit
-
-[[view-details]]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/component/component.scss b/backend/files/misc/templates/angular/templates/component/component.scss
deleted file mode 100644
index a29188b75a..0000000000
--- a/backend/files/misc/templates/angular/templates/component/component.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-::ng-deep .error-snackbar {
- background:rgb(255,100,100);
- color:rgb(0,0,0);
-}
-
-app-magic-image-view {
- display: block;
- width: 100%;
-}
-
-.database-image {
- max-width: 100%;
-}
diff --git a/backend/files/misc/templates/angular/templates/component/component.ts b/backend/files/misc/templates/angular/templates/component/component.ts
deleted file mode 100644
index b190a52175..0000000000
--- a/backend/files/misc/templates/angular/templates/component/component.ts
+++ /dev/null
@@ -1,172 +0,0 @@
-
-// Angular specific components
-import { throwError } from 'rxjs';
-import { Component, OnInit, ViewChild } from '@angular/core';
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { GridComponent } from '@app/base/grid.component';
-import { MatPaginator } from '@angular/material/paginator';
-import { MatDialog } from '@angular/material/dialog';
-import { FormControl } from '@angular/forms';
-import { DomSanitizer } from '@angular/platform-browser';
-import {
- trigger,
- state,
- style,
- transition,
- animate
-} from '@angular/animations';
-
-// Application specific components
-import { Edit[[component-name]] } from './modals/edit.[[component-filename]]';
-import { HttpService } from 'src/app/services/http-service';
-import { AuthService } from 'src/app/services/auth-service';
-
-/**
- * "Datagrid" component for displaying instance of [[component-header]]
- * entities from your HTTP REST backend.
- */
-@Component({
- selector: '[[component-selector]]',
- templateUrl: './[[component-filename]].html',
- styleUrls: ['./[[component-filename]].scss'],
- animations: [
- trigger('detailExpand', [
- state('collapsed', style({height: '0px', opacity: '0'})),
- state('expanded', style({height: '*', opacity: '1'})),
- transition('expanded <=> collapsed', animate('0.75s cubic-bezier(0.4, 0.0, 0.2, 1)')),
- ])
- ]
-})
-export class [[component-name]] extends GridComponent implements OnInit {
-
- /**
- * Which columns we should display. Reorder to prioritize columns differently.
- * Notice! 'delete-instance' should always come last.
- */
- public displayedColumns: string[] = [
- [[displayed-columns]]
- ];
-
- /**
- * What element is currently expanded.
- */
- public expandedElement: any | null;
-
-
- // Need to view paginator as a child to update page index of it.
- @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;
-
- // Form control declarations to bind up with reactive form elements.
-[[form-control-declarations]]
-
- /**
- * Creates an instance of your CRUD component.
- *
- * @param httpService Needed to be able to invoke backend during CRUD operations
- * @param authService Needed to check if user has access to invoking CRUD operation
- * @param snackBar Needed to display errror and feedback
- * @param dialog Needed to show modal dialog as user edits or creates new entities
- * @param sanitizer Needed to be able to dynamically display iframes
- */
- constructor(
- public httpService: HttpService,
- public authService: AuthService,
- protected snackBar: MatSnackBar,
- protected dialog: MatDialog,
- protected sanitizer: DomSanitizer) {
- super(authService, snackBar, dialog, sanitizer);
- }
-
- /**
- * Overridde abstract method necessary to return the URL endpoint
- * for CRUD methods to base class.
- */
- public entityBaseUrl() {
- return '[[endpoint-url]]';
- }
-
- /**
- * Overridden abstract method from base class, that returns the Observable
- * necessary to actually retrieve items from backend.
- */
- protected read(filter: any) {
- return this.httpService.[[service-get-method]](filter);
- }
-
- /**
- * Overridden abstract method from base class, that returns the Observable
- * necessary to actually retrieve count of items from backend.
- */
- protected count(filter: any) {
- return this.httpService.[[service-count-method]](filter);
- }
-
- /**
- * Overridden abstract method from base class, that returns the Observable
- * necessary to actually delete items in backend.
- */
- protected delete(ids: any) {
- [[service-delete-method]]
- }
-
- /**
- * Implementation of abstract base class method, to reset paginator
- * of component.
- */
- protected resetPaginator() {
- this.paginator.pageIndex = 0;
- this.filter.offset = 0;
- }
-
- /**
- * OnInit implementation. Retrieves initial data (unfiltered),
- * and instantiates our FormControls.
- */
- public ngOnInit() {
-
- // Retrieves data from our backend, unfiltered, and binds our mat-table accordingly.
- this.getData();
-
- /*
- * Creating our filtering FormControl instances, which gives us "live filtering"
- * on our columns.
- */
-[[form-control-instantiations]] }
-
- /**
- * Invoked when user wants to edit an entity
- *
- * This will show a modal dialog, allowing the user to edit his record.
- */
- public editEntity(entity: any) {
-
- const dialogRef = this.dialog.open(Edit[[component-name]], {
- data: this.getEditData(entity)
- });
- dialogRef.afterClosed().subscribe(res => {
- if (res) {
- this.setEditData(res, entity);
- }
- });
- }
-
- /**
- * Invoked when user wants to create a new entity
- *
- * This will show a modal dialog, allowing the user to supply
- * the initial data for the entity.
- */
- public createEntity() {
-
- const dialogRef = this.dialog.open(Edit[[component-name]], {
- data: {
- isEdit: false,
- entity: {},
- }});
- dialogRef.afterClosed().subscribe((res: any) => {
- if (res) {
- this.itemCreated(res);
- }
- });
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/component/modals/edit.component.html b/backend/files/misc/templates/angular/templates/component/modals/edit.component.html
deleted file mode 100644
index 52edc6b8fe..0000000000
--- a/backend/files/misc/templates/angular/templates/component/modals/edit.component.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
diff --git a/backend/files/misc/templates/angular/templates/component/modals/edit.component.ts b/backend/files/misc/templates/angular/templates/component/modals/edit.component.ts
deleted file mode 100644
index c3175bc568..0000000000
--- a/backend/files/misc/templates/angular/templates/component/modals/edit.component.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-import { throwError } from 'rxjs';
-import { Component, Inject } from '@angular/core';
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
-import { HttpService } from 'src/app/services/http-service';
-import { DialogComponent, DialogData } from '@app/base/dialog.component';
-
-/**
- * Modal dialog for editing your existing [[component-header]] entity types, and/or
- * creating new entity types of type [[component-header]].
- */
-@Component({
- templateUrl: './edit.[[component-filename]].html'
-})
-export class Edit[[component-name]] extends DialogComponent {
-
- /**
- * Constructor taking a bunch of services injected using dependency injection.
- */
- constructor(
- public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data: DialogData,
- protected snackBar: MatSnackBar,
- public service: HttpService) {
- super(snackBar);
- this.primaryKeys = [[[primary-keys]]];
- this.createColumns = [[[create-input]]
- ];
- this.updateColumns = [[[update-input]]
- ];
- const datesToFormat: string[] = [[[dates-to-format]]];
- for (let idx of datesToFormat) {
- if (this.data.entity[idx]) {
- if (typeof this.data.entity[idx] === 'string') {
- if ((this.data.entity[idx]).indexOf('+') === -1 && (this.data.entity[idx]).indexOf('Z') === -1) {
- this.data.entity[idx] += 'Z';
- }
- }
- this.data.entity[idx] = new Date(this.data.entity[idx]);
- }
- }
- }
-
- /**
- * Returns a reference to ths DialogData that was dependency injected
- * into component during creation.
- */
- protected getData() {
- return this.data;
- }
- [[service-update-wrapper]]
- /**
- * Returns a reference to the create method, to create new entities.
- */
- protected getCreateMethod() {
- [[service-create-method]]
- }
-
- /**
- * Closes dialog.
- *
- * @param data Entity that was created or updated
- */
- public close(data: any) {
- if (data) {
- this.dialogRef.close(data);
- } else {
- this.dialogRef.close();
- }
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/form-control-instantiations/form-control-instantiations.string.ts b/backend/files/misc/templates/angular/templates/form-control-instantiations/form-control-instantiations.string.ts
deleted file mode 100644
index 041562b043..0000000000
--- a/backend/files/misc/templates/angular/templates/form-control-instantiations/form-control-instantiations.string.ts
+++ /dev/null
@@ -1 +0,0 @@
- this._[[form-control-name]] = this.createFormControl('[[column-filter]]');
diff --git a/backend/files/misc/templates/angular/templates/form-control-instantiations/form-control-instantiations.ts b/backend/files/misc/templates/angular/templates/form-control-instantiations/form-control-instantiations.ts
deleted file mode 100644
index 041562b043..0000000000
--- a/backend/files/misc/templates/angular/templates/form-control-instantiations/form-control-instantiations.ts
+++ /dev/null
@@ -1 +0,0 @@
- this._[[form-control-name]] = this.createFormControl('[[column-filter]]');
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.autocomplete.html b/backend/files/misc/templates/angular/templates/form-field/form-field.autocomplete.html
deleted file mode 100644
index c3d9ec9475..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.autocomplete.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.bool.html b/backend/files/misc/templates/angular/templates/form-field/form-field.bool.html
deleted file mode 100644
index 66862adea2..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.bool.html
+++ /dev/null
@@ -1,7 +0,0 @@
- [[column-name]]
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.date.html b/backend/files/misc/templates/angular/templates/form-field/form-field.date.html
deleted file mode 100644
index 214c61bf66..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.date.html
+++ /dev/null
@@ -1,23 +0,0 @@
-
- {{'[[column-name]]' | translate}}
-
-
- calendar_today
-
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.decimal.html b/backend/files/misc/templates/angular/templates/form-field/form-field.decimal.html
deleted file mode 100644
index 234092d525..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.decimal.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
- {{'[[column-name]]' | translate}}
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.file.html b/backend/files/misc/templates/angular/templates/form-field/form-field.file.html
deleted file mode 100644
index 8497546cce..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.file.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.html b/backend/files/misc/templates/angular/templates/form-field/form-field.html
deleted file mode 100644
index c5ec3153dc..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
- {{'[[column-name]]' | translate}}
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.image.html b/backend/files/misc/templates/angular/templates/form-field/form-field.image.html
deleted file mode 100644
index ae2a431741..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.image.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.long.html b/backend/files/misc/templates/angular/templates/form-field/form-field.long.html
deleted file mode 100644
index fe6a7a279d..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.long.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
- {{'[[column-name]]' | translate}}
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.selector.html b/backend/files/misc/templates/angular/templates/form-field/form-field.selector.html
deleted file mode 100644
index 43a308050e..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.selector.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.textarea.html b/backend/files/misc/templates/angular/templates/form-field/form-field.textarea.html
deleted file mode 100644
index ef1e8618cc..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.textarea.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
- {{'[[column-name]]' | translate}}
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/form-field/form-field.username_lookup.html b/backend/files/misc/templates/angular/templates/form-field/form-field.username_lookup.html
deleted file mode 100644
index f72a8a8a0a..0000000000
--- a/backend/files/misc/templates/angular/templates/form-field/form-field.username_lookup.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/.config b/backend/files/misc/templates/angular/templates/main/.config
deleted file mode 100644
index 563c4803c9..0000000000
--- a/backend/files/misc/templates/angular/templates/main/.config
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-/*
- * Configuration for file resolver in Magic.
- *
- * Notice, by default we're publicly caching all static files for 5 minutes.
- * This allows proxies and CDN networks to deliver the files directly, without
- * having to touch the Magic server itself.
- */
-static_files
- headers
- *
- Cache-Control:public, max-age=300
-spa_enabled:true
diff --git a/backend/files/misc/templates/angular/templates/main/.github/workflows/deploy-to-cloudlet.yml b/backend/files/misc/templates/angular/templates/main/.github/workflows/deploy-to-cloudlet.yml
deleted file mode 100644
index ff1caaa463..0000000000
--- a/backend/files/misc/templates/angular/templates/main/.github/workflows/deploy-to-cloudlet.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: CI and CD pipeline deploying app to your cloudlet
-on:
- push:
- branches: [ master, main ]
-jobs:
- deploy:
- runs-on: ubuntu-latest
- container: node:16
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
- - name: Set permissions
- run: chmod -R 777 ./
- - name: Build
- run: npm i && npm run build
- - name: Archive
- if: success()
- uses: vimtor/action-zip@v1
- with:
- files: ./dist/
- dest: archive.zip
- - name: Check Files
- run: ls -a && pwd
- - name: Deploy
- if: success()
- uses: fjogeleit/http-request-action@v1
- with:
- url: '[[apiUrl]]magic/system/file-system/overwrite-folder'
- method: 'PUT'
- customHeaders: '{
- "Content-Type": "multipart/form-data",
- "Authorization": "Bearer ${{ secrets.TOKEN }}"
- }'
- data: '{"folder": "/etc/www/"}'
- files: '{"file": "/__w/[[name]]/[[name]]/archive.zip"}'
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/README.md b/backend/files/misc/templates/angular/templates/main/README.md
deleted file mode 100644
index ea8a9eab60..0000000000
--- a/backend/files/misc/templates/angular/templates/main/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-
-# Generated by AINIRO.IO
-
-This application was automatically generated with [AINIRO Magic Cloud](https://ainiro.io).
-It features easy translation into your language(s) of choice, and provides a default starter-kit for your CRUD
-apps. Notice, to create _"an app"_ out of this website, just click the
-bookmark button on your phone, and choose _"Add to home screen"_, and it will behave more or less exactly like
-a native app, as long as the user has an internet connection. In the _"helpers"_ folder you can find
-several helper components, allowing you to change any aspect of your entity fields, to for instance provide
-file upload, image capturing, etc. These are as follows.
-
-* __magic-autocomplete__ - Helps you when creating new entities when a field in your entity is referencing another field in another table. Useful for larger datasets.
-* __magic-file__ - Helps you when creating new entities when a field in your entity should be wrapping a file physically on disc in your backend, as in uploading files and associate these with data entities.
-* __magic-file-view__ - Helps you when viewing an entity and downloading an associated file when a field is wrapping a physical file.
-* __magic-filter__ - Helps you create filtering controls when a field in an item is referencing another field in another table.
-* __magic-image__ - Same as the magic-file, except it allows you to upload images specifically, and will automatically resize your images if you want it to.
-* __magic-image-view__ - The equivalent of the magic-file component, except it will display images inline on your form.
-* __magic-selector__ - The same as magic-autocomplete but will create a select dropdown list instead of an autocompleter and hence is more useful for smaller datasets.
-
-All of the above custom components are fairly well documented in the TypeScript files, and you can easily include them
-as you see fit in your own applications. Besides from the above special components, everything in this template is
-plain and standard Angular components, besides the occassional 3rd party component, used to for instance allow
-the user to pick a date and time, etc. The latter are open source libraries you can find documentation for if
-you search for your component's name.
-
-This project also allows you to easily integrate CI and CD on your code, automatically deploying new versions to
-your cloudlet as changes are pushed to a GitHub repository containing your code.
-
-## Start your app locally
-
-1. Open a terminal window in this folder
-2. Execute `npm link`
-3. Execute `ng serve --port 4202`
-4. Open a browser window at [localhost:4202](http://localhost:4202)
-
-## Automatically deploying the app to your cloudlet
-
-1. Import the app's code to a GitHub repository
-2. Generate a token using your Magic Dashboard and add as a secret `TOKEN` to your GitHub repository
-3. Every time you now push changes to your GitHub master or main branch a new version will be automatically deployed
-
-* [Read more about AINIRO.IO here](https://ainiro.io)
-
diff --git a/backend/files/misc/templates/angular/templates/main/angular.json b/backend/files/misc/templates/angular/templates/main/angular.json
deleted file mode 100644
index 0ecef183f5..0000000000
--- a/backend/files/misc/templates/angular/templates/main/angular.json
+++ /dev/null
@@ -1,140 +0,0 @@
-{
- "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
- "version": 1,
- "newProjectRoot": "projects",
- "projects": {
- "[[name]]": {
- "projectType": "application",
- "schematics": {
- "@schematics/angular:component": {
- "style": "scss"
- }
- },
- "root": "",
- "sourceRoot": "src",
- "prefix": "app",
- "architect": {
- "build": {
- "builder": "@angular-devkit/build-angular:browser",
- "options": {
- "outputPath": "dist",
- "index": "src/index.html",
- "main": "src/main.ts",
- "polyfills": "src/polyfills.ts",
- "tsConfig": "tsconfig.app.json",
- "aot": true,
- "assets": [
- "src/robots.txt",
- "src/assets"
- ],
- "styles": [
- "src/main.scss"
- ],
- "scripts": []
- },
- "configurations": {
- "production": {
- "optimization": true,
- "outputHashing": "all",
- "sourceMap": false,
- "namedChunks": false,
- "extractLicenses": true,
- "vendorChunk": false,
- "buildOptimizer": true,
- "budgets": [
- {
- "type": "initial",
- "maximumWarning": "2mb",
- "maximumError": "5mb"
- },
- {
- "type": "anyComponentStyle",
- "maximumWarning": "6kb",
- "maximumError": "10kb"
- }
- ],
- "fileReplacements": [
- {
- "replace": "src/environments/environment.ts",
- "with": "src/environments/environment.prod.ts"
- }
- ]
- },
- "ci": {
- "progress": false
- }
- }
- },
- "serve": {
- "builder": "@angular-devkit/build-angular:dev-server",
- "options": {
- "browserTarget": "[[name]]:build"
- },
- "configurations": {
- "production": {
- "browserTarget": "[[name]]:build:production"
- },
- "ci": {
- "progress": false
- }
- }
- },
- "extract-i18n": {
- "builder": "@angular-devkit/build-angular:extract-i18n",
- "options": {
- "browserTarget": "[[name]]:build"
- }
- },
- "test": {
- "builder": "@angular-devkit/build-angular:karma",
- "options": {
- "main": "src/test.ts",
- "polyfills": "src/polyfills.ts",
- "tsConfig": "tsconfig.spec.json",
- "karmaConfig": "karma.conf.js",
- "scripts": [],
- "styles": [
- "src/main.scss"
- ],
- "assets": [
- "src/robots.txt",
- "src/assets"
- ]
- },
- "configurations": {
- "ci": {
- "progress": false,
- "watch": false
- }
- }
- },
- "lint": {
- "builder": "@angular-devkit/build-angular:tslint",
- "options": {
- "tsConfig": [
- "tsconfig.app.json",
- "tsconfig.spec.json",
- "e2e/tsconfig.json"
- ],
- "exclude": [
- "**/node_modules/**"
- ]
- }
- },
- "e2e": {
- "builder": "@angular-devkit/build-angular:protractor",
- "options": {
- "protractorConfig": "e2e/protractor.conf.js",
- "devServerTarget": "[[name]]:serve"
- },
- "configurations": {
- "production": {
- "devServerTarget": "[[name]]:serve:production"
- }
- }
- }
- }
- }
- },
- "defaultProject": "[[name]]"
-}
diff --git a/backend/files/misc/templates/angular/templates/main/docs/analytics.md b/backend/files/misc/templates/angular/templates/main/docs/analytics.md
deleted file mode 100644
index 2cee4402c7..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/analytics.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Analytics
-
-This project does not come with any analytics library.
-Should you decide to use one, you may want to consider [Angulartics2](https://github.com/angulartics/angulartics2).
-
diff --git a/backend/files/misc/templates/angular/templates/main/docs/backend-proxy.md b/backend/files/misc/templates/angular/templates/main/docs/backend-proxy.md
deleted file mode 100644
index bd5cf07d35..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/backend-proxy.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Backend proxy
-
-Usually when working on a web application you consume data from custom-made APIs.
-
-To ease development with our development server integrating live reload while keeping your backend API calls working,
-we also have setup a backend proxy to redirect API calls to whatever URL and port you want. This allows you:
-
-- To develop frontend features without the need to run an API backend locally
-- To use a local development server without [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) issues
-- To debug frontend code with data from a remote testing platform directly
-
-## How to configure
-
-In the root folder you will find a `proxy.conf.js`, containing the backend proxy configuration.
-
-The interesting part is there:
-```js
-const proxyConfig = [
- {
- context: '/api',
- pathRewrite: {'^/api': ''},
- target: 'http://api.icndb.com',
- changeOrigin: true
- }
-];
-```
-
-This is where you can setup one or more proxy rules.
-
-For the complete set of options, see the `http-proxy-middleware`
-[documentation](https://github.com/chimurai/http-proxy-middleware#options).
-
-### Corporate proxy support
-
-To allow external API calls redirection through a corporate proxy, you will also find a `setupForCorporateProxy()`
-function in the proxy configuration file. By default, this method configures a corporate proxy agent based on the
-`HTTP_PROXY` environment variable, see the [corporate proxy documentation](corporate-proxy.md) for more details.
-
-If you need to, you can further customize this function to fit the network of your working environment.
-
-If your corporate proxy use a custom SSL certificate, your may need to add the `secure: false` option to your
-backend proxy configuration.
diff --git a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/angular.md b/backend/files/misc/templates/angular/templates/main/docs/coding-guides/angular.md
deleted file mode 100644
index a544417bd9..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/angular.md
+++ /dev/null
@@ -1,202 +0,0 @@
-# Introduction to Angular and modern design patterns
-
-[Angular](https://angular.io) (aka Angular 2, 4, 5, 6...) is a new framework completely rewritten from the ground up,
-replacing the now well-known [AngularJS](https://angularjs.org) framework (aka Angular 1.x).
-
-More that just a framework, Angular should now be considered as a whole *platform* which comes with a complete set of
-tools, like its own [CLI](https://github.com/angular/angular-cli), [debug utilities](https://augury.angular.io) or
-[performance tools](https://github.com/angular/angular/tree/master/packages/benchpress).
-
-Angular has been around for some time now, but I still get the feeling that it’s not getting the love it deserved,
-probably because of other players in the field like React or VueJS. While the simplicity behind these frameworks can
-definitely be attractive, they lack in my opinion what is essential when making big, enterprise-grade apps: a solid
-frame to lead both experienced developers and beginners in the same direction and a rational convergence of tools,
-patterns and documentation. Yes, the Angular learning curve may seems a little steep, but it’s definitely worth it.
-
-## Getting started
-
-#### Newcomer
-
-If you're new to Angular you may feel overwhelmed by the quantity of new concepts to apprehend, so before digging
-into this project you may want to start with [this progressive tutorial](https://angular.io/tutorial) that will guide
-you step by step into building a complete Angular application.
-
-#### AngularJS veteran
-
-If you come from AngularJS and want to dig straight in the new version, you may want to take a look at the
-[AngularJS vs 2 quick reference](https://angular.io/guide/ajs-quick-reference).
-
-#### Cheatsheet
-
-Until you know the full Angular API by heart, you may want to keep this
-[cheatsheet](https://angular.io/guide/cheatsheet) that resumes the syntax and features on a single page at hand.
-
-## Style guide
-
-This project follows the standard [Angular style guide](https://angular.io/guide/styleguide).
-
-More that just coding rules, this style guide also gives advices and best practices for a good application architecture
-and is an **essential reading** for starters. Reading deeper, you can even find many explanations for some design
-choices of the framework.
-
-## FAQ
-
-There is a lot to dig in Angular and some questions frequently bother people. In fact, most of unclear stuff seems to be
-related to modules, for example the dreaded
-[**"Core vs Shared modules"**](https://angular.io/guide/ngmodule-faq#what-kinds-of-modules-should-i-have-and-how-should-i-use-them)
-question.
-
-The guys at Angular may have noticed that since you can now find
-[a nice FAQ on their website](https://angular.io/guide/ngmodule-faq#ngmodule-faqs) answering all the common questions
-regarding modules. Don't hesitate to take a look at it, even if you think you are experienced enough with Angular :wink:.
-
-## Going deeper
-
-Even though they are not mandatory, Angular was designed for the use of design patterns you may not be accustomed to,
-like [reactive programming](#reactive-programming), [unidirectional data flow](#unidirectional-data-flow) and
-[centralized state management](#centralized-state-management).
-
-These concepts are difficult to resume in a few words, and despite being tightly related to each other they concern
-specific parts of an application flow, each being quite deep to learn on its own.
-
-You will essentially find here a list of good starting points to learn more on these subjects.
-
-#### Reactive programming
-
-You may not be aware of it, but Angular is now a *reactive system* by design.
-Although you are not forced to use reactive programming patterns, they make the core of the framework and it is
-definitely recommended to learn them if you want to leverage the best of Angular.
-
-Angular uses [RxJS](http://reactivex.io/rxjs/) to implement the *Observable* pattern.
-
-> An *Observable* is a stream of asynchronous events that can be processed with array-like operators.
-
-##### From promises to observables
-
-While AngularJS used to rely heavily on [*Promises*](https://docs.angularjs.org/api/ng/service/$q) to handle
-asynchronous events, *Observables* are now used instead in Angular. Even though in specific cases like for HTTP
-requests, an *Observable* can be converted into a *Promise*, it is recommended to embrace the new paradigm as it can a
-lot more than *Promises*, with way less code. This transition is also explained in the
-[Angular tutorial](https://angular.io/tutorial/toh-pt6#!%23observables).
-Once you have made the switch, you will never look back again.
-
-##### Learning references
-
-- [What is reactive programming?](http://paulstovell.com/blog/reactive-programming), explained nicely through a simple
- imaged story *(5 min)*
-
-- [The introduction to reactive programming you've been missing](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754),
- the title says it all *(30 min)*
-
-- [Functional reactive programming for Angular 2 developers](http://blog.angular-university.io/functional-reactive-programming-for-angular-2-developers-rxjs-and-observables/),
- see the functional reactive programming principles in practice with Angular *(15 min)*
-
-- [RxMarbles](http://rxmarbles.com), a graphical representation of Rx operators that greatly help to understand their
- usage
-
-#### Unidirectional data flow
-
-In opposition with AngularJS where one of its selling points was two-way data binding which ended up causing a lot of
-major headaches for complex applications, Angular now enforces unidirectional data flow.
-
-What does it means? Said with other words, it means that change detection cannot cause cycles, which was one of
-AngularJS problematic points. It also helps to maintain simpler and more predictable data flows in applications, along
-with substantial performance improvements.
-
-**Wait, then why the Angular documentation have mention of a
-[two-way binding syntax](https://angular.io/guide/template-syntax#binding-syntax-an-overview)?**
-
-If you look closely, the new two-way binding syntax is just syntactic sugar to combine two *one-way* bindings (a
-*property* and *event* binding), keeping the data flow unidirectional.
-
-This change is really important, as it was often the cause of performance issues with AngularJS, and it one of the
-pillars enabling better performance in new Angular apps.
-
-While Angular tries to stay *pattern-agnostic* and can be used with conventional MV* patterns, it was designed with
-reactive programming in mind and really shines when used with reactive data flow patterns like
-[redux](http://redux.js.org/docs/basics/DataFlow.html),
-[Flux](https://facebook.github.io/flux/docs/in-depth-overview.html#content) or
-[MVI](http://futurice.com/blog/reactive-mvc-and-the-virtual-dom).
-
-#### Centralized state management
-
-As applications grow in size, keeping track of the all its individual components state and data flows can become
-tedious, and tend to be difficult to manage and debug.
-
-The main goal of using a centralized state management is to make state changes *predictable* by imposing certain
-restrictions on how and when updates can happen, using *unidirectional data flow*.
-
-This approach was first made popular with React with introduction of the
-[Flux](https://facebook.github.io/flux/docs/in-depth-overview.html#content) architecture. Many libraries emerged then
-trying to adapt and refine the original concept, and one of these gained massive popularity by providing a simpler,
-elegant alternative: [Redux](http://redux.js.org/docs/basics/DataFlow.html).
-
-Redux is at the same time a library (with the big *R*) and a design pattern (with the little *r*), the latter being
-framework-agnostic and working very well with Angular.
-
-The *redux* design pattern is based on these [3 principles](http://redux.js.org/docs/introduction/ThreePrinciples.html):
-
-- The application state is a *single immutable* data structure
-- A state change is triggered by an *action*, an object describing what happened
-- Pure functions called *reducers* take the previous state and the next action to compute the new state
-
-The core concepts behind these principles are nicely explained in
-[this example](http://redux.js.org/docs/introduction/CoreConcepts.html) *(3 min)*.
-
-For those interested, the redux pattern was notably inspired by
-[The Elm Architecture](https://guide.elm-lang.org/architecture/) and the [CQRS](https://martinfowler.com/bliki/CQRS.html)
-pattern.
-
-##### Which library to use?
-
-You can make Angular work with any state management library you like, but your best bet would be to use
-[NGXS](http://ngxs.io) or [@ngrx](https://github.com/ngrx/platform). Both works the same as the popular
-[Redux](http://redux.js.org) library, but with a tight integration with Angular and [RxJS](http://reactivex.io/rxjs/),
-with some nice additional developer utilities.
-
-NGXS is based on the same concepts as @ngrx, but with less boilerplate and a nicer syntax, making it less intimidating.
-
-Here are some resources to get started:
-
-- [Angular NGXS tutorial with example from scratch](https://appdividend.com/2018/07/03/angular-ngxs-tutorial-with-example-from-scratch/),
- a guided tutorial for NGXS *(10 min)*
-
-- [Build a better Angular 2 application with redux and ngrx](http://onehungrymind.com/build-better-angular-2-application-redux-ngrx/),
- a nice tutorial for @ngrx *(30 min)*
-
-- [Comprehensive introduction to @ngrx/store](https://gist.github.com/btroncone/a6e4347326749f938510), an in-depth
- walkthrough to this library usage in Angular *(60 min)*
-
-##### When to use it?
-
-You may have noticed that the starter template does not include a centralized state management system out of the box.
-Why is that? Well, while there is many benefits from using this pattern, the choice is ultimately up to your team and
-what you want to achieve with your app.
-
-Keep in mind that using a single centralized state for your app introduces a new layer a complexity
-[that might not be needed](https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367), depending of your
-goal.
-
-## Optimizing performance
-
-While the new Angular version resolves by design most of the performance issues that could be experienced with
-AngularJS, there is always room for improvements. Just keep in mind that delivering an app with good performance is
-often a matter of common sense and sane development practices.
-
-Here is [a list of key points](https://github.com/mgechev/angular-performance-checklist) to check for in your app to
-make sure you deliver the best experience to your customers.
-
-After going through the checklist, make sure to also run an audit of your page through
-[**Lighthouse**](https://developers.google.com/web/tools/lighthouse/), the latest Google tool that gives you meaningful
-insight about your app performance, accessibility, mobile compatibility and more.
-
-## Keeping Angular up-to-date
-
-Angular development is moving fast, and updates to the core libs and tools are pushed regularly.
-
-Fortunately, the Angular team provides tools to help you follow through the updates:
-
-- `npm run ng update` allows you to update your app and its dependencies
-
-- The [Angular update website](https://update.angular.io) guides you through Angular changes and migrations, providing
- step by step guides from one version to another.
diff --git a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/build-specific-configurations.md b/backend/files/misc/templates/angular/templates/main/docs/coding-guides/build-specific-configurations.md
deleted file mode 100644
index d05d3fd78b..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/build-specific-configurations.md
+++ /dev/null
@@ -1,270 +0,0 @@
-# Build-Specific Configuration
-
-## tl;dr's
-
-ngx-rocket comes with a very helpful `env` script that will save environment-variables set at build time to constants
-that can be used as configuration for your code. When combined with the `dotenv-cli` package, it enables maximum
-configurability while maintaining lots of simplicity for local development and testing.
-
-### Cookbook for maximum independence of deployment-specific configuration
-
-Disclaimer: If you have a full-stack app in a monorepo, keep separate `.env` files for server-side and client-side
-configs, and make sure `.env` files are .gitignore'd and that secrets never make it into client-side `.env` file.
-
-For each configurable variable (e.g. BROWSER_URL, API_URL):
-
-- Add it to package.json's env script so that the build-time variables will be saved for runtime:
-
- ```javascript
- {
- "scripts": {
- "env": "ngx-scripts env npm_package_version BROWSER_URL API_URL",
- }
- }
- ```
-
-- Add it to or edit it in src/environments/environment.ts to expose it to your app as e.g. environment.API_URL:
- ```typescript
- export const environment = {
- // ...
- API_URL: env.API_URL,
- BROWSER_URL: env.BROWSER_URL,
- // ...
- }
- ```
-- Configure your CI's deployment to set the variables and export them to the build script before building - if your CI
- gives you a shell script to run, make it something like this:
- ```shell
- # bourne-like shells...
- export API_URL='https://api.staging.example.com'
- export BROWSER_URL='https://staging.example.com'
- # ...
- npm run build:ssr-and-client
- ```
-- Finally, to have your cake and eat it too and avoid having to do all that for local development and testing (or clutter
- your package.json up), install the `dotenv-cli` package and update your development-related npm scripts to take advantage
- of it:
- ```shell
- # environment.development.env.sh
- BROWSER_URL='http://localhost:4200'
- API_URL='http://localhost:4200'
- ```
- ```javascript
- {
- "scripts": {
- "start": "dotenv -e environment.development.env.sh -- npm run env && ng serve --aot",
- }
- }
- ```
-
-This way, app configurations will always come from deploy-specific environment variables, and your development environments
-are still easy to work with.
-
-For configuring the build itself (for example, if you want your QA build to be similar to your production build, but with
-source maps enabled), consider avoiding adding a build configuration to angular.json, and instead adding the respective
-overriding flag to the `ng` command in package.json:
-```javascript
-{
- "scripts": {
- "build:client-and-server-bundles:qa": "NG_BUILD_OVERRIDES='--sourceMap=true' npm run build:client-and-server-bundles",
- "build:client-and-server-bundles": "npm run build:client-bundles && npm run build:server-bundles",
- "build:client-bundles": "npm run env && ng build --prod $NG_BUILD_OVERRIDES",
- }
-}
-```
-
-The development server API proxy config can read runtime environment variables, so you can avoid having a superficial
-dev-server configuration by taking advantage of them:
-```javascript
-{
- "scripts": {
- "start": "dotenv -e environment.development.env.sh -- npm run env && API_PROXY_HOST='http://localhost:9000' ng serve --aot",
- "e2e": "ngtw build && npm run env && API_PROXY_HOST='http://localhost:7357' ng e2e --webdriverUpdate=false",
- }
-}
-```
-```javascript
-const proxyConfig = [
- {
- context: '/api',
- pathRewrite: { '^/api': '' },
- target: `${process.env.API_PROXY_HOST}/api`,
- changeOrigin: true,
- secure: false,
- },
- {
- context: '/auth',
- pathRewrite: { '^/auth': '' },
- target: `${process.env.API_PROXY_HOST}/auth`,
- changeOrigin: true,
- secure: false,
- },
-];
-```
-
-Quick SSR note: SSR works by building all the client bundles like normal, but then rendering them in real-time. So,
-- the rest of your app from `main.server.ts` down has access to your build-time environment only, like your normal
- client bundles
-- but `server.ts` (the file configuring and running express) has access to your serve-time environment variables
-
-### Less optimal alternatives
-
-- On the opposite extreme of the spectrum, you can keep all build-specific configuration in a separate environment
- file for each environment using Angular's built-in `fileReplacements`, but then you'll need a separate environment
- file even for deployment-specific configuration (like hostnames), which can get out of hand fast.
-- For a middle-of-the-road approach, you can divide configuration into two groups:
- * Configuration shared by each environment-type:
- - Environment-type examples include local development, staging/qa, test, production...
- - Examples of configuration like this include:
- * In test, animations are always disabled, but for all other environments, they're enabled
- * In production, the payment gateway's publishable key is the live key, but all other environments use the
- test key
- * Configuration that sometimes needs to be specific to an individual deployment of a given environment:
- - Examples of configuration like this include:
- * This particular staging/qa server's base for constructing URLs is qa-stable.example.com, but qa/staging
- environments could also be deployed to preprod.example.com or localhost:8081 or anywhereelse:7000.
- * This particular deployment uses a specific bucket for Amazon S3 uploads
- * In this approach, you can use Angular's `fileReplacements` for anything environment-specific and ngx-rocket's
- `env` for anything deployment-specific. You can even have certain deployment-specific configuration fall back
- to environment-specific defaults for certain environments like so:
- ```javascript
- export const environment = {
- // ...
- BROWSER_URL: env.BROWSER_URL || 'https://qa.example.com',
- // ...
- }
- ```
-- If you don't have lots of environment variables, you can avoid dotenv-cli and use your particular shell's method
- to expose the variables before running the ngx-rocket env tool.
-
-## Introduction
-
-When building any maintainable application, a separation of configuration and code is always desired. In the case
-of configuration, some of it will need to vary from environment to environment, build to build, or deployment to
-deployment.
-
-This guide focuses on this type of build-specific configuration in a very broad sense of an Angular app, describing
-the specific Angular ways of controlling these configurations, detailing some angular-specific challenges, and
-highlighting some ngx-rocket tooling that help with them in mind.
-
-For an even broader non-Angular introduction of these concepts, see the
-[The Twelve-Factor App](https://12factor.net/config) methodology's opinions on how this type of configuration
-should be managed.
-
-## Types of configuration
-
-At the highest level, build-specific configuration can be divided into two categories:
-
-1. Configuration for how your app is built and served
-2. Configuration used by your codebase
-
-### Configuration for how your app is built and served
-
-This type of build-specific configuration is not used by your code, but is used to control the build system itself.
-Configuration like this goes into Angular's
-[workspace configuration](https://angular.io/guide/workspace-config#alternate-build-configurations). Instead of
-rehashing existing documentation on this, this document will highlight how it relates to this subject. Namely, the
-fact that in addition to specifying *HOW* the app is built for each build configuration, the workspace configuration
-allows mapping each build configuration to a separate environment configuration file for your codebase as well. It
-also allows for making separate dev-server configurations in case you need to run it differently.
-
-Therefore, each build configuration in the workspace configuration file is a tuple of
-(how-to-build, environment-file-for-codebase), and you'll need a separate configuration for each combination.
-
-## Angular's out-of-the-box environment configuration
-
-### When it works well
-
-This setup works quite well for configuration that's shared among all instances of an environment, like the following
-examples:
-
-- **test** environment always builds without source maps, disables animations, uses a recaptcha test key, and disables
- analytics
-- **dev** environment always builds with source maps, enables animations, uses a recaptcha live key, and disables
- analytics
-- **qa** environment always builds with source maps, enables animations, uses a recaptcha live key, and disables
- analytics
-- **prod** environment always builds without source maps, enables animations, uses a recaptcha live key, and enables
- analytics
-
-### Limitations of Angular's `fileReplacements`
-
-But for certain deployment-specific configuration, things start to get really hairy, like in these examples:
-
-- QA build configuration needs to be built for local deployment, deployment to a server on the internet for QA
- purposes, and also deployment to another server on the internet for staging purposes
-- Production build needs multiple different deployments of the same app to different servers
-
-These cases can cause problems when:
-
-- Each deployment needs a separate API URL
-- Each deployment needs a separate URL for building its own URLs to where it's deployed
-- Each deployment needs separate API keys, bucket names, etc
-
-You *COULD* start creating separate configurations for each deployment, each with its own `fileReplacements`, but that
-would be really messy.
-
-### Workarounds that don't work well
-
-One workaround would be to keep such configurations as globals in a separate deployment-specific script file. But
-that's pretty messy too. More importantly, there are limitations to where they can be used. For example, because
-of AOT, such configuration variables cannot be used in Angular's decorators, because they're not statically
-analyzable (i.e. their values knowable at build-time). So it would be better if we can keep everything in the same place.
-
-### ngx-rocket to the rescue
-
-The ngx-rocket `env` task solves this problem really well, and avoids the need for separate `environment.ts` files for
-deployment-specific configuration.
-
-To add a deployment-specific configuration:
-
-1. edit the existing `environment.ts` files for whichever environments you'd like to make that variable
- deployment-specific for by having it come from the imported "env" object - pro tip: you can even make it fall
- back to an environment-based default and still be statically analyzable!
-2. add that variable name to the npm script's `env` task
-
-Now, as long as you have that environment variable set in the shell running the build, the `env` task will save it into
-the `.env.ts` file before building.
-
-If you really want, you can take things even further to the twelve-factor extreme, and you can even eliminate the
-need for `fileReplacements` entirely, and make all configuration come from environment variables. Whether this will be
-the right approach for your project will be up to you.
-
-This makes separate deployments awesome and flexible, but unfortunately makes things a little bit of a hassle for your
-local development, test, etc. environments because you have the burden of providing all those keys, settings, etc. as
-environment variables.
-
-To avoid having to do that, you'll can create a .gitignore'd `.env` file with all the variables set, and source it
-with your shell (e.g. `source .env.sh && npm env` in bourne-like shells or `env.bat; npm env` in windows).
-```shell
-# bourne-like .env.sh
-export BROWSER_URL=localhost:4200
-```
-```shell
-REM windows env.bat
-SET BROWSER_URL=localhost:4200
-```
-
-Luckily for us, there's a package called `dotenv-cli` that uses the `dotenv` package and does this in a cleaner and
-cross-platform way and comes with even more bells and whistles. You should use that instead, and make your env file
-like this instead:
-```shell
-BROWSER_URL=localhost:4200
-```
-
-## When you can use environment variables directly without ngx-rocket `env`
-
-As a sidenote, ngx-rocket `env` isn't used for the proxy config file, because it isn't built and ran separately.
-Fortunately, for that same reason, you can directly use `process.env` within the proxy config file to avoid having
-separate proxy configs in most cases.
-
-On that same note, the `server.ts` for SSR builds can also access `process.env` as it's set at runtime. But keep in mind
-that it stops there - the app itself is built, so even in SSR the client app can't access process environment variables.
-
-## Security Considerations
-
-Never forget that your entire Angular app goes to the client, including its configuration, including the environment
-variables you pass to the env task! As usual, you should **never add sensitive keys or secrets to the env task**.
-
-Finally, if your Angular project is the client-side of a full-stack monorepo, make sure to keep the client-side `.env`
-file separate from the server-side `.env` file, since your server-side is bound to have secrets.
diff --git a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/e2e-tests.md b/backend/files/misc/templates/angular/templates/main/docs/coding-guides/e2e-tests.md
deleted file mode 100644
index e208e031d7..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/e2e-tests.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# End-to-end tests coding guide
-
-End-to-end (E2E for short) tests are meant to test the behavior of your application, from start to finish.
-
-While unit tests are the first choice for catching bugs and regression on individual components, it is a good idea to
-complement them with test cases covering the integration between the individual components, hence the need for E2E
-tests.
-
-These tests use [Protractor](https://github.com/angular/protractor), which is a framework built for Angular on top of
-[Selenium](https://github.com/SeleniumHQ/selenium) to control browsers and simulate user inputs.
-[Jasmine](http://jasmine.github.io) is used as the base test framework.
-
-Many of protractor's actions and assertions are asynchronous and return promises. To ensure that test steps are
-performed in the intended order, generated projects are set up to use async/await as the flow control mechanism
-because of its good readability. See the [Protractor async/await](https://www.protractortest.org/#/async-await) page
-for more information and examples on using async/await in tests, and the
-[Protractor API guide](https://www.protractortest.org/#/api) to determine which API calls are asynchronous.
-
-Beware that some examples of protractor tests you'll find on the internet might not be using async/await. Tests like
-these that you encounter were using the now-deprecated "selenium promise manager" flow control mechanism, so they
-should not be used verbatim. See the [Protractor control flow](https://www.protractortest.org/#/control-flow) page
-for more details.
-
-## Good practices
-
-- Avoid whenever possible inter-dependencies between your E2E tests
-- Run E2E tests on your continuous integration server against different browsers
-- If you use an Agile methodology, cover each user story acceptance factors with an E2E test
-
-## Page objects
-
-E2E tests should follow the *[Page Object](https://github.com/SeleniumHQ/selenium/wiki/PageObjects)* pattern.
-
-#### What is a page object?
-
-A page object:
-
-- Models the objects on a page under test:
- * *Properties* wrap page elements
- * *Methods* wrap code that interacts with the page elements
-- Simplifies the test scripts
-- Reduces the amount of duplicated code
-
-If the UI changes, the fix only needs to be applied in one place.
-
-#### How to define a page object
-
-```typescript
-// login.po.ts
-import { browser, element, by } from 'protractor';
-
-export class LoginPage {
- emailInput = element(by.css('input[name=^"email"]'));
- passwordInput = element(by.css('input[name=^"password"]'));
- loginButton = element(by.css('button[(click)^="login"]'));
- registerButton = element(by.css('button[(click)^="register"]'));
-
- async navigateTo() {
- await browser.get('/');
- }
-
- async getGreetingText() {
- return await element(by.css('.greeting')).getText();
- }
-}
-```
-
-#### How to use a page object
-
-```typescript
-// login.e2e-spec.ts
-import { LoginPage } from './login.po';
-
-describe('Login', () => {
- let page: LoginPage;
-
- beforeEach(async () => {
- page = new LoginPage();
- await page.navigateTo();
- });
-
- it('should navigate to the register page when the register button is clicked', async () => {
- await page.registerButton.click();
-
- expect(await browser.getCurrentUrl()).toContain('/register');
- });
-
- it('should allow a user to log in', async () => {
- await page.emailInput.sendKeys('test@mail.com');
- await page.passwordInput.sendKeys('abc123');
- await page.loginButton.click();
-
- expect(await page.getGreetingText()).toContain('Welcome, Test User');
- });
-});
-```
-
-## Credits
-
-Parts of this guide were freely inspired by this
-[presentation](https://docs.google.com/presentation/d/1B6manhG0zEXkC-H-tPo2vwU06JhL8w9-XCF9oehXzAQ).
diff --git a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/html.md b/backend/files/misc/templates/angular/templates/main/docs/coding-guides/html.md
deleted file mode 100644
index 9221012be6..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/html.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# HTML coding guide
-
-## Naming conventions
-
-- Everything should be named in `kebab-case` (lowercase words separated with a `-`): tags, attributes, IDs, etc,
- **except for everything bound to Angular** such variables, directives or events which should be in `camelCase`
-- File names should always be in `kebab-case`
-
-## Coding rules
-
-- Use HTML5 doctype: ``
-- Use HTML [semantic elements](https://developer.mozilla.org/docs/Web/HTML/Sections_and_Outlines_of_an_HTML5_document)
-- Use double quotes `"` around attribute values in tags
-- Use a new line for every block, list, or table element, and indent every such child element
-- Clearly Separate structure (HTML) from presentation (CSS) from behavior (JavaScript):
- * Never use inline CSS or JavaScript
- * Keep any logic out of the HTML
-- `type` attribute for stylesheets and script tags should be omitted
-
-## Common pitfalls
-
-- **Block**-type tags cannot be nested inside **inline**-type tags: a `` tag cannot be nested in a `
`.
- This rule also applies regarding the `display` value of an element.
-- HTML is **not** XML: empty tags cannot be self-closing and will result in improper results
- * `
` will be interpreted as a simple `` without closing tag!
- * The only tags that allows self-closing are the one that does not require a closing tag in first place:
- these are the void elements that do not not accept content `
`, `
`, `
`, `
`, `
`, `
`
- (and others).
-
-## Templates
-
-In accordance with the [Angular style guide](https://angular.io/guide/styleguide), HTML templates should be extracted in
-separate files, when more than 3 lines.
-
-Only use inline templates sparingly in very simple components with less than 3 lines of HTML.
-
-## Enforcement
-
-Coding rules enforcement and basic sanity checks are done in this project by [HTMLHint](http://htmlhint.com).
diff --git a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/sass.md b/backend/files/misc/templates/angular/templates/main/docs/coding-guides/sass.md
deleted file mode 100644
index d21379b67f..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/sass.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# Sass coding guide
-
-[Sass](http://sass-lang.com) is a superset of CSS, which brings a lot of developer candy to help scaling CSS in large
-projects and keeping it maintainable.
-
-The main benefits of using Sass over plain CSS are *variables*, *nesting* and *mixins*, see the
-[basics guide](http://sass-lang.com/guide) for more details.
-
-> Note that this project use the newer, CSS-compatible **SCSS** syntax over the old
- [indented syntax](http://sass-lang.com/documentation/file.INDENTED_SYNTAX.html).
-
-## Naming conventions
-
-- In the CSS world, everything should be named in `kebab-case` (lowercase words separated with a `-`).
-- File names should always be in `kebab-case`
-
-## Coding rules
-
-- Use single quotes `'` for strings
-- Use this general nesting hierarchy when constructing your styles:
- ```scss
- // The base component class acts as the namespace, to avoid naming and style collisions
- .my-component {
- // Put here all component elements (flat)
- .my-element {
- // Use a third-level only for modifiers and state variations
- &.active { ... }
- }
- }
- ```
- Note that with
- [Angular view encapsulation](https://angular.io/docs/ts/latest/guide/component-styles.html#!#view-encapsulation),
- the first "namespace" level of nesting is not necessary as Angular takes care of the scoping for avoid collisions.
-
- > As a side note, we are aware of the [BEM naming approach](https://en.bem.info/tools/bem/bem-naming/), but we found
- it impractical for large projects. The nesting approach has drawbacks such as increased specificity, but it helps
- keeping everything nicely organized, and more importantly, *scoped*.
-
-
-Also keep in mind this general rules:
-- Always use **class selectors**, never use ID selectors and avoid element selectors whenever possible
-- No more than **3 levels** of nesting
-- No more than **3 qualifiers**
-
-## Best practices
-
-- Use object-oriented CSS (OOCSS):
- * Factorize common code in base class, and extend it, for example:
- ```scss
- // Base button class
- .btn { ... }
-
- // Color variation
- .btn-warning { ... }
-
- // Size variation
- .btn-small { ... }
- ```
- * Try to name class by semantic, not style nor function for better reusability:
- Use `.btn-warning`, not `btn-orange` nor `btn-cancel`
- * Avoid undoing style, refactor using common base classes and extensions
-
-- Keep your style scoped
- * Clearly separate **global** (think *framework*) and **components** style
- * Global style should only go in `src/theme/`, never in components
- * Avoid style interactions between components, if some style may need to be shared, refactor it as a framework
- component in put it in your global theme.
- * Avoid using wider selectors than needed: always use classes if you can!
-
-- Avoid rules multiplication
- * The less CSS the better, factorize rules whenever it's possible
- * CSS is code, and like any code frequent refactoring is healthy
-
-- When ugly hacks cannot be avoided, create an explicit `src/hacks.scss` file and put it in:
- * These ugly hacks should only be **temporary**
- * Each hack should be documented with the author name, the problem and hack reason
- * Limit this file to a reasonable length (~100 lines) and refactor hacks with proper solutions when the limit is
- reached.
-
-## Pitfalls
-
-- Never use the `!important` keyword. Ever.
-- Never use **inline** style in html, even *just for debugging* (because we **KNOW** it will end up in your commit)
-
-## Browser compatibility
-
-You should never use browser-specific prefixes in your code, as [autoprefixer](https://github.com/postcss/autoprefixer)
-takes care of that part for you during the build process.
-You just need to declare which browsers you target in the [`browserslist`](https://github.com/ai/browserslist) file.
-
-## Enforcement
-
-Coding rules are enforced in this project with [stylelint](https://stylelint.io).
-This tool also checks the compatibility of the rules used against the browsers you are targeting (specified in the
-[`browserslist`](https://github.com/ai/browserslist) file), via [doiuse](https://github.com/anandthakker/doiuse).
diff --git a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/typescript.md b/backend/files/misc/templates/angular/templates/main/docs/coding-guides/typescript.md
deleted file mode 100644
index 2671e5f3fc..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/typescript.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# TypeScript coding guide
-
-[TypeScript](http://www.typescriptlang.org) is a superset of JavaScript that greatly helps building large web
-applications.
-
-Coding conventions and best practices comes from the
-[TypeScript guidelines](https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines), and are also detailed in the
-[TypeScript Deep Dive Style Guide](https://basarat.gitbooks.io/typescript/content/docs/styleguide/styleguide.html).
-In addition, this project also follows the general [Angular style guide](https://angular.io/guide/styleguide).
-
-## Naming conventions
-
-- Use `PascalCase` for types, classes, interfaces, constants and enum values.
-- Use `camelCase` for variables, properties and functions
-- Avoid prefixing interfaces with a capital `I`, see [Angular style guide](https://angular.io/guide/styleguide#!#03-03)
-- Do not use `_` as a prefix for private properties. An exception can be made for backing fields like this:
- ```typescript
- private _foo: string;
- get foo() { return this._foo; } // foo is read-only to consumers
- ```
-
-## Ordering
-
-- Within a file, type definitions should come first
-- Within a class, these priorities should be respected:
- * Properties comes before functions
- * Static symbols comes before instance symbols
- * Public symbols comes before private symbols
-
-## Coding rules
-
-- Use single quotes `'` for strings
-- Always use strict equality checks: `===` and `!==` instead of `==` or `!=` to avoid comparison pitfalls (see
- [JavaScript equality table](https://dorey.github.io/JavaScript-Equality-Table/)).
- The only accepted usage for `==` is when you want to check a value against `null` or `undefined`.
-- Use `[]` instead of `Array` constructor
-- Use `{}` instead of `Object` constructor
-- Always specify types for function parameters and returns (if applicable)
-- Do not export types/functions unless you need to share it across multiple components
-- Do not introduce new types/values to the global namespace
-- Use arrow functions over anonymous function expressions
-- Only surround arrow function parameters when necessary.
- For example, `(x) => x + x` is wrong but the following are correct:
- * `x => x + x`
- * `(x, y) => x + y`
- * `
(x: T, y: T) => x === y`
-
-## Definitions
-
-In order to infer types from JavaScript modules, TypeScript language supports external type definitions. They are
-located in the `node_modules/@types` folder.
-
-To manage type definitions, use standard `npm install|update|remove` commands.
-
-## Enforcement
-
-Coding rules are enforced in this project via [TSLint](https://github.com/palantir/tslint).
-Angular-specific rules are also enforced via the [Codelyzer](https://github.com/mgechev/codelyzer) rule extensions.
-
-## Learn more
-
-The read of [TypeScript Deep Dive](https://basarat.gitbooks.io/typescript) is recommended, this is a very good
-reference book for TypeScript (and also open-source).
diff --git a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/unit-tests.md b/backend/files/misc/templates/angular/templates/main/docs/coding-guides/unit-tests.md
deleted file mode 100644
index 84c248bb31..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/coding-guides/unit-tests.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# Unit tests coding guide
-
-The main objective of unit tests is to detect regressions and to help you design software components. A suite of
-*good* unit tests can be *immensely* valuable for your project and makes it easier to refactor and expand your code.
-But keep in mind that a suite of *bad* unit tests can also be *immensely* painful, and hurt your development by
-inhibiting your ability to refactor or alter your code in any way.
-
-## What to test?
-
-Everything! But if you need priorities, at least all business logic code must be tested: services, helpers, models...
-Shared directives/components should also be covered by unit tests, if you do not have the time to test every single
-component.
-
-Keep in mind that component unit tests should not overlap with [end-to-end tests](e2e-tests.md): while unit the tests
-cover the isolated behavior of the component bindings and methods, the end-to-end tests in opposition should cover the
-integration and interactions with other app components based on real use cases scenarios.
-
-## Good practices
-
-- Name your tests cleanly and consistently
-- Do not only test nominal cases, the most important tests are the one covering the edge cases
-- Each test should be independent to all the others
-- Avoid unnecessary assertions: it's counter-productive to assert anything covered by another test, it just increase
- pointless failures and maintenance workload
-- Test only one code unit at a time: if you cannot do this, it means you have an architecture problem in your app
-- Mock out all external dependencies and state: if there is too much to mock, it is often a sign that maybe you
- should split your tested module into several more independent modules
-- Clearly separate or identify these 3 stages of each unit test (the *3A*): *arrange*, *act* and *assert*
-- When you fix a bug, add a test case for it to prevent regression
-
-## Pitfalls
-
-- Sometimes your architecture might mean your code modify static variables during unit tests. Avoid this if you can,
- but if you can't, at least make sure each test resets the relevant statics before and after your tests.
-- Don’t unit-test configuration settings
-- Improving test coverage is good, but having meaningful tests is better: start with the latter first, and **only after
- essential features of your code unit are tested**, your can think of improving the coverage.
-
-## Unit testing with Angular
-
-A good starting point for learning is the official
-[testing guide](https://angular.io/docs/ts/latest/guide/testing.html).
-
-But as you will most likely want to go bit further in real world apps, these
-[example test snippets](https://gist.github.com/wkwiatek/e8a4a9d92abc4739f04f5abddd3de8a7) are also very helpful to
-learn how to cover most common testing use cases.
diff --git a/backend/files/misc/templates/angular/templates/main/docs/corporate-proxy.md b/backend/files/misc/templates/angular/templates/main/docs/corporate-proxy.md
deleted file mode 100644
index 64e8a3b46a..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/corporate-proxy.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# Working behind a corporate proxy
-
-## Environment
-
-Most tools (including npm and git) use the `HTTP_PROXY` and `HTTPS_PROXY` environment variables to work with a
-corporate proxy.
-
-### Windows
-
-In Windows environments, add the `HTTP_PROXY` and `HTTPS_PROXY` system environment variable, with these values:
-
-- HTTP_PROXY: `http://:@:`
-- HTTPS_PROXY: `%HTTP_PROXY%`
-
-### Unix
-
-Add these lines to your `~/.bash_profile` or `~/.profile`:
-```sh
-export HTTP_PROXY="http://:@:"
-export HTTPS_PROXY="$HTTP_PROXY"
-```
-
-## Proxy with SSL custom certificate
-
-Some proxy like **zscaler** use a custom SSL certificate to inspect request, which may cause npm commands to fail.
-
-To solve this problem, you can disable the `strict-ssl` option in npm.
-
-## Proxy exceptions
-
-If you need to access repositories on your local network that should bypass proxy, set the `NO_PROXY` environment
-variable, in the same way as `HTTP_PROXY`:
-
-### Windows
-
-- NO_PROXY: `127.0.0.1, localhost, `
-
-### Unix
-
-```sh
-export NO_PROXY="127.0.0.1, localhost, "
-```
-
-### Npm
-
-Run this command in your project directory:
-```sh
-npm set strict-ssl false
-```
diff --git a/backend/files/misc/templates/angular/templates/main/docs/i18n.md b/backend/files/misc/templates/angular/templates/main/docs/i18n.md
deleted file mode 100644
index 18f1734211..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/i18n.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# I18n
-
-The internationalization of the application is managed by [ngx-translate](https://github.com/ngx-translate/core).
-
-## Adding translatable strings
-
-### In HTML templates
-
-Use the `translate` directive on an HTML element to automatically translate its content:
-```html
-This text will be translated.
-```
-
-You can also use the `translate` pipe if needed:
-```html
-+
-```
-
-### In TypeScript code
-
-If you need to translate strings in JavaScript code, import the `TranslateService` dependency and use the asynchronous
-`get()` method:
-
-```typescript
-let title;
-translateService.get('My page title').subscribe((res: string) => { title = res; });
-```
-
-## Extracting strings to translate
-
-Once you are ready to translate your app, just run `npm run translations:extract`.
-It will create a `template.json` file in the `src/translations` folder.
-
-You can then use any text or code editor to generate the `.json` files for each of your supported languages, and put
-them in the `src/translations` folder.
-
-Do no forget to edit the files in `src/environment` to add the supported languages of your application.
-
-### Marking strings for extraction
-
-If strings are not directly passed to `translateService` or put in HTML templates, they may be missing from the
-extraction process.
-
-For these cases, you have to use the dummy `marker()` function:
-```typescript
-import { marker } from '@biesbjerg/ngx-translate-extract-marker';
-
-function toBeTranslatedLater() {
- return marker('A string to be translated');
-}
-```
-
-Strings marked like this will then be properly extracted.
diff --git a/backend/files/misc/templates/angular/templates/main/docs/routing.md b/backend/files/misc/templates/angular/templates/main/docs/routing.md
deleted file mode 100644
index 51754c222e..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/routing.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# Browser routing
-
-To allow navigation without triggering a server request, Angular now use by default the
-[HTML5 pushState](https://developer.mozilla.org/en-US/docs/Web/API/History_API#Adding_and_modifying_history_entries)
-API enabling natural URL style (like `localhost:4200/home/`), in opposition to Angular 1 which used the *hashbang* hack
-routing style (like `localhost:4200/#/home/`).
-
-This change has several consequences you should know of, be sure to read the
-[browser URL styles](https://angular.io/docs/ts/latest/guide/router.html#!#browser-url-styles) notice to fully
-understand the differences between the two approaches.
-
-In short:
-
-- It is only supported on modern browsers (IE10+), a [polyfill](https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills#html5-history-api-pushstate-replacestate-popstate)
- is required for older browsers.
-
-- You have the option to perform *server-side rendering* later if you need to increase your app perceived performance.
-
-- You need to [configure URL rewriting](#server-configuration) on your server so that all routes serve your index file.
-
-It is still possible to revert to the hash strategy, but unless you have specific needs, you should stick with the
-default HTML5 routing mode.
-
-## Server configuration
-
-To allow your angular application working properly as a *Single Page Application* (SPA) and allow bookmarking or
-refreshing any page, you need some configuration on your server, otherwise you will be running into troubles.
-
-> Note that during development, the live reload server already supports SPA mode.
-
-The basic idea is simply to serve the `index.html` file for every request aimed at your application.
-
-Here is an example on how to perform this on an [Express](http://expressjs.com) NodeJS server:
-
-```js
-// Put this in your `server.js` file, after your other rules (APIs, static files...)
-app.get('/*', function(req, res) {
- res.sendFile(__dirname + '/index.html')
-});
-```
-
-For other servers like [Nginx](https://www.nginx.com/blog/creating-nginx-rewrite-rules/) or
-[Apache](http://httpd.apache.org/docs/2.0/misc/rewriteguide.html), you may look for how to perform *URL rewriting*.
diff --git a/backend/files/misc/templates/angular/templates/main/docs/updating.md b/backend/files/misc/templates/angular/templates/main/docs/updating.md
deleted file mode 100644
index 2591f7a491..0000000000
--- a/backend/files/misc/templates/angular/templates/main/docs/updating.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Updating npm dependencies
-
-- Check outdated packages
-```sh
-npm outdated
-```
-
-- Update local packages according to `package.json`
-```sh
-npm update
-```
-
-- Upgrade packages manually
-```sh
-npm install --save[-dev] @latest
-```
-
-Alternatively, you can use [npm-check](https://github.com/dylang/npm-check) to perform an interactive upgrade:
-```sh
-npm-check -u --skip-unused
-```
-
-## Locking package versions
-
-Starting from `npm@5` a new `package-lock.json` file is
-[automatically generated](https://docs.npmjs.com/files/package-locks) when using `npm install` commands, to ensure a
-reproducible dependency tree and avoid unwanted package updates.
-
-If you use a previous npm version, it is recommended to use [npm shrinkwrap](https://docs.npmjs.com/cli/shrinkwrap) to
-lock down all your dependencies version:
-```sh
-npm shrinkwrap --dev
-```
-
-This will create a file `npm-shrinkwrap.json` alongside your `package.json` files.
-
-> Do not forget to run shrinkwrap each time you manually update your dependencies!
-
-# Updating angular-related dependencies
-
-See the [Angular update website](https://update.angular.io) to guide you through the updating/upgrading steps.
diff --git a/backend/files/misc/templates/angular/templates/main/e2e/protractor.conf.js b/backend/files/misc/templates/angular/templates/main/e2e/protractor.conf.js
deleted file mode 100644
index 818e312550..0000000000
--- a/backend/files/misc/templates/angular/templates/main/e2e/protractor.conf.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// @ts-check
-// Protractor configuration file, see link for more information
-// https://github.com/angular/protractor/blob/master/lib/config.ts
-
-const { SpecReporter } = require('jasmine-spec-reporter');
-
-exports.config = {
- SELENIUM_PROMISE_MANAGER: false,
- allScriptsTimeout: 11000,
- specs: ['./src/**/*.e2e-spec.ts'],
- capabilities: {
- browserName: process.env.PROTRACTOR_BROWSER || 'chrome',
- chromeOptions: {
- binary: process.env.PROTRACTOR_CHROME_BIN || undefined,
- args: process.env.PROTRACTOR_CHROME_ARGS ? JSON.parse(process.env.PROTRACTOR_CHROME_ARGS) : ['lang=en-US'],
- prefs: {
- intl: { accept_languages: 'en-US' },
- },
- },
- },
- // Only works with Chrome and Firefox
- directConnect: true,
- baseUrl: 'http://localhost:4200/',
- framework: 'jasmine2',
- jasmineNodeOpts: {
- showColors: true,
- defaultTimeoutInterval: 30000,
- print: function () {},
- },
- onPrepare() {
- require('ts-node').register({
- project: require('path').join(__dirname, './tsconfig.json'),
- });
-
- // Better console spec reporter
- jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: 'pretty' } }));
- },
-};
diff --git a/backend/files/misc/templates/angular/templates/main/e2e/src/app.e2e-spec.ts b/backend/files/misc/templates/angular/templates/main/e2e/src/app.e2e-spec.ts
deleted file mode 100644
index a0eb097926..0000000000
--- a/backend/files/misc/templates/angular/templates/main/e2e/src/app.e2e-spec.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { browser, ExpectedConditions as until } from 'protractor';
-import { LoginPage } from './page-objects/login.po';
-import { AppSharedPage } from './page-objects/app-shared.po';
-import { ShellPage } from './page-objects/shell.po';
-
-describe('when the app loads', () => {
- const login = new LoginPage();
- const app = new AppSharedPage();
- const shell = new ShellPage();
-
- beforeAll(async () => {
- await app.navigateAndSetLanguage();
- });
-
- it('should display the login page', async () => {
- expect(await browser.getCurrentUrl()).toContain('/login');
- });
-
- describe('and the user logs in', () => {
- beforeAll(async () => {
- await login.login();
- });
-
- it('should display the hello message', async () => {
- await browser.wait(until.visibilityOf(shell.welcomeText), 5000, 'Element taking too long to appear');
- expect(await shell.getParagraphText()).toEqual('Hello world !');
- });
- });
-});
diff --git a/backend/files/misc/templates/angular/templates/main/e2e/src/page-objects/app-shared.po.ts b/backend/files/misc/templates/angular/templates/main/e2e/src/page-objects/app-shared.po.ts
deleted file mode 100644
index cb8c79ab83..0000000000
--- a/backend/files/misc/templates/angular/templates/main/e2e/src/page-objects/app-shared.po.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Use the Page Object pattern to define the page under test.
- * See docs/coding-guide/e2e-tests.md for more info.
- */
-
-import { browser, element, by } from 'protractor';
-
-export class AppSharedPage {
- async navigateAndSetLanguage() {
- // Forces default language
- await this.navigateTo();
- await browser.executeScript(() => localStorage.setItem('language', 'en-US'));
- }
-
- async navigateTo() {
- await browser.get('/');
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/e2e/src/page-objects/login.po.ts b/backend/files/misc/templates/angular/templates/main/e2e/src/page-objects/login.po.ts
deleted file mode 100644
index a3642aae78..0000000000
--- a/backend/files/misc/templates/angular/templates/main/e2e/src/page-objects/login.po.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Use the Page Object pattern to define the page under test.
- * See docs/coding-guide/e2e-tests.md for more info.
- */
-
-import { browser, element, by } from 'protractor';
-
-export class LoginPage {
- usernameField = element(by.css('input[formControlName="username"]'));
- passwordField = element(by.css('input[formControlName="password"]'));
- loginButton = element(by.css('button[type="submit"]'));
-
- async login() {
- await this.usernameField.sendKeys('test');
- await this.passwordField.sendKeys('123');
- await this.loginButton.click();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/e2e/src/page-objects/shell.po.ts b/backend/files/misc/templates/angular/templates/main/e2e/src/page-objects/shell.po.ts
deleted file mode 100644
index c2b0efe3ad..0000000000
--- a/backend/files/misc/templates/angular/templates/main/e2e/src/page-objects/shell.po.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Use the Page Object pattern to define the page under test.
- * See docs/coding-guide/e2e-tests.md for more info.
- */
-
-import { browser, element, by } from 'protractor';
-
-export class ShellPage {
- welcomeText = element(by.css('app-root mat-card-title'));
-
- getParagraphText() {
- return this.welcomeText.getText();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/e2e/tsconfig.json b/backend/files/misc/templates/angular/templates/main/e2e/tsconfig.json
deleted file mode 100644
index 426058ef0f..0000000000
--- a/backend/files/misc/templates/angular/templates/main/e2e/tsconfig.json
+++ /dev/null
@@ -1,14 +0,0 @@
-/* To learn more about this file see: https://angular.io/config/tsconfig. */
-{
- "extends": "../tsconfig.json",
- "compilerOptions": {
- "outDir": "../out-tsc/e2e",
- "module": "commonjs",
- "target": "es2018",
- "types": [
- "jasmine",
- "jasminewd2",
- "node"
- ]
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/karma.conf.js b/backend/files/misc/templates/angular/templates/main/karma.conf.js
deleted file mode 100644
index 3e2722582a..0000000000
--- a/backend/files/misc/templates/angular/templates/main/karma.conf.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-const path = require('path');
-
-module.exports = function(config) {
- config.set({
- basePath: '.',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-junit-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false, // leave Jasmine Spec Runner output visible in browser
- captureConsole: Boolean(process.env.KARMA_ENABLE_CONSOLE)
- },
- junitReporter: {
- outputDir: path.join(__dirname, './reports/junit/'),
- outputFile: 'TESTS-xunit.xml',
- useBrowserName: false,
- suite: '' // Will become the package name attribute in xml testsuite element
- },
- coverageIstanbulReporter: {
- reports: ['html', 'lcovonly', 'text-summary'],
- dir: path.join(__dirname, './reports/coverage'),
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'junit'],
- port: 9876,
- colors: true,
- // Level of logging, can be: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['ChromeHeadless'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/backend/files/misc/templates/angular/templates/main/package-lock.json b/backend/files/misc/templates/angular/templates/main/package-lock.json
deleted file mode 100644
index 24c6943bfe..0000000000
--- a/backend/files/misc/templates/angular/templates/main/package-lock.json
+++ /dev/null
@@ -1,25142 +0,0 @@
-{
- "name": "[[name]]",
- "version": "1.0.0",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "[[name]]",
- "version": "1.0.0",
- "dependencies": {
- "@angular/animations": "^14.1.3",
- "@angular/cdk": "^14.1.3",
- "@angular/common": "^14.1.3",
- "@angular/compiler": "^14.1.3",
- "@angular/core": "^14.1.3",
- "@angular/flex-layout": "^14.0.0-beta.41",
- "@angular/forms": "^14.1.3",
- "@angular/localize": "^14.1.3",
- "@angular/material": "^14.1.3",
- "@angular/platform-browser": "^14.1.3",
- "@angular/platform-browser-dynamic": "^14.1.3",
- "@angular/router": "^14.1.3",
- "@auth0/angular-jwt": "^5.0.2",
- "@danielmoncada/angular-datetime-picker": "^14.1.1",
- "@ngx-translate/core": "^14.0.0",
- "file-saver": "^2.0.5",
- "material-design-icons-iconfont": "^6.1.0",
- "moment": "^2.29.1",
- "ngx-image-compress": "^13.1.13",
- "rxjs": "^7.5.6",
- "tslib": "^2.4.0",
- "zone.js": "~0.11.8"
- },
- "devDependencies": {
- "@angular-devkit/build-angular": "^14.1.3",
- "@angular/cli": "^14.1.3",
- "@angular/compiler-cli": "^14.1.3",
- "@angular/language-service": "^14.1.3",
- "@biesbjerg/ngx-translate-extract": "^7.0.3",
- "@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
- "@ngneat/until-destroy": "^9.2.1",
- "@ngx-rocket/scripts": "^5.0.0",
- "@types/file-saver": "^2.0.5",
- "@types/jasmine": "^3.6.2",
- "@types/jasminewd2": "^2.0.8",
- "@types/node": "^18.7.18",
- "htmlhint": "^1.1.4",
- "https-proxy-agent": "^5.0.0",
- "jasmine-core": "~4.3.0",
- "jasmine-spec-reporter": "~7.0.0",
- "karma": "^6.4.0",
- "karma-chrome-launcher": "~3.1.1",
- "karma-coverage-istanbul-reporter": "~3.0.3",
- "karma-jasmine": "~4.0.1",
- "karma-jasmine-html-reporter": "^1.7.0",
- "karma-junit-reporter": "^2.0.1",
- "protractor": "~7.0.0",
- "ts-node": "^9.1.1",
- "tslint": "^6.1.3",
- "typescript": "~4.7.4"
- }
- },
- "node_modules/@adobe/css-tools": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz",
- "integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==",
- "dev": true
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
- "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.1.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@angular-devkit/architect": {
- "version": "0.1402.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.6.tgz",
- "integrity": "sha512-qTmPBD7fBXBtlSapGLUEcJvRuL/O556zCFFpH3kSlzPNTYxi2falBjGY+4aG+078RXT1vVZtFsvRTart6VbhAg==",
- "dev": true,
- "dependencies": {
- "@angular-devkit/core": "14.2.6",
- "rxjs": "6.6.7"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- }
- },
- "node_modules/@angular-devkit/architect/node_modules/rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.9.0"
- },
- "engines": {
- "npm": ">=2.0.0"
- }
- },
- "node_modules/@angular-devkit/architect/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/@angular-devkit/build-angular": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.6.tgz",
- "integrity": "sha512-XtaUwb3aZ8S0vl0y9bmbdFOH0KQCQ778twFH+ZfHW2BcPYtQz2Cy2rcVKXBQ850RyC0GxgMPfco6OGQndPpizg==",
- "dev": true,
- "dependencies": {
- "@ampproject/remapping": "2.2.0",
- "@angular-devkit/architect": "0.1402.6",
- "@angular-devkit/build-webpack": "0.1402.6",
- "@angular-devkit/core": "14.2.6",
- "@babel/core": "7.18.10",
- "@babel/generator": "7.18.12",
- "@babel/helper-annotate-as-pure": "7.18.6",
- "@babel/plugin-proposal-async-generator-functions": "7.18.10",
- "@babel/plugin-transform-async-to-generator": "7.18.6",
- "@babel/plugin-transform-runtime": "7.18.10",
- "@babel/preset-env": "7.18.10",
- "@babel/runtime": "7.18.9",
- "@babel/template": "7.18.10",
- "@discoveryjs/json-ext": "0.5.7",
- "@ngtools/webpack": "14.2.6",
- "ansi-colors": "4.1.3",
- "babel-loader": "8.2.5",
- "babel-plugin-istanbul": "6.1.1",
- "browserslist": "^4.9.1",
- "cacache": "16.1.2",
- "copy-webpack-plugin": "11.0.0",
- "critters": "0.0.16",
- "css-loader": "6.7.1",
- "esbuild-wasm": "0.15.5",
- "glob": "8.0.3",
- "https-proxy-agent": "5.0.1",
- "inquirer": "8.2.4",
- "jsonc-parser": "3.1.0",
- "karma-source-map-support": "1.4.0",
- "less": "4.1.3",
- "less-loader": "11.0.0",
- "license-webpack-plugin": "4.0.2",
- "loader-utils": "3.2.0",
- "mini-css-extract-plugin": "2.6.1",
- "minimatch": "5.1.0",
- "open": "8.4.0",
- "ora": "5.4.1",
- "parse5-html-rewriting-stream": "6.0.1",
- "piscina": "3.2.0",
- "postcss": "8.4.16",
- "postcss-import": "15.0.0",
- "postcss-loader": "7.0.1",
- "postcss-preset-env": "7.8.0",
- "regenerator-runtime": "0.13.9",
- "resolve-url-loader": "5.0.0",
- "rxjs": "6.6.7",
- "sass": "1.54.4",
- "sass-loader": "13.0.2",
- "semver": "7.3.7",
- "source-map-loader": "4.0.0",
- "source-map-support": "0.5.21",
- "stylus": "0.59.0",
- "stylus-loader": "7.0.0",
- "terser": "5.14.2",
- "text-table": "0.2.0",
- "tree-kill": "1.2.2",
- "tslib": "2.4.0",
- "webpack": ">=5.76.0",
- "webpack-dev-middleware": "5.3.3",
- "webpack-dev-server": "4.11.0",
- "webpack-merge": "5.8.0",
- "webpack-subresource-integrity": "5.1.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- },
- "optionalDependencies": {
- "esbuild": "0.15.5"
- },
- "peerDependencies": {
- "@angular/compiler-cli": "^14.0.0",
- "@angular/localize": "^14.0.0",
- "@angular/service-worker": "^14.0.0",
- "karma": "^6.3.0",
- "ng-packagr": "^14.0.0",
- "protractor": "^7.0.0",
- "tailwindcss": "^2.0.0 || ^3.0.0",
- "typescript": ">=4.6.2 <4.9"
- },
- "peerDependenciesMeta": {
- "@angular/localize": {
- "optional": true
- },
- "@angular/service-worker": {
- "optional": true
- },
- "karma": {
- "optional": true
- },
- "ng-packagr": {
- "optional": true
- },
- "protractor": {
- "optional": true
- },
- "tailwindcss": {
- "optional": true
- }
- }
- },
- "node_modules/@angular-devkit/build-angular/node_modules/rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.9.0"
- },
- "engines": {
- "npm": ">=2.0.0"
- }
- },
- "node_modules/@angular-devkit/build-angular/node_modules/rxjs/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/@angular-devkit/build-webpack": {
- "version": "0.1402.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.6.tgz",
- "integrity": "sha512-gKsDxQ9pze0N1qDM0kdM4FfwpkjSOb0bQzqjZi7wTfrh/WGIQMCjG9CRwWT+Z289ZKaTpcQDPsDtOSo5QpKNDg==",
- "dev": true,
- "dependencies": {
- "@angular-devkit/architect": "0.1402.6",
- "rxjs": "6.6.7"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- },
- "peerDependencies": {
- "webpack": "^5.30.0",
- "webpack-dev-server": "^4.0.0"
- }
- },
- "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.9.0"
- },
- "engines": {
- "npm": ">=2.0.0"
- }
- },
- "node_modules/@angular-devkit/build-webpack/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/@angular-devkit/core": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.6.tgz",
- "integrity": "sha512-qtRSdRm/h7C3ya04PJTDgQXV6mM8Y4RakANX1GTSXetCf9AVSxg74NJX76DWUgiHT4JiPYnJgJU6Hr/L0H6JOQ==",
- "dev": true,
- "dependencies": {
- "ajv": "8.11.0",
- "ajv-formats": "2.1.1",
- "jsonc-parser": "3.1.0",
- "rxjs": "6.6.7",
- "source-map": "0.7.4"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- },
- "peerDependencies": {
- "chokidar": "^3.5.2"
- },
- "peerDependenciesMeta": {
- "chokidar": {
- "optional": true
- }
- }
- },
- "node_modules/@angular-devkit/core/node_modules/rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.9.0"
- },
- "engines": {
- "npm": ">=2.0.0"
- }
- },
- "node_modules/@angular-devkit/core/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/@angular-devkit/schematics": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.6.tgz",
- "integrity": "sha512-mSFtc4M49mWrYsgJx/P6bA6SzXb8SeZqmppKRMoEQxiXI1bwFdGLNWzAmzEsGvS96h/nPIaOfcX5cKJSp++4FA==",
- "dev": true,
- "dependencies": {
- "@angular-devkit/core": "14.2.6",
- "jsonc-parser": "3.1.0",
- "magic-string": "0.26.2",
- "ora": "5.4.1",
- "rxjs": "6.6.7"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- }
- },
- "node_modules/@angular-devkit/schematics/node_modules/rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.9.0"
- },
- "engines": {
- "npm": ">=2.0.0"
- }
- },
- "node_modules/@angular-devkit/schematics/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/@angular/animations": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.2.6.tgz",
- "integrity": "sha512-Tmb3Jj016j8m8OOGSk/ReL0b+OuUCMj0KQansk3C4pCpH9oPF67Vnm0fmVC2wYjjsSS/iDgl4kaDW740wfPGNQ==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "@angular/core": "14.2.6"
- }
- },
- "node_modules/@angular/cdk": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-14.2.5.tgz",
- "integrity": "sha512-kKneb9Z/2E+EXMsHuH8MWy8aygKhdFlKXYltEG7r4W/B6FJC012kJfe+Euj8X0O26akOVW9Q0X7nczCqHqU4tQ==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "optionalDependencies": {
- "parse5": "^5.0.0"
- },
- "peerDependencies": {
- "@angular/common": "^14.0.0 || ^15.0.0",
- "@angular/core": "^14.0.0 || ^15.0.0",
- "rxjs": "^6.5.3 || ^7.4.0"
- }
- },
- "node_modules/@angular/cli": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.6.tgz",
- "integrity": "sha512-8tXpe3htfZY8a+Am4nluVcztMFD5wnx4edGEDkkOiqkrUzbCtX4AyEBjUFldsYKZXbRFU46xEfM6jBnLOjxDZQ==",
- "dev": true,
- "dependencies": {
- "@angular-devkit/architect": "0.1402.6",
- "@angular-devkit/core": "14.2.6",
- "@angular-devkit/schematics": "14.2.6",
- "@schematics/angular": "14.2.6",
- "@yarnpkg/lockfile": "1.1.0",
- "ansi-colors": "4.1.3",
- "debug": "4.3.4",
- "ini": "3.0.0",
- "inquirer": "8.2.4",
- "jsonc-parser": "3.1.0",
- "npm-package-arg": "9.1.0",
- "npm-pick-manifest": "7.0.1",
- "open": "8.4.0",
- "ora": "5.4.1",
- "pacote": "13.6.2",
- "resolve": "1.22.1",
- "semver": "7.3.7",
- "symbol-observable": "4.0.0",
- "uuid": "8.3.2",
- "yargs": "17.5.1"
- },
- "bin": {
- "ng": "bin/ng.js"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- }
- },
- "node_modules/@angular/common": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.6.tgz",
- "integrity": "sha512-WNX7xe8LKP5DHPlae+c77PDwj0iIAAPIe1lWbhQysyi8uttbtL9VVP2XTFuQ3E6oVHJr+0IR0LMVGJ+a8i6zsw==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "@angular/core": "14.2.6",
- "rxjs": "^6.5.3 || ^7.4.0"
- }
- },
- "node_modules/@angular/compiler": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.6.tgz",
- "integrity": "sha512-XtmJRNQQ/bUcRjB6jG67km3EPug8frnHH50sLqxye+cljCzWQpzFN/Qr1z0abuzEX8OC4alqxCDCFgTFyyVkaQ==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "@angular/core": "14.2.6"
- },
- "peerDependenciesMeta": {
- "@angular/core": {
- "optional": true
- }
- }
- },
- "node_modules/@angular/compiler-cli": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.6.tgz",
- "integrity": "sha512-zKnpZ5WDbM31dwr5GDAbCblMIEUzWSglUyqCxJfbCg21dE0EuLfd/WzsROgM2TucOtCT5xNipqz4bc+wdEOIgQ==",
- "dependencies": {
- "@babel/core": "^7.17.2",
- "chokidar": "^3.0.0",
- "convert-source-map": "^1.5.1",
- "dependency-graph": "^0.11.0",
- "magic-string": "^0.26.0",
- "reflect-metadata": "^0.1.2",
- "semver": "^7.0.0",
- "sourcemap-codec": "^1.4.8",
- "tslib": "^2.3.0",
- "yargs": "^17.2.1"
- },
- "bin": {
- "ng-xi18n": "bundles/src/bin/ng_xi18n.js",
- "ngc": "bundles/src/bin/ngc.js",
- "ngcc": "bundles/ngcc/main-ngcc.js"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "@angular/compiler": "14.2.6",
- "typescript": ">=4.6.2 <4.9"
- }
- },
- "node_modules/@angular/core": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.6.tgz",
- "integrity": "sha512-fEIz7E488X03tLIqmWQRpahxRRU2SMjb9i/rMUjMQJkbppJC3cykl31bCYzeixNO+zpE55GPGuQX2qI/yDenZA==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "rxjs": "^6.5.3 || ^7.4.0",
- "zone.js": "~0.11.4"
- }
- },
- "node_modules/@angular/flex-layout": {
- "version": "14.0.0-beta.41",
- "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-14.0.0-beta.41.tgz",
- "integrity": "sha512-x1YcxqkdFlcbVXEy9ebCgW/F+7n/MXkEkwEcVEIPf5v5qn7HZsjQxgIj35Lf0amvMyF7h35prpoxO1uX5+ntFg==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "peerDependencies": {
- "@angular/cdk": "^14.0.0",
- "@angular/common": "^14.0.0",
- "@angular/core": "^14.0.0",
- "@angular/platform-browser": "^14.0.0",
- "rxjs": "^6.5.3 || ^7.4.0"
- }
- },
- "node_modules/@angular/forms": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.6.tgz",
- "integrity": "sha512-t7Hd9RMnHbXRTdH/H8h8ZC3PsK1U4rH+XYaIbQNcys/XSf1uRFHx9MWqkwS5hoQEFOxkFSX5dRv2xSnHtxfq5w==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "@angular/common": "14.2.6",
- "@angular/core": "14.2.6",
- "@angular/platform-browser": "14.2.6",
- "rxjs": "^6.5.3 || ^7.4.0"
- }
- },
- "node_modules/@angular/language-service": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-14.2.6.tgz",
- "integrity": "sha512-o6MZ+n0zThdYhMDchgNAiqKme1pgFKvZfRibxgnntEua77BL0Ty7uEwDdehNk3eaVu8ddtW7svYfsGhL53HZWA==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- }
- },
- "node_modules/@angular/localize": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.6.tgz",
- "integrity": "sha512-cUUAPV9IFNkcMe/tauqaqaml9ZXbaZ75A2NXDom78ETwVCqybjtfJfSl3ExlfP4oFKw62XMJla8yuEE0ZMaLew==",
- "dependencies": {
- "@babel/core": "7.18.9",
- "glob": "8.0.3",
- "yargs": "^17.2.1"
- },
- "bin": {
- "localize-extract": "tools/bundles/src/extract/cli.js",
- "localize-migrate": "tools/bundles/src/migrate/cli.js",
- "localize-translate": "tools/bundles/src/translate/cli.js"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "@angular/compiler": "14.2.6",
- "@angular/compiler-cli": "14.2.6"
- }
- },
- "node_modules/@angular/localize/node_modules/@babel/core": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz",
- "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==",
- "dependencies": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.9",
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-module-transforms": "^7.18.9",
- "@babel/helpers": "^7.18.9",
- "@babel/parser": "^7.18.9",
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@angular/localize/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@angular/material": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.5.tgz",
- "integrity": "sha512-vC3F1r8WHclL1BbQVxOc9Ite1xH/pCOLnYYcx8HK1T2jlzeX7NxU1A58iBZC3rLj494tsMnRQDSZPXfazBiw0g==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "peerDependencies": {
- "@angular/animations": "^14.0.0 || ^15.0.0",
- "@angular/cdk": "14.2.5",
- "@angular/common": "^14.0.0 || ^15.0.0",
- "@angular/core": "^14.0.0 || ^15.0.0",
- "@angular/forms": "^14.0.0 || ^15.0.0",
- "@angular/platform-browser": "^14.0.0 || ^15.0.0",
- "rxjs": "^6.5.3 || ^7.4.0"
- }
- },
- "node_modules/@angular/platform-browser": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.6.tgz",
- "integrity": "sha512-KQUN4YVYEK5NOL7QFnDulQta6tm9rPh/mruX/XCLkSmoRMlFBmsHyjx+VJBnBNUbUxNsBj7kknifOu9PqDgAWg==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "@angular/animations": "14.2.6",
- "@angular/common": "14.2.6",
- "@angular/core": "14.2.6"
- },
- "peerDependenciesMeta": {
- "@angular/animations": {
- "optional": true
- }
- }
- },
- "node_modules/@angular/platform-browser-dynamic": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.6.tgz",
- "integrity": "sha512-SlWEYLED4ST1AFfgeB8SyKLVJYp36XT+3Vw3yDrObsthzXCiFAuYHQZfSWgT1Sfx3uFqEdN7nskJqD05wN3mQg==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "@angular/common": "14.2.6",
- "@angular/compiler": "14.2.6",
- "@angular/core": "14.2.6",
- "@angular/platform-browser": "14.2.6"
- }
- },
- "node_modules/@angular/router": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.6.tgz",
- "integrity": "sha512-Vz1kadGSqA7ZCZQ2woNbSBPMdiE5eTZv8cGympaFnFQQUzQTQ6zi22wY4RzovDk5Lw+EQkvOmaW2864LDzDeug==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0"
- },
- "peerDependencies": {
- "@angular/common": "14.2.6",
- "@angular/core": "14.2.6",
- "@angular/platform-browser": "14.2.6",
- "rxjs": "^6.5.3 || ^7.4.0"
- }
- },
- "node_modules/@assemblyscript/loader": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz",
- "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==",
- "dev": true
- },
- "node_modules/@auth0/angular-jwt": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@auth0/angular-jwt/-/angular-jwt-5.1.0.tgz",
- "integrity": "sha512-EAQoNKPQSZYphcX6FnY2e7xQpD4ZdHQ1DbHq/m+G1U1qA60m3XnhdjPPfu+blVHARlxEbRzWXc48UOVrnMsrZw==",
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "peerDependencies": {
- "@angular/common": ">=12.0.0"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
- "dependencies": {
- "@babel/highlight": "^7.22.13",
- "chalk": "^2.4.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
- "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz",
- "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==",
- "dependencies": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.10",
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-module-transforms": "^7.18.9",
- "@babel/helpers": "^7.18.9",
- "@babel/parser": "^7.18.10",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.18.10",
- "@babel/types": "^7.18.10",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.18.12",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz",
- "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==",
- "dependencies": {
- "@babel/types": "^7.18.10",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
- "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
- "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-explode-assignable-expression": "^7.18.6",
- "@babel/types": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.19.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
- "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
- "dependencies": {
- "@babel/compat-data": "^7.19.3",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.21.3",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz",
- "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.9",
- "@babel/helper-split-export-declaration": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz",
- "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "regexpu-core": "^5.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz",
- "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==",
- "dev": true,
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.17.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "debug": "^4.1.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2",
- "semver": "^6.1.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0-0"
- }
- },
- "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
- "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-explode-assignable-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
- "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
- "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
- "dependencies": {
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.23.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name/node_modules/@babel/template": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
- "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
- "dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/parser": "^7.22.15",
- "@babel/types": "^7.22.15"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
- "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz",
- "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==",
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.18.6",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
- "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz",
- "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
- "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-wrap-function": "^7.18.9",
- "@babel/types": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
- "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/traverse": "^7.19.1",
- "@babel/types": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz",
- "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==",
- "dependencies": {
- "@babel/types": "^7.19.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
- "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-wrap-function": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz",
- "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-function-name": "^7.19.0",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz",
- "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==",
- "dependencies": {
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.4",
- "@babel/types": "^7.19.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz",
- "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==",
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
- "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.13.0"
- }
- },
- "node_modules/@babel/plugin-proposal-async-generator-functions": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz",
- "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-remap-async-to-generator": "^7.18.9",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-class-properties": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
- "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-class-static-block": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
- "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0"
- }
- },
- "node_modules/@babel/plugin-proposal-dynamic-import": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
- "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-export-namespace-from": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
- "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-json-strings": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
- "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
- "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
- "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-numeric-separator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
- "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz",
- "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.19.4",
- "@babel/helper-compilation-targets": "^7.19.3",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.18.8"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
- "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-private-methods": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
- "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
- "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
- "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.3"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
- "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
- "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
- "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-remap-async-to-generator": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
- "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz",
- "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz",
- "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-compilation-targets": "^7.19.0",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-replace-supers": "^7.18.9",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
- "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz",
- "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
- "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
- "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
- "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
- "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-function-name": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
- "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-function-name": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-literals": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
- "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
- "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz",
- "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz",
- "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-simple-access": "^7.18.6",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz",
- "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-module-transforms": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-validator-identifier": "^7.18.6",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
- "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-transforms": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz",
- "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-new-target": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
- "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-object-super": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
- "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-parameters": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
- "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
- "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
- "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "regenerator-transform": "^0.15.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
- "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-runtime": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz",
- "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.9",
- "babel-plugin-polyfill-corejs2": "^0.3.2",
- "babel-plugin-polyfill-corejs3": "^0.5.3",
- "babel-plugin-polyfill-regenerator": "^0.4.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
- "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-spread": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz",
- "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
- "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
- "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
- "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
- "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
- "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/preset-env": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz",
- "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.18.8",
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-validator-option": "^7.18.6",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-async-generator-functions": "^7.18.10",
- "@babel/plugin-proposal-class-properties": "^7.18.6",
- "@babel/plugin-proposal-class-static-block": "^7.18.6",
- "@babel/plugin-proposal-dynamic-import": "^7.18.6",
- "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
- "@babel/plugin-proposal-json-strings": "^7.18.6",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
- "@babel/plugin-proposal-numeric-separator": "^7.18.6",
- "@babel/plugin-proposal-object-rest-spread": "^7.18.9",
- "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-private-methods": "^7.18.6",
- "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
- "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.18.6",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.18.6",
- "@babel/plugin-transform-async-to-generator": "^7.18.6",
- "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
- "@babel/plugin-transform-block-scoping": "^7.18.9",
- "@babel/plugin-transform-classes": "^7.18.9",
- "@babel/plugin-transform-computed-properties": "^7.18.9",
- "@babel/plugin-transform-destructuring": "^7.18.9",
- "@babel/plugin-transform-dotall-regex": "^7.18.6",
- "@babel/plugin-transform-duplicate-keys": "^7.18.9",
- "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
- "@babel/plugin-transform-for-of": "^7.18.8",
- "@babel/plugin-transform-function-name": "^7.18.9",
- "@babel/plugin-transform-literals": "^7.18.9",
- "@babel/plugin-transform-member-expression-literals": "^7.18.6",
- "@babel/plugin-transform-modules-amd": "^7.18.6",
- "@babel/plugin-transform-modules-commonjs": "^7.18.6",
- "@babel/plugin-transform-modules-systemjs": "^7.18.9",
- "@babel/plugin-transform-modules-umd": "^7.18.6",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6",
- "@babel/plugin-transform-new-target": "^7.18.6",
- "@babel/plugin-transform-object-super": "^7.18.6",
- "@babel/plugin-transform-parameters": "^7.18.8",
- "@babel/plugin-transform-property-literals": "^7.18.6",
- "@babel/plugin-transform-regenerator": "^7.18.6",
- "@babel/plugin-transform-reserved-words": "^7.18.6",
- "@babel/plugin-transform-shorthand-properties": "^7.18.6",
- "@babel/plugin-transform-spread": "^7.18.9",
- "@babel/plugin-transform-sticky-regex": "^7.18.6",
- "@babel/plugin-transform-template-literals": "^7.18.9",
- "@babel/plugin-transform-typeof-symbol": "^7.18.9",
- "@babel/plugin-transform-unicode-escapes": "^7.18.10",
- "@babel/plugin-transform-unicode-regex": "^7.18.6",
- "@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.18.10",
- "babel-plugin-polyfill-corejs2": "^0.3.2",
- "babel-plugin-polyfill-corejs3": "^0.5.3",
- "babel-plugin-polyfill-regenerator": "^0.4.0",
- "core-js-compat": "^3.22.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/preset-env/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/preset-modules": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
- "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
- "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
- "dev": true,
- "dependencies": {
- "regenerator-runtime": "^0.13.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz",
- "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==",
- "dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.3",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.23.3",
- "@babel/types": "^7.23.3",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/@babel/generator": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz",
- "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==",
- "dependencies": {
- "@babel/types": "^7.23.3",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz",
- "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==",
- "dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.20",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@biesbjerg/ngx-translate-extract": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@biesbjerg/ngx-translate-extract/-/ngx-translate-extract-7.0.4.tgz",
- "integrity": "sha512-33hR94Fu26LK7Z+ImW2IdZiHfOcAzyIs1CdkUXg/536z2MqxBYqPoI9Ghsk6RTEfnsGa65wMgOcDXn7Ilhp8ew==",
- "dev": true,
- "dependencies": {
- "@phenomnomnominal/tsquery": "^4.1.1",
- "boxen": "^5.0.1",
- "colorette": "^1.2.2",
- "flat": "^5.0.2",
- "gettext-parser": "^4.0.4",
- "glob": "^7.1.6",
- "mkdirp": "^1.0.4",
- "path": "^0.12.7",
- "terminal-link": "^2.1.1",
- "yargs": "^16.2.0"
- },
- "bin": {
- "ngx-translate-extract": "bin/cli.js"
- },
- "engines": {
- "node": ">=11.15.0"
- },
- "peerDependencies": {
- "@angular/compiler": ">=8.0.0",
- "typescript": ">=3.0.0"
- }
- },
- "node_modules/@biesbjerg/ngx-translate-extract-marker": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@biesbjerg/ngx-translate-extract-marker/-/ngx-translate-extract-marker-1.0.0.tgz",
- "integrity": "sha512-GlCBQKmFE+b+qfIO0aGvuRc4LJVSfK27K2QQFXZLP55/w28iiq/q2CnBS8ya+4l+hapm7U3QPtFoZu9lmbUuew==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.9.0"
- }
- },
- "node_modules/@biesbjerg/ngx-translate-extract-marker/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/@biesbjerg/ngx-translate-extract/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@biesbjerg/ngx-translate-extract/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@biesbjerg/ngx-translate-extract/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@biesbjerg/ngx-translate-extract/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@biesbjerg/ngx-translate-extract/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/@csstools/postcss-cascade-layers": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz",
- "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==",
- "dev": true,
- "dependencies": {
- "@csstools/selector-specificity": "^2.0.2",
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-color-function": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz",
- "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==",
- "dev": true,
- "dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-font-format-keywords": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz",
- "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-hwb-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz",
- "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-ic-unit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz",
- "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==",
- "dev": true,
- "dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-is-pseudo-class": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz",
- "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==",
- "dev": true,
- "dependencies": {
- "@csstools/selector-specificity": "^2.0.0",
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-nested-calc": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz",
- "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-normalize-display-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz",
- "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-oklab-function": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz",
- "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==",
- "dev": true,
- "dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-progressive-custom-properties": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz",
- "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.3"
- }
- },
- "node_modules/@csstools/postcss-stepped-value-functions": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz",
- "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-text-decoration-shorthand": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz",
- "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-trigonometric-functions": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz",
- "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/postcss-unset-value": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
- "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
- "dev": true,
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/@csstools/selector-specificity": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz",
- "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==",
- "dev": true,
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2",
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "node_modules/@danielmoncada/angular-datetime-picker": {
- "version": "14.2.0",
- "resolved": "https://registry.npmjs.org/@danielmoncada/angular-datetime-picker/-/angular-datetime-picker-14.2.0.tgz",
- "integrity": "sha512-84EqUeGyHKMVBgipWYUNdLTczjfF8TXnX6WpVZzeFB/t+ciZ7VtLm4OGgIV1tJ3Nxanr1g1Ft1TmzQoebz0iTA==",
- "dependencies": {
- "tslib": "^2.3.1"
- },
- "peerDependencies": {
- "@angular/cdk": "^13.0.3 || ^14.0.0",
- "@angular/common": "^13.0.3 || ^14.0.0",
- "@angular/core": "^13.0.3 || ^14.0.0"
- }
- },
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz",
- "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@gar/promisify": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
- "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
- "dev": true
- },
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
- "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
- "dependencies": {
- "@jridgewell/set-array": "^1.0.0",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
- "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
- "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@leichtgewicht/ip-codec": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
- "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==",
- "dev": true
- },
- "node_modules/@ngneat/until-destroy": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/@ngneat/until-destroy/-/until-destroy-9.2.2.tgz",
- "integrity": "sha512-pD5idTgUdF0XZMuaV1n0BZTnE2BvxymutoXhwfZbO3uxjh63wS6Pzzzwv+pkXalKhuSwdf6uA1gRx7DOvlj/Kw==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "peerDependencies": {
- "@angular/core": ">=13",
- "rxjs": "^6.4.0 || ^7.0.0"
- }
- },
- "node_modules/@ngtools/webpack": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.6.tgz",
- "integrity": "sha512-HdfoHLGPzyP135BOlvTQcpeWisVfiH0u40YNTBVK3QAsrLnY17e2QG5BWBOrVYipRu1975cZtTC9rPjcCY8aLQ==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || >=16.10.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- },
- "peerDependencies": {
- "@angular/compiler-cli": "^14.0.0",
- "typescript": ">=4.6.2 <4.9",
- "webpack": "^5.54.0"
- }
- },
- "node_modules/@ngx-rocket/ascii-logo": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@ngx-rocket/ascii-logo/-/ascii-logo-1.1.0.tgz",
- "integrity": "sha512-iGTX2tIAQmo/z2xiOsTAMxvO4wwHJkmutTzfJ+T/0Ebig54e1L2kgvctFRVHSj86UQUn8duzpuzcJJ4K4NK4jg==",
- "dev": true,
- "dependencies": {
- "chalk": "^2.0.1"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@ngx-rocket/scripts": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/@ngx-rocket/scripts/-/scripts-5.2.2.tgz",
- "integrity": "sha512-dKJ4EkTW6oa80Jwm0vtDGNSmmBKnKNH55Jday66QBDBJcGhTp69rhZfNFRu0tALtzD2sk/33824gDSheeeLIXw==",
- "dev": true,
- "dependencies": {
- "@ngx-rocket/ascii-logo": "^1.1.0",
- "chalk": "^4.1.0",
- "fs-extra": "^10.0.0",
- "lodash.get": "^4.4.2",
- "minimist": "^1.2.5"
- },
- "bin": {
- "ngx-scripts": "bin/ngx-scripts"
- },
- "engines": {
- "node": ">=12.14.1"
- }
- },
- "node_modules/@ngx-rocket/scripts/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@ngx-rocket/scripts/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/@ngx-rocket/scripts/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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@ngx-rocket/scripts/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==",
- "dev": true
- },
- "node_modules/@ngx-rocket/scripts/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@ngx-rocket/scripts/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/@ngx-translate/core": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-14.0.0.tgz",
- "integrity": "sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==",
- "dependencies": {
- "tslib": "^2.3.0"
- },
- "peerDependencies": {
- "@angular/core": ">=13.0.0",
- "rxjs": "^6.5.3 || ^7.4.0"
- }
- },
- "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.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.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/@npmcli/fs": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz",
- "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==",
- "dev": true,
- "dependencies": {
- "@gar/promisify": "^1.1.3",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/@npmcli/git": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz",
- "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==",
- "dev": true,
- "dependencies": {
- "@npmcli/promise-spawn": "^3.0.0",
- "lru-cache": "^7.4.4",
- "mkdirp": "^1.0.4",
- "npm-pick-manifest": "^7.0.0",
- "proc-log": "^2.0.0",
- "promise-inflight": "^1.0.1",
- "promise-retry": "^2.0.1",
- "semver": "^7.3.5",
- "which": "^2.0.2"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/@npmcli/git/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/@npmcli/installed-package-contents": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz",
- "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==",
- "dev": true,
- "dependencies": {
- "npm-bundled": "^1.1.1",
- "npm-normalize-package-bin": "^1.0.1"
- },
- "bin": {
- "installed-package-contents": "index.js"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@npmcli/move-file": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz",
- "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==",
- "dev": true,
- "dependencies": {
- "mkdirp": "^1.0.4",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/@npmcli/node-gyp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz",
- "integrity": "sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==",
- "dev": true,
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/@npmcli/promise-spawn": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz",
- "integrity": "sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==",
- "dev": true,
- "dependencies": {
- "infer-owner": "^1.0.4"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/@npmcli/run-script": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz",
- "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==",
- "dev": true,
- "dependencies": {
- "@npmcli/node-gyp": "^2.0.0",
- "@npmcli/promise-spawn": "^3.0.0",
- "node-gyp": "^9.0.0",
- "read-package-json-fast": "^2.0.3",
- "which": "^2.0.2"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/@npmcli/run-script/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/@phenomnomnominal/tsquery": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.2.0.tgz",
- "integrity": "sha512-hR2U3uVcrrdkuG30ItQ+uFDs4ncZAybxWG0OjTE8ptPzVoU7GVeXpy+vMU8zX9EbmjGeITPw/su5HjYQyAH8bA==",
- "dev": true,
- "dependencies": {
- "esquery": "^1.0.1"
- },
- "peerDependencies": {
- "typescript": "^3 || ^4"
- }
- },
- "node_modules/@schematics/angular": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.6.tgz",
- "integrity": "sha512-oeyMAQr3Q9nvAX+5FRgXcTMX9lqqenElBmAuwfqqdB0qD1jmkJ8TpWRuvYVA/931njpIwhfyLrzmzeNnJb23Sg==",
- "dev": true,
- "dependencies": {
- "@angular-devkit/core": "14.2.6",
- "@angular-devkit/schematics": "14.2.6",
- "jsonc-parser": "3.1.0"
- },
- "engines": {
- "node": "^14.15.0 || >=16.10.0",
- "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
- "yarn": ">= 1.13.0"
- }
- },
- "node_modules/@socket.io/component-emitter": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
- "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==",
- "dev": true
- },
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@types/body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
- "dev": true,
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/bonjour": {
- "version": "3.5.10",
- "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz",
- "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.35",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect-history-api-fallback": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz",
- "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==",
- "dev": true,
- "dependencies": {
- "@types/express-serve-static-core": "*",
- "@types/node": "*"
- }
- },
- "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==",
- "dev": true
- },
- "node_modules/@types/cors": {
- "version": "2.8.13",
- "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz",
- "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/eslint": {
- "version": "8.4.6",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz",
- "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==",
- "dev": true,
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "node_modules/@types/eslint-scope": {
- "version": "3.7.4",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
- "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
- "dev": true,
- "dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "0.0.51",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
- "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
- "dev": true
- },
- "node_modules/@types/express": {
- "version": "4.17.14",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz",
- "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==",
- "dev": true,
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.18",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "4.17.31",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz",
- "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*"
- }
- },
- "node_modules/@types/file-saver": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.5.tgz",
- "integrity": "sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==",
- "dev": true
- },
- "node_modules/@types/http-proxy": {
- "version": "1.17.9",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
- "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/jasmine": {
- "version": "3.10.6",
- "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.6.tgz",
- "integrity": "sha512-twY9adK/vz72oWxCWxzXaxoDtF9TpfEEsxvbc1ibjF3gMD/RThSuSud/GKUTR3aJnfbivAbC/vLqhY+gdWCHfA==",
- "dev": true
- },
- "node_modules/@types/jasminewd2": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz",
- "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==",
- "dev": true,
- "dependencies": {
- "@types/jasmine": "*"
- }
- },
- "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/mime": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
- "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==",
- "dev": true
- },
- "node_modules/@types/node": {
- "version": "18.8.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.5.tgz",
- "integrity": "sha512-Bq7G3AErwe5A/Zki5fdD3O6+0zDChhg671NfPjtIcbtzDNZTv4NPKMRFr7gtYPG7y+B8uTiNK4Ngd9T0FTar6Q==",
- "dev": true
- },
- "node_modules/@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
- "dev": true
- },
- "node_modules/@types/q": {
- "version": "0.0.32",
- "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
- "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==",
- "dev": true
- },
- "node_modules/@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
- "dev": true
- },
- "node_modules/@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
- "dev": true
- },
- "node_modules/@types/selenium-webdriver": {
- "version": "3.0.20",
- "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz",
- "integrity": "sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA==",
- "dev": true
- },
- "node_modules/@types/serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==",
- "dev": true,
- "dependencies": {
- "@types/express": "*"
- }
- },
- "node_modules/@types/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
- "dev": true,
- "dependencies": {
- "@types/mime": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/sockjs": {
- "version": "0.3.33",
- "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz",
- "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/ws": {
- "version": "8.5.3",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
- "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@webassemblyjs/ast": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
- "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/helper-numbers": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
- }
- },
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
- "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
- "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
- "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
- "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
- "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
- "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1"
- }
- },
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
- "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
- "dev": true,
- "dependencies": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
- "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
- "dev": true,
- "dependencies": {
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
- "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==",
- "dev": true
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
- "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/helper-wasm-section": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-opt": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
- "@webassemblyjs/wast-printer": "1.11.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
- "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
- "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
- "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
- }
- },
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
- "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.11.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "dev": true
- },
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "dev": true
- },
- "node_modules/@yarnpkg/lockfile": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
- "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
- "dev": true
- },
- "node_modules/abab": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
- "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "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==",
- "dev": true,
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-import-assertions": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
- "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
- "dev": true,
- "peerDependencies": {
- "acorn": "^8"
- }
- },
- "node_modules/adjust-sourcemap-loader": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz",
- "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==",
- "dev": true,
- "dependencies": {
- "loader-utils": "^2.0.0",
- "regex-parser": "^2.2.11"
- },
- "engines": {
- "node": ">=8.9"
- }
- },
- "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- },
- "engines": {
- "node": ">=8.9.0"
- }
- },
- "node_modules/adm-zip": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
- "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
- "dev": true,
- "engines": {
- "node": ">=0.3.0"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/agentkeepalive": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
- "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.0",
- "depd": "^1.1.2",
- "humanize-ms": "^1.2.1"
- },
- "engines": {
- "node": ">= 8.0.0"
- }
- },
- "node_modules/agentkeepalive/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
- "dev": true,
- "dependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "ajv": {
- "optional": true
- }
- }
- },
- "node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/ansi-align": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
- "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.1.0"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-html-community": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
- "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
- "dev": true,
- "engines": [
- "node >= 0.8.0"
- ],
- "bin": {
- "ansi-html": "bin/ansi-html"
- }
- },
- "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": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "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==",
- "dev": true
- },
- "node_modules/are-we-there-yet": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
- "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
- "dev": true,
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/array-flatten": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
- "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
- "dev": true
- },
- "node_modules/array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
- "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": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "dev": true,
- "dependencies": {
- "safer-buffer": "~2.1.0"
- }
- },
- "node_modules/assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
- "dev": true,
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==",
- "dev": true
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "node_modules/autoprefixer": {
- "version": "10.4.12",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
- "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- }
- ],
- "dependencies": {
- "browserslist": "^4.21.4",
- "caniuse-lite": "^1.0.30001407",
- "fraction.js": "^4.2.0",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/aws4": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
- "dev": true
- },
- "node_modules/babel-loader": {
- "version": "8.2.5",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
- "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
- "dev": true,
- "dependencies": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.0",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
- },
- "engines": {
- "node": ">= 8.9"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0",
- "webpack": ">=2"
- }
- },
- "node_modules/babel-loader/node_modules/loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- },
- "engines": {
- "node": ">=8.9.0"
- }
- },
- "node_modules/babel-plugin-dynamic-import-node": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
- "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
- "dev": true,
- "dependencies": {
- "object.assign": "^4.1.0"
- }
- },
- "node_modules/babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^5.0.4",
- "test-exclude": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz",
- "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.17.7",
- "@babel/helper-define-polyfill-provider": "^0.3.3",
- "semver": "^6.1.1"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
- "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.3.2",
- "core-js-compat": "^3.21.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz",
- "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.3.3"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "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==",
- "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/base64id": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
- "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
- "dev": true,
- "engines": {
- "node": "^4.5.0 || >= 5.9"
- }
- },
- "node_modules/batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
- "dev": true
- },
- "node_modules/bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
- "dev": true,
- "dependencies": {
- "tweetnacl": "^0.14.3"
- }
- },
- "node_modules/big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "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==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dev": true,
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "node_modules/blocking-proxy": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz",
- "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "blocking-proxy": "built/lib/bin.js"
- },
- "engines": {
- "node": ">=6.9.x"
- }
- },
- "node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/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/body-parser/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==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/bonjour-service": {
- "version": "1.0.14",
- "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz",
- "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==",
- "dev": true,
- "dependencies": {
- "array-flatten": "^2.1.2",
- "dns-equal": "^1.0.0",
- "fast-deep-equal": "^3.1.3",
- "multicast-dns": "^7.2.5"
- }
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
- },
- "node_modules/boxen": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
- "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
- "dev": true,
- "dependencies": {
- "ansi-align": "^3.0.0",
- "camelcase": "^6.2.0",
- "chalk": "^4.1.0",
- "cli-boxes": "^2.2.1",
- "string-width": "^4.2.2",
- "type-fest": "^0.20.2",
- "widest-line": "^3.1.0",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/boxen/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/boxen/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/boxen/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/boxen/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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/boxen/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==",
- "dev": true
- },
- "node_modules/boxen/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/boxen/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/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/browserstack": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz",
- "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==",
- "dev": true,
- "dependencies": {
- "https-proxy-agent": "^2.2.1"
- }
- },
- "node_modules/browserstack/node_modules/agent-base": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
- "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
- "dev": true,
- "dependencies": {
- "es6-promisify": "^5.0.0"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/browserstack/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/browserstack/node_modules/https-proxy-agent": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
- "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
- "dev": true,
- "dependencies": {
- "agent-base": "^4.3.0",
- "debug": "^3.1.0"
- },
- "engines": {
- "node": ">= 4.5.0"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "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": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "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==",
- "dev": true
- },
- "node_modules/builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/builtins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
- "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
- "dev": true,
- "dependencies": {
- "semver": "^7.0.0"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/cacache": {
- "version": "16.1.2",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.2.tgz",
- "integrity": "sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA==",
- "dev": true,
- "dependencies": {
- "@npmcli/fs": "^2.1.0",
- "@npmcli/move-file": "^2.0.0",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.1.0",
- "glob": "^8.0.1",
- "infer-owner": "^1.0.4",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "mkdirp": "^1.0.4",
- "p-map": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "rimraf": "^3.0.2",
- "ssri": "^9.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^1.1.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001418",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz",
- "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- }
- ]
- },
- "node_modules/caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
- "dev": true
- },
- "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==",
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
- "dev": true
- },
- "node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "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/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/chrome-trace-event": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
- "dev": true,
- "engines": {
- "node": ">=6.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": "2.2.1",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
- "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "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==",
- "dev": true,
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cli-spinners": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz",
- "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "dev": true,
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "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==",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "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==",
- "dev": true,
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/colorette": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
- "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
- "dev": true
- },
- "node_modules/colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "dev": true,
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "9.4.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
- "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || >=14"
- }
- },
- "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/compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "dev": true,
- "dependencies": {
- "mime-db": ">= 1.43.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compression": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
- "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
- "dev": true,
- "dependencies": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
- "debug": "2.6.9",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/compression/node_modules/bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/compression/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/compression/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/compression/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "node_modules/connect": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
- "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
- "dev": true,
- "dependencies": {
- "debug": "2.6.9",
- "finalhandler": "1.1.2",
- "parseurl": "~1.3.3",
- "utils-merge": "1.0.1"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/connect-history-api-fallback": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
- "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
- "dev": true,
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/connect/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/connect/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "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": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "dev": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dev": true
- },
- "node_modules/copy-anything": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
- "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
- "dev": true,
- "dependencies": {
- "is-what": "^3.14.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/mesqueeb"
- }
- },
- "node_modules/copy-webpack-plugin": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz",
- "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==",
- "dev": true,
- "dependencies": {
- "fast-glob": "^3.2.11",
- "glob-parent": "^6.0.1",
- "globby": "^13.1.1",
- "normalize-path": "^3.0.0",
- "schema-utils": "^4.0.0",
- "serialize-javascript": "^6.0.0"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- }
- },
- "node_modules/copy-webpack-plugin/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/copy-webpack-plugin/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/core-js-compat": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz",
- "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.21.4"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "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==",
- "dev": true,
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/cosmiconfig": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
- "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
- "dev": true,
- "dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
- },
- "node_modules/critters": {
- "version": "0.0.16",
- "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz",
- "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "css-select": "^4.2.0",
- "parse5": "^6.0.1",
- "parse5-htmlparser2-tree-adapter": "^6.0.1",
- "postcss": "^8.3.7",
- "pretty-bytes": "^5.3.0"
- }
- },
- "node_modules/critters/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/critters/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/critters/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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/critters/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==",
- "dev": true
- },
- "node_modules/critters/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/critters/node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- },
- "node_modules/critters/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/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/cross-spawn/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/css-blank-pseudo": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz",
- "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.9"
- },
- "bin": {
- "css-blank-pseudo": "dist/cli.cjs"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/css-has-pseudo": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz",
- "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.9"
- },
- "bin": {
- "css-has-pseudo": "dist/cli.cjs"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/css-loader": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz",
- "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==",
- "dev": true,
- "dependencies": {
- "icss-utils": "^5.1.0",
- "postcss": "^8.4.7",
- "postcss-modules-extract-imports": "^3.0.0",
- "postcss-modules-local-by-default": "^4.0.0",
- "postcss-modules-scope": "^3.0.0",
- "postcss-modules-values": "^4.0.0",
- "postcss-value-parser": "^4.2.0",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- }
- },
- "node_modules/css-prefers-color-scheme": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz",
- "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==",
- "dev": true,
- "bin": {
- "css-prefers-color-scheme": "dist/cli.cjs"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "dev": true,
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/cssdb": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.1.tgz",
- "integrity": "sha512-pT3nzyGM78poCKLAEy2zWIVX2hikq6dIrjuZzLV98MumBg+xMTNYfHx7paUlfiRTgg91O/vR889CIf+qiv79Rw==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/custom-event": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
- "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==",
- "dev": true
- },
- "node_modules/dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/date-format": {
- "version": "4.0.14",
- "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz",
- "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "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/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/default-gateway": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
- "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
- "dev": true,
- "dependencies": {
- "execa": "^5.0.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "dev": true,
- "dependencies": {
- "clone": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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/del": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
- "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==",
- "dev": true,
- "dependencies": {
- "globby": "^5.0.0",
- "is-path-cwd": "^1.0.0",
- "is-path-in-cwd": "^1.0.0",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "rimraf": "^2.2.8"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/del/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/del/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/del/node_modules/globby": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
- "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==",
- "dev": true,
- "dependencies": {
- "array-union": "^1.0.1",
- "arrify": "^1.0.0",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/del/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/del/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
- "dev": true
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/dependency-graph": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
- "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
- "dev": true
- },
- "node_modules/di": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
- "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==",
- "dev": true
- },
- "node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/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/dns-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
- "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==",
- "dev": true
- },
- "node_modules/dns-packet": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz",
- "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
- "dev": true,
- "dependencies": {
- "@leichtgewicht/ip-codec": "^2.0.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/dom-serialize": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
- "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==",
- "dev": true,
- "dependencies": {
- "custom-event": "~1.0.0",
- "ent": "~2.2.0",
- "extend": "^3.0.0",
- "void-elements": "^2.0.0"
- }
- },
- "node_modules/dom-serializer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
- "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.2.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dev": true,
- "dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "dev": true,
- "dependencies": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "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==",
- "dev": true
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.281",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.281.tgz",
- "integrity": "sha512-yer0w5wCYdFoZytfmbNhwiGI/3cW06+RV7E23ln4490DVMxs7PvYpbsrSmAiBn/V6gode8wvJlST2YfWgvzWIg=="
- },
- "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/emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "dev": true,
- "dependencies": {
- "iconv-lite": "^0.6.2"
- }
- },
- "node_modules/engine.io": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz",
- "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==",
- "dev": true,
- "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.11.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/engine.io-parser": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
- "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/enhanced-resolve": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz",
- "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/ent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
- "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==",
- "dev": true
- },
- "node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "dev": true,
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/err-code": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
- "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
- "dev": true
- },
- "node_modules/errno": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
- "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "prr": "~1.0.1"
- },
- "bin": {
- "errno": "cli.js"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
- "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
- "dev": true
- },
- "node_modules/es6-promise": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
- "dev": true
- },
- "node_modules/es6-promisify": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
- "dev": true,
- "dependencies": {
- "es6-promise": "^4.0.3"
- }
- },
- "node_modules/esbuild": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz",
- "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/linux-loong64": "0.15.5",
- "esbuild-android-64": "0.15.5",
- "esbuild-android-arm64": "0.15.5",
- "esbuild-darwin-64": "0.15.5",
- "esbuild-darwin-arm64": "0.15.5",
- "esbuild-freebsd-64": "0.15.5",
- "esbuild-freebsd-arm64": "0.15.5",
- "esbuild-linux-32": "0.15.5",
- "esbuild-linux-64": "0.15.5",
- "esbuild-linux-arm": "0.15.5",
- "esbuild-linux-arm64": "0.15.5",
- "esbuild-linux-mips64le": "0.15.5",
- "esbuild-linux-ppc64le": "0.15.5",
- "esbuild-linux-riscv64": "0.15.5",
- "esbuild-linux-s390x": "0.15.5",
- "esbuild-netbsd-64": "0.15.5",
- "esbuild-openbsd-64": "0.15.5",
- "esbuild-sunos-64": "0.15.5",
- "esbuild-windows-32": "0.15.5",
- "esbuild-windows-64": "0.15.5",
- "esbuild-windows-arm64": "0.15.5"
- }
- },
- "node_modules/esbuild-android-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz",
- "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-android-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz",
- "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-darwin-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz",
- "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-darwin-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz",
- "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-freebsd-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz",
- "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-freebsd-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz",
- "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-32": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz",
- "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz",
- "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-arm": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz",
- "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz",
- "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-mips64le": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz",
- "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-ppc64le": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz",
- "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-riscv64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz",
- "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-s390x": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz",
- "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-netbsd-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz",
- "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-openbsd-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz",
- "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-sunos-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz",
- "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-wasm": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.5.tgz",
- "integrity": "sha512-lTJOEKekN/4JI/eOEq0wLcx53co2N6vaT/XjBz46D1tvIVoUEyM0o2K6txW6gEotf31szFD/J1PbxmnbkGlK9A==",
- "dev": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-32": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz",
- "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz",
- "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz",
- "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "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-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "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-scope/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/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/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/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "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==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/eventemitter-asyncresource": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz",
- "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==",
- "dev": true
- },
- "node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "dev": true
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true,
- "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/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dev": true,
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express/node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dev": true
- },
- "node_modules/express/node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dev": true,
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/express/node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "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/external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
- "dev": true,
- "dependencies": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/external-editor/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==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
- "dev": true,
- "engines": [
- "node >=0.6.0"
- ]
- },
- "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==",
- "dev": true
- },
- "node_modules/fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
- "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/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/fastq": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
- "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/faye-websocket": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
- "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
- "dev": true,
- "dependencies": {
- "websocket-driver": ">=0.5.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/file-saver": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
- "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
- },
- "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==",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "dev": true,
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/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/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/finalhandler/node_modules/on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
- "dev": true,
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.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": "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/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true,
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
- },
- "node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
- "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
- "dev": true,
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "patreon",
- "url": "https://www.patreon.com/infusion"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "dev": true,
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "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==",
- "dev": true
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "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==",
- "dev": true
- },
- "node_modules/gauge": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
- "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
- "dev": true,
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.3",
- "console-control-strings": "^1.1.0",
- "has-unicode": "^2.0.1",
- "signal-exit": "^3.0.7",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.5"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0"
- }
- },
- "node_modules/gettext-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.2.0.tgz",
- "integrity": "sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q==",
- "dev": true,
- "dependencies": {
- "content-type": "^1.0.4",
- "encoding": "^0.1.13",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.1"
- }
- },
- "node_modules/glob": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
- "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "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==",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "dev": true
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/globby": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz",
- "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==",
- "dev": true,
- "dependencies": {
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.11",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "dev": true
- },
- "node_modules/handle-thing": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
- "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
- "dev": true
- },
- "node_modules/har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "deprecated": "this library is no longer supported",
- "dev": true,
- "dependencies": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/har-validator/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/har-validator/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/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "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-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "engines": {
- "node": ">=4"
- }
- },
- "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==",
- "dev": true,
- "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": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "dev": true
- },
- "node_modules/hdr-histogram-js": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz",
- "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==",
- "dev": true,
- "dependencies": {
- "@assemblyscript/loader": "^0.10.1",
- "base64-js": "^1.2.0",
- "pako": "^1.0.3"
- }
- },
- "node_modules/hdr-histogram-percentiles-obj": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz",
- "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==",
- "dev": true
- },
- "node_modules/hosted-git-info": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz",
- "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^7.5.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/hpack.js": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "obuf": "^1.0.0",
- "readable-stream": "^2.0.1",
- "wbuf": "^1.1.0"
- }
- },
- "node_modules/hpack.js/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/hpack.js/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/hpack.js/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/html-entities": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz",
- "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==",
- "dev": true
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "node_modules/htmlhint": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-1.1.4.tgz",
- "integrity": "sha512-tSKPefhIaaWDk/vKxAOQbN+QwZmDeJCq3bZZGbJMoMQAfTjepudC+MkuT9MOBbuQI3dLLzDWbmU7fLV3JASC7Q==",
- "dev": true,
- "dependencies": {
- "async": "3.2.3",
- "chalk": "^4.1.2",
- "commander": "^9.1.0",
- "glob": "^7.2.0",
- "is-glob": "^4.0.3",
- "node-fetch": "^2.6.2",
- "strip-json-comments": "3.1.0",
- "xml": "1.0.1"
- },
- "bin": {
- "htmlhint": "bin/htmlhint"
- }
- },
- "node_modules/htmlhint/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/htmlhint/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/htmlhint/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/htmlhint/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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/htmlhint/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==",
- "dev": true
- },
- "node_modules/htmlhint/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/htmlhint/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/htmlhint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/htmlhint/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/http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
- "dev": true
- },
- "node_modules/http-deceiver": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
- "dev": true
- },
- "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==",
- "dev": true,
- "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/http-errors/node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-parser-js": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
- "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
- "dev": true
- },
- "node_modules/http-proxy": {
- "version": "1.18.1",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
- "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
- "dev": true,
- "dependencies": {
- "eventemitter3": "^4.0.0",
- "follow-redirects": "^1.0.0",
- "requires-port": "^1.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
- "dev": true,
- "dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/http-proxy-middleware": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
- "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
- "dev": true,
- "dependencies": {
- "@types/http-proxy": "^1.17.8",
- "http-proxy": "^1.18.1",
- "is-glob": "^4.0.1",
- "is-plain-obj": "^3.0.0",
- "micromatch": "^4.0.2"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "@types/express": "^4.17.13"
- },
- "peerDependenciesMeta": {
- "@types/express": {
- "optional": true
- }
- }
- },
- "node_modules/http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- },
- "engines": {
- "node": ">=0.8",
- "npm": ">=1.3.7"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "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/humanize-ms": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.0.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/icss-utils": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
- "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.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==",
- "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/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/ignore-walk": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz",
- "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==",
- "dev": true,
- "dependencies": {
- "minimatch": "^5.0.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/image-size": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
- "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
- "dev": true,
- "optional": true,
- "bin": {
- "image-size": "bin/image-size.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/immediate": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
- "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
- "dev": true
- },
- "node_modules/immutable": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz",
- "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==",
- "dev": true
- },
- "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": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/infer-owner": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
- "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
- "dev": true
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "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": "3.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.0.tgz",
- "integrity": "sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==",
- "dev": true,
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/inquirer": {
- "version": "8.2.4",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz",
- "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==",
- "dev": true,
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.1",
- "cli-cursor": "^3.1.0",
- "cli-width": "^3.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.21",
- "mute-stream": "0.0.8",
- "ora": "^5.4.1",
- "run-async": "^2.4.0",
- "rxjs": "^7.5.5",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/inquirer/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/inquirer/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/inquirer/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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/inquirer/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==",
- "dev": true
- },
- "node_modules/inquirer/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inquirer/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/ip": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
- "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
- "dev": true
- },
- "node_modules/ipaddr.js": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
- "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "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==",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
- "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
- "dev": true,
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "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-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "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==",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-interactive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-lambda": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
- "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
- "dev": true
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-path-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
- "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-path-in-cwd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
- "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
- "dev": true,
- "dependencies": {
- "is-path-inside": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-path-inside": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
- "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==",
- "dev": true,
- "dependencies": {
- "path-is-inside": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
- "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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-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-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
- "node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-what": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
- "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
- "dev": true
- },
- "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": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
- },
- "node_modules/isbinaryfile": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
- "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
- "dev": true,
- "engines": {
- "node": ">= 8.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/gjtorikian/"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
- "dev": true
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
- "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
- "dev": true,
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-report/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-report/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/istanbul-lib-source-maps": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
- "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "rimraf": "^2.6.3",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/istanbul-lib-source-maps/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/istanbul-lib-source-maps/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/istanbul-lib-source-maps/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==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
- "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
- "dev": true,
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jasmine": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz",
- "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==",
- "dev": true,
- "dependencies": {
- "exit": "^0.1.2",
- "glob": "^7.0.6",
- "jasmine-core": "~2.8.0"
- },
- "bin": {
- "jasmine": "bin/jasmine.js"
- }
- },
- "node_modules/jasmine-core": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.3.0.tgz",
- "integrity": "sha512-qybtBUesniQdW6n+QIHMng2vDOHscIC/dEXjW+JzO9+LoAZMb03RCUC5xFOv/btSKPm1xL42fn+RjlU4oB42Lg==",
- "dev": true
- },
- "node_modules/jasmine-spec-reporter": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz",
- "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==",
- "dev": true,
- "dependencies": {
- "colors": "1.4.0"
- }
- },
- "node_modules/jasmine/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jasmine/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/jasmine/node_modules/jasmine-core": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz",
- "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==",
- "dev": true
- },
- "node_modules/jasmine/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jasminewd2": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz",
- "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==",
- "dev": true,
- "engines": {
- "node": ">= 6.9.x"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/jest-worker/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-worker/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==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
- "dev": true
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
- "dev": true
- },
- "node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jsonc-parser": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz",
- "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==",
- "dev": true
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "dev": true,
- "engines": [
- "node >= 0.2.0"
- ]
- },
- "node_modules/jsprim": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
- "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "dev": true,
- "dependencies": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/jszip": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
- "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
- "dev": true,
- "dependencies": {
- "lie": "~3.3.0",
- "pako": "~1.0.2",
- "readable-stream": "~2.3.6",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/jszip/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/jszip/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/jszip/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/karma": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz",
- "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==",
- "dev": true,
- "dependencies": {
- "@colors/colors": "1.5.0",
- "body-parser": "^1.19.0",
- "braces": "^3.0.2",
- "chokidar": "^3.5.1",
- "connect": "^3.7.0",
- "di": "^0.0.1",
- "dom-serialize": "^2.2.1",
- "glob": "^7.1.7",
- "graceful-fs": "^4.2.6",
- "http-proxy": "^1.18.1",
- "isbinaryfile": "^4.0.8",
- "lodash": "^4.17.21",
- "log4js": "^6.4.1",
- "mime": "^2.5.2",
- "minimatch": "^3.0.4",
- "mkdirp": "^0.5.5",
- "qjobs": "^1.2.0",
- "range-parser": "^1.2.1",
- "rimraf": "^3.0.2",
- "socket.io": "^4.4.1",
- "source-map": "^0.6.1",
- "tmp": "^0.2.1",
- "ua-parser-js": "^0.7.30",
- "yargs": "^16.1.1"
- },
- "bin": {
- "karma": "bin/karma"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/karma-chrome-launcher": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz",
- "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==",
- "dev": true,
- "dependencies": {
- "which": "^1.2.1"
- }
- },
- "node_modules/karma-coverage-istanbul-reporter": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz",
- "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==",
- "dev": true,
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^3.0.6",
- "istanbul-reports": "^3.0.2",
- "minimatch": "^3.0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/mattlewis92"
- }
- },
- "node_modules/karma-coverage-istanbul-reporter/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/karma-coverage-istanbul-reporter/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/karma-jasmine": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz",
- "integrity": "sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==",
- "dev": true,
- "dependencies": {
- "jasmine-core": "^3.6.0"
- },
- "engines": {
- "node": ">= 10"
- },
- "peerDependencies": {
- "karma": "*"
- }
- },
- "node_modules/karma-jasmine-html-reporter": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz",
- "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==",
- "dev": true,
- "peerDependencies": {
- "jasmine-core": ">=3.8",
- "karma": ">=0.9",
- "karma-jasmine": ">=1.1"
- }
- },
- "node_modules/karma-jasmine/node_modules/jasmine-core": {
- "version": "3.99.1",
- "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz",
- "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==",
- "dev": true
- },
- "node_modules/karma-junit-reporter": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz",
- "integrity": "sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==",
- "dev": true,
- "dependencies": {
- "path-is-absolute": "^1.0.0",
- "xmlbuilder": "12.0.0"
- },
- "engines": {
- "node": ">= 8"
- },
- "peerDependencies": {
- "karma": ">=0.9"
- }
- },
- "node_modules/karma-source-map-support": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz",
- "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==",
- "dev": true,
- "dependencies": {
- "source-map-support": "^0.5.5"
- }
- },
- "node_modules/karma/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/karma/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/karma/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/karma/node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/karma/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==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/karma/node_modules/tmp": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
- "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
- "dev": true,
- "dependencies": {
- "rimraf": "^3.0.0"
- },
- "engines": {
- "node": ">=8.17.0"
- }
- },
- "node_modules/karma/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/karma/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/klona": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz",
- "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/less": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz",
- "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==",
- "dev": true,
- "dependencies": {
- "copy-anything": "^2.0.1",
- "parse-node-version": "^1.0.1",
- "tslib": "^2.3.0"
- },
- "bin": {
- "lessc": "bin/lessc"
- },
- "engines": {
- "node": ">=6"
- },
- "optionalDependencies": {
- "errno": "^0.1.1",
- "graceful-fs": "^4.1.2",
- "image-size": "~0.5.0",
- "make-dir": "^2.1.0",
- "mime": "^1.4.1",
- "needle": "^3.1.0",
- "source-map": "~0.6.0"
- }
- },
- "node_modules/less-loader": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.0.0.tgz",
- "integrity": "sha512-9+LOWWjuoectIEx3zrfN83NAGxSUB5pWEabbbidVQVgZhN+wN68pOvuyirVlH1IK4VT1f3TmlyvAnCXh8O5KEw==",
- "dev": true,
- "dependencies": {
- "klona": "^2.0.4"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "less": "^3.5.0 || ^4.0.0",
- "webpack": "^5.0.0"
- }
- },
- "node_modules/less/node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/less/node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
- "optional": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/less/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,
- "optional": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/less/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "optional": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/less/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==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/license-webpack-plugin": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz",
- "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==",
- "dev": true,
- "dependencies": {
- "webpack-sources": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "webpack": {
- "optional": true
- },
- "webpack-sources": {
- "optional": true
- }
- }
- },
- "node_modules/lie": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
- "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
- "dev": true,
- "dependencies": {
- "immediate": "~3.0.5"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
- "dev": true,
- "engines": {
- "node": ">=6.11.5"
- }
- },
- "node_modules/loader-utils": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz",
- "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==",
- "dev": true,
- "engines": {
- "node": ">= 12.13.0"
- }
- },
- "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/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true
- },
- "node_modules/lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "dev": true
- },
- "node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-symbols/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/log-symbols/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/log-symbols/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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/log-symbols/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==",
- "dev": true
- },
- "node_modules/log-symbols/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/log-symbols/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/log4js": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.7.0.tgz",
- "integrity": "sha512-KA0W9ffgNBLDj6fZCq/lRbgR6ABAodRIDHrZnS48vOtfKa4PzWImb0Md1lmGCdO3n3sbCm/n1/WmrNlZ8kCI3Q==",
- "dev": true,
- "dependencies": {
- "date-format": "^4.0.14",
- "debug": "^4.3.4",
- "flatted": "^3.2.7",
- "rfdc": "^1.3.0",
- "streamroller": "^3.1.3"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/lru-cache": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz",
- "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/magic-string": {
- "version": "0.26.2",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz",
- "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==",
- "dependencies": {
- "sourcemap-codec": "^1.4.8"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "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==",
- "dev": true,
- "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.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
- },
- "node_modules/make-fetch-happen": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz",
- "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==",
- "dev": true,
- "dependencies": {
- "agentkeepalive": "^4.2.1",
- "cacache": "^16.1.0",
- "http-cache-semantics": "^4.1.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-fetch": "^2.0.3",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^7.0.0",
- "ssri": "^9.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/material-design-icons-iconfont": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.7.0.tgz",
- "integrity": "sha512-lSj71DgVv20kO0kGbs42icDzbRot61gEDBLQACzkUuznRQBUYmbxzEkGU6dNBb5fRWHMaScYlAXX96HQ4/cJWA=="
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/memfs": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz",
- "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==",
- "dev": true,
- "dependencies": {
- "fs-monkey": "^1.0.3"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "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/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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/mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/mini-css-extract-plugin": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz",
- "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==",
- "dev": true,
- "dependencies": {
- "schema-utils": "^4.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- }
- },
- "node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true
- },
- "node_modules/minimatch": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
- "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz",
- "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-collect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
- "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minipass-fetch": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz",
- "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.1.6",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- },
- "optionalDependencies": {
- "encoding": "^0.1.13"
- }
- },
- "node_modules/minipass-flush": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minipass-json-stream": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz",
- "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==",
- "dev": true,
- "dependencies": {
- "jsonparse": "^1.3.1",
- "minipass": "^3.0.0"
- }
- },
- "node_modules/minipass-pipeline": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
- "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-sized": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
- "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.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==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
- "engines": {
- "node": "*"
- }
- },
- "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/multicast-dns": {
- "version": "7.2.5",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
- "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
- "dev": true,
- "dependencies": {
- "dns-packet": "^5.2.2",
- "thunky": "^1.0.2"
- },
- "bin": {
- "multicast-dns": "cli.js"
- }
- },
- "node_modules/mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
- "dev": true
- },
- "node_modules/nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
- "dev": true,
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/needle": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/needle/-/needle-3.1.0.tgz",
- "integrity": "sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "debug": "^3.2.6",
- "iconv-lite": "^0.6.3",
- "sax": "^1.2.4"
- },
- "bin": {
- "needle": "bin/needle"
- },
- "engines": {
- "node": ">= 4.4.x"
- }
- },
- "node_modules/needle/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "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==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
- },
- "node_modules/ngx-image-compress": {
- "version": "13.1.13",
- "resolved": "https://registry.npmjs.org/ngx-image-compress/-/ngx-image-compress-13.1.13.tgz",
- "integrity": "sha512-swSuG7lsMmMDdj7muD/RS5hgNjLG5/I28B44z2qe79sF0Mi3FFYz6WlGMWhyk4K6DCqfxvLuJsegTT5/6lGFmQ==",
- "dependencies": {
- "tslib": "^2.3.1"
- },
- "peerDependencies": {
- "@angular/common": ">= 9",
- "@angular/core": ">= 9"
- }
- },
- "node_modules/nice-napi": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz",
- "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "!win32"
- ],
- "dependencies": {
- "node-addon-api": "^3.0.0",
- "node-gyp-build": "^4.2.2"
- }
- },
- "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==",
- "dev": true,
- "optional": true
- },
- "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==",
- "dev": true,
- "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-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
- "dev": true,
- "engines": {
- "node": ">= 6.13.0"
- }
- },
- "node_modules/node-gyp": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz",
- "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==",
- "dev": true,
- "dependencies": {
- "env-paths": "^2.2.0",
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^10.0.3",
- "nopt": "^6.0.0",
- "npmlog": "^6.0.0",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.2",
- "which": "^2.0.2"
- },
- "bin": {
- "node-gyp": "bin/node-gyp.js"
- },
- "engines": {
- "node": "^12.22 || ^14.13 || >=16"
- }
- },
- "node_modules/node-gyp-build": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz",
- "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==",
- "dev": true,
- "optional": true,
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
- }
- },
- "node_modules/node-gyp/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/node-gyp/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/node-gyp/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/node-gyp/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/node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
- },
- "node_modules/nopt": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz",
- "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==",
- "dev": true,
- "dependencies": {
- "abbrev": "^1.0.0"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/normalize-package-data": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz",
- "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^5.0.0",
- "is-core-module": "^2.8.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-bundled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
- "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==",
- "dev": true,
- "dependencies": {
- "npm-normalize-package-bin": "^1.0.1"
- }
- },
- "node_modules/npm-install-checks": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz",
- "integrity": "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==",
- "dev": true,
- "dependencies": {
- "semver": "^7.1.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm-normalize-package-bin": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
- "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
- "dev": true
- },
- "node_modules/npm-package-arg": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz",
- "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^5.0.0",
- "proc-log": "^2.0.1",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^4.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm-packlist": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz",
- "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==",
- "dev": true,
- "dependencies": {
- "glob": "^8.0.1",
- "ignore-walk": "^5.0.1",
- "npm-bundled": "^2.0.0",
- "npm-normalize-package-bin": "^2.0.0"
- },
- "bin": {
- "npm-packlist": "bin/index.js"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm-packlist/node_modules/npm-bundled": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz",
- "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==",
- "dev": true,
- "dependencies": {
- "npm-normalize-package-bin": "^2.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz",
- "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==",
- "dev": true,
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm-pick-manifest": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz",
- "integrity": "sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==",
- "dev": true,
- "dependencies": {
- "npm-install-checks": "^5.0.0",
- "npm-normalize-package-bin": "^1.0.1",
- "npm-package-arg": "^9.0.0",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/npm-registry-fetch": {
- "version": "13.3.1",
- "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz",
- "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==",
- "dev": true,
- "dependencies": {
- "make-fetch-happen": "^10.0.6",
- "minipass": "^3.1.6",
- "minipass-fetch": "^2.0.3",
- "minipass-json-stream": "^1.0.1",
- "minizlib": "^2.1.2",
- "npm-package-arg": "^9.0.1",
- "proc-log": "^2.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "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": "6.0.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
- "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
- "dev": true,
- "dependencies": {
- "are-we-there-yet": "^3.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^4.0.3",
- "set-blocking": "^2.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "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==",
- "dev": true,
- "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.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/obuf": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
- "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
- "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==",
- "dev": true,
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "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==",
- "dev": true,
- "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/ora": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
- "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
- "dev": true,
- "dependencies": {
- "bl": "^4.1.0",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-spinners": "^2.5.0",
- "is-interactive": "^1.0.0",
- "is-unicode-supported": "^0.1.0",
- "log-symbols": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "wcwidth": "^1.0.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ora/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/ora/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/ora/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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/ora/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==",
- "dev": true
- },
- "node_modules/ora/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ora/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/os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "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/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/p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "dev": true,
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-retry": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
- "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
- "dev": true,
- "dependencies": {
- "@types/retry": "0.12.0",
- "retry": "^0.13.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-retry/node_modules/retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "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/pacote": {
- "version": "13.6.2",
- "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz",
- "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==",
- "dev": true,
- "dependencies": {
- "@npmcli/git": "^3.0.0",
- "@npmcli/installed-package-contents": "^1.0.7",
- "@npmcli/promise-spawn": "^3.0.0",
- "@npmcli/run-script": "^4.1.0",
- "cacache": "^16.0.0",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.1.0",
- "infer-owner": "^1.0.4",
- "minipass": "^3.1.6",
- "mkdirp": "^1.0.4",
- "npm-package-arg": "^9.0.0",
- "npm-packlist": "^5.1.0",
- "npm-pick-manifest": "^7.0.0",
- "npm-registry-fetch": "^13.0.1",
- "proc-log": "^2.0.0",
- "promise-retry": "^2.0.1",
- "read-package-json": "^5.0.0",
- "read-package-json-fast": "^2.0.3",
- "rimraf": "^3.0.2",
- "ssri": "^9.0.0",
- "tar": "^6.1.11"
- },
- "bin": {
- "pacote": "lib/bin.js"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
- },
- "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-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse-node-version": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
- "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/parse5": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
- "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
- "optional": true
- },
- "node_modules/parse5-html-rewriting-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz",
- "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==",
- "dev": true,
- "dependencies": {
- "parse5": "^6.0.1",
- "parse5-sax-parser": "^6.0.1"
- }
- },
- "node_modules/parse5-html-rewriting-stream/node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- },
- "node_modules/parse5-htmlparser2-tree-adapter": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
- "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
- "dev": true,
- "dependencies": {
- "parse5": "^6.0.1"
- }
- },
- "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- },
- "node_modules/parse5-sax-parser": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz",
- "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==",
- "dev": true,
- "dependencies": {
- "parse5": "^6.0.1"
- }
- },
- "node_modules/parse5-sax-parser/node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path": {
- "version": "0.12.7",
- "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
- "dev": true,
- "dependencies": {
- "process": "^0.11.1",
- "util": "^0.10.3"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-is-inside": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
- "dev": true
- },
- "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/performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
- "dev": true
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
- "dev": true,
- "dependencies": {
- "pinkie": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/piscina": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz",
- "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==",
- "dev": true,
- "dependencies": {
- "eventemitter-asyncresource": "^1.0.0",
- "hdr-histogram-js": "^2.0.1",
- "hdr-histogram-percentiles-obj": "^3.0.0"
- },
- "optionalDependencies": {
- "nice-napi": "^1.0.2"
- }
- },
- "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/postcss": {
- "version": "8.4.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
- "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- }
- ],
- "dependencies": {
- "nanoid": "^3.3.4",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-attribute-case-insensitive": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz",
- "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-clamp": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
- "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=7.6.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.6"
- }
- },
- "node_modules/postcss-color-functional-notation": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz",
- "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-color-hex-alpha": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz",
- "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-color-rebeccapurple": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz",
- "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-custom-media": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz",
- "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.3"
- }
- },
- "node_modules/postcss-custom-properties": {
- "version": "12.1.9",
- "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.9.tgz",
- "integrity": "sha512-/E7PRvK8DAVljBbeWrcEQJPG72jaImxF3vvCNFwv9cC8CzigVoNIpeyfnJzphnN3Fd8/auBf5wvkw6W9MfmTyg==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-custom-selectors": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz",
- "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.4"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.3"
- }
- },
- "node_modules/postcss-dir-pseudo-class": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz",
- "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-double-position-gradients": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz",
- "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==",
- "dev": true,
- "dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-env-function": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz",
- "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-focus-visible": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz",
- "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.9"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-focus-within": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz",
- "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.9"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-font-variant": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
- "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
- "dev": true,
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-gap-properties": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz",
- "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==",
- "dev": true,
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-image-set-function": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz",
- "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-import": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.0.0.tgz",
- "integrity": "sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-initial": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
- "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==",
- "dev": true,
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-lab-function": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz",
- "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==",
- "dev": true,
- "dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-loader": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz",
- "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==",
- "dev": true,
- "dependencies": {
- "cosmiconfig": "^7.0.0",
- "klona": "^2.0.5",
- "semver": "^7.3.7"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "postcss": "^7.0.0 || ^8.0.1",
- "webpack": "^5.0.0"
- }
- },
- "node_modules/postcss-logical": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
- "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==",
- "dev": true,
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-media-minmax": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
- "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-extract-imports": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
- "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-local-by-default": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz",
- "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==",
- "dev": true,
- "dependencies": {
- "icss-utils": "^5.0.0",
- "postcss-selector-parser": "^6.0.2",
- "postcss-value-parser": "^4.1.0"
- },
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-scope": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
- "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.4"
- },
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-values": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
- "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
- "dev": true,
- "dependencies": {
- "icss-utils": "^5.0.0"
- },
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-nesting": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz",
- "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==",
- "dev": true,
- "dependencies": {
- "@csstools/selector-specificity": "^2.0.0",
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-opacity-percentage": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz",
- "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==",
- "dev": true,
- "funding": [
- {
- "type": "kofi",
- "url": "https://ko-fi.com/mrcgrtz"
- },
- {
- "type": "liberapay",
- "url": "https://liberapay.com/mrcgrtz"
- }
- ],
- "engines": {
- "node": "^12 || ^14 || >=16"
- }
- },
- "node_modules/postcss-overflow-shorthand": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz",
- "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-page-break": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
- "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
- "dev": true,
- "peerDependencies": {
- "postcss": "^8"
- }
- },
- "node_modules/postcss-place": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz",
- "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-preset-env": {
- "version": "7.8.0",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.0.tgz",
- "integrity": "sha512-leqiqLOellpLKfbHkD06E04P6d9ZQ24mat6hu4NSqun7WG0UhspHR5Myiv/510qouCjoo4+YJtNOqg5xHaFnCA==",
- "dev": true,
- "dependencies": {
- "@csstools/postcss-cascade-layers": "^1.0.5",
- "@csstools/postcss-color-function": "^1.1.1",
- "@csstools/postcss-font-format-keywords": "^1.0.1",
- "@csstools/postcss-hwb-function": "^1.0.2",
- "@csstools/postcss-ic-unit": "^1.0.1",
- "@csstools/postcss-is-pseudo-class": "^2.0.7",
- "@csstools/postcss-nested-calc": "^1.0.0",
- "@csstools/postcss-normalize-display-values": "^1.0.1",
- "@csstools/postcss-oklab-function": "^1.1.1",
- "@csstools/postcss-progressive-custom-properties": "^1.3.0",
- "@csstools/postcss-stepped-value-functions": "^1.0.1",
- "@csstools/postcss-text-decoration-shorthand": "^1.0.0",
- "@csstools/postcss-trigonometric-functions": "^1.0.2",
- "@csstools/postcss-unset-value": "^1.0.2",
- "autoprefixer": "^10.4.8",
- "browserslist": "^4.21.3",
- "css-blank-pseudo": "^3.0.3",
- "css-has-pseudo": "^3.0.4",
- "css-prefers-color-scheme": "^6.0.3",
- "cssdb": "^7.0.0",
- "postcss-attribute-case-insensitive": "^5.0.2",
- "postcss-clamp": "^4.1.0",
- "postcss-color-functional-notation": "^4.2.4",
- "postcss-color-hex-alpha": "^8.0.4",
- "postcss-color-rebeccapurple": "^7.1.1",
- "postcss-custom-media": "^8.0.2",
- "postcss-custom-properties": "^12.1.8",
- "postcss-custom-selectors": "^6.0.3",
- "postcss-dir-pseudo-class": "^6.0.5",
- "postcss-double-position-gradients": "^3.1.2",
- "postcss-env-function": "^4.0.6",
- "postcss-focus-visible": "^6.0.4",
- "postcss-focus-within": "^5.0.4",
- "postcss-font-variant": "^5.0.0",
- "postcss-gap-properties": "^3.0.5",
- "postcss-image-set-function": "^4.0.7",
- "postcss-initial": "^4.0.1",
- "postcss-lab-function": "^4.2.1",
- "postcss-logical": "^5.0.4",
- "postcss-media-minmax": "^5.0.0",
- "postcss-nesting": "^10.1.10",
- "postcss-opacity-percentage": "^1.1.2",
- "postcss-overflow-shorthand": "^3.0.4",
- "postcss-page-break": "^3.0.4",
- "postcss-place": "^7.0.5",
- "postcss-pseudo-class-any-link": "^7.1.6",
- "postcss-replace-overflow-wrap": "^4.0.0",
- "postcss-selector-not": "^6.0.1",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-pseudo-class-any-link": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz",
- "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-replace-overflow-wrap": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
- "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
- "dev": true,
- "peerDependencies": {
- "postcss": "^8.0.3"
- }
- },
- "node_modules/postcss-selector-not": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz",
- "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
- "dev": true,
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
- },
- "node_modules/pretty-bytes": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/proc-log": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz",
- "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==",
- "dev": true,
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "dev": true,
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
- },
- "node_modules/promise-inflight": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
- "dev": true
- },
- "node_modules/promise-retry": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
- "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
- "dev": true,
- "dependencies": {
- "err-code": "^2.0.2",
- "retry": "^0.12.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/protractor": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz",
- "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==",
- "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular",
- "dev": true,
- "dependencies": {
- "@types/q": "^0.0.32",
- "@types/selenium-webdriver": "^3.0.0",
- "blocking-proxy": "^1.0.0",
- "browserstack": "^1.5.1",
- "chalk": "^1.1.3",
- "glob": "^7.0.3",
- "jasmine": "2.8.0",
- "jasminewd2": "^2.1.0",
- "q": "1.4.1",
- "saucelabs": "^1.5.0",
- "selenium-webdriver": "3.6.0",
- "source-map-support": "~0.4.0",
- "webdriver-js-extender": "2.1.0",
- "webdriver-manager": "^12.1.7",
- "yargs": "^15.3.1"
- },
- "bin": {
- "protractor": "bin/protractor",
- "webdriver-manager": "bin/webdriver-manager"
- },
- "engines": {
- "node": ">=10.13.x"
- }
- },
- "node_modules/protractor/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/protractor/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/protractor/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/protractor/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/protractor/node_modules/cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "node_modules/protractor/node_modules/cliui/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/protractor/node_modules/cliui/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==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/protractor/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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/protractor/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==",
- "dev": true
- },
- "node_modules/protractor/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/protractor/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/protractor/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/protractor/node_modules/source-map-support": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
- "dev": true,
- "dependencies": {
- "source-map": "^0.5.6"
- }
- },
- "node_modules/protractor/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/protractor/node_modules/supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/protractor/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==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/protractor/node_modules/wrap-ansi/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/protractor/node_modules/wrap-ansi/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/protractor/node_modules/wrap-ansi/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==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/protractor/node_modules/y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "node_modules/protractor/node_modules/yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "dev": true,
- "dependencies": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/protractor/node_modules/yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/proxy-addr/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==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/prr": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
- "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
- "dev": true,
- "optional": true
- },
- "node_modules/psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
- "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.4.1",
- "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
- "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==",
- "dev": true,
- "engines": {
- "node": ">=0.6.0",
- "teleport": ">=0.2.0"
- }
- },
- "node_modules/qjobs": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
- "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
- "dev": true,
- "engines": {
- "node": ">=0.9"
- }
- },
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "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/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "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/raw-body/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==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "dev": true,
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/read-package-json": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz",
- "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==",
- "dev": true,
- "dependencies": {
- "glob": "^8.0.1",
- "json-parse-even-better-errors": "^2.3.1",
- "normalize-package-data": "^4.0.0",
- "npm-normalize-package-bin": "^2.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/read-package-json-fast": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz",
- "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==",
- "dev": true,
- "dependencies": {
- "json-parse-even-better-errors": "^2.3.0",
- "npm-normalize-package-bin": "^1.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/read-package-json/node_modules/npm-normalize-package-bin": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz",
- "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==",
- "dev": true,
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.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==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "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/regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
- },
- "node_modules/regenerate-unicode-properties": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz",
- "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==",
- "dev": true,
- "dependencies": {
- "regenerate": "^1.4.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true
- },
- "node_modules/regenerator-transform": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
- "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.8.4"
- }
- },
- "node_modules/regex-parser": {
- "version": "2.2.11",
- "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz",
- "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==",
- "dev": true
- },
- "node_modules/regexpu-core": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz",
- "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==",
- "dev": true,
- "dependencies": {
- "regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.1.0",
- "regjsgen": "^0.7.1",
- "regjsparser": "^0.9.1",
- "unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regjsgen": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz",
- "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==",
- "dev": true
- },
- "node_modules/regjsparser": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
- "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
- "dev": true,
- "dependencies": {
- "jsesc": "~0.5.0"
- },
- "bin": {
- "regjsparser": "bin/parser"
- }
- },
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- }
- },
- "node_modules/request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
- "dev": true,
- "dependencies": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/request/node_modules/qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/request/node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "dev": true,
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
- "node_modules/requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true
- },
- "node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-url-loader": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz",
- "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==",
- "dev": true,
- "dependencies": {
- "adjust-sourcemap-loader": "^4.0.0",
- "convert-source-map": "^1.7.0",
- "loader-utils": "^2.0.0",
- "postcss": "^8.2.14",
- "source-map": "0.6.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/resolve-url-loader/node_modules/loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- },
- "engines": {
- "node": ">=8.9.0"
- }
- },
- "node_modules/resolve-url-loader/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==",
- "dev": true,
- "engines": {
- "node": ">=0.10.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==",
- "dev": true,
- "dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rfdc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
- "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
- "dev": true
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/rimraf/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "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/rxjs": {
- "version": "7.5.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz",
- "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==",
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
- "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==",
- "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/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
- },
- "node_modules/sass": {
- "version": "1.54.4",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz",
- "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==",
- "dev": true,
- "dependencies": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
- "bin": {
- "sass": "sass.js"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/sass-loader": {
- "version": "13.0.2",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz",
- "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==",
- "dev": true,
- "dependencies": {
- "klona": "^2.0.4",
- "neo-async": "^2.6.2"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "fibers": ">= 3.1.0",
- "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
- "sass": "^1.3.0",
- "sass-embedded": "*",
- "webpack": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "fibers": {
- "optional": true
- },
- "node-sass": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- }
- }
- },
- "node_modules/saucelabs": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz",
- "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==",
- "dev": true,
- "dependencies": {
- "https-proxy-agent": "^2.2.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/saucelabs/node_modules/agent-base": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
- "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
- "dev": true,
- "dependencies": {
- "es6-promisify": "^5.0.0"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/saucelabs/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/saucelabs/node_modules/https-proxy-agent": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
- "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
- "dev": true,
- "dependencies": {
- "agent-base": "^4.3.0",
- "debug": "^3.1.0"
- },
- "engines": {
- "node": ">= 4.5.0"
- }
- },
- "node_modules/sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
- "dev": true
- },
- "node_modules/schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 8.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/schema-utils/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/schema-utils/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/schema-utils/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/select-hose": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
- "dev": true
- },
- "node_modules/selenium-webdriver": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
- "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
- "dev": true,
- "dependencies": {
- "jszip": "^3.1.3",
- "rimraf": "^2.5.4",
- "tmp": "0.0.30",
- "xml2js": "^0.4.17"
- },
- "engines": {
- "node": ">= 6.9.0"
- }
- },
- "node_modules/selenium-webdriver/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/selenium-webdriver/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/selenium-webdriver/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/selenium-webdriver/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/selenium-webdriver/node_modules/tmp": {
- "version": "0.0.30",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
- "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==",
- "dev": true,
- "dependencies": {
- "os-tmpdir": "~1.0.1"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/selfsigned": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz",
- "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==",
- "dev": true,
- "dependencies": {
- "node-forge": "^1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "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/semver/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/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dev": true,
- "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==",
- "dev": true,
- "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==",
- "dev": true
- },
- "node_modules/send/node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/send/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==",
- "dev": true
- },
- "node_modules/send/node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
- "dev": true,
- "dependencies": {
- "accepts": "~1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/serve-index/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/serve-index/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-index/node_modules/http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
- "dev": true,
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-index/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "dev": true
- },
- "node_modules/serve-index/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/serve-index/node_modules/setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
- "dev": true
- },
- "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==",
- "dev": true,
- "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": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true
- },
- "node_modules/setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
- "dev": true
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
- },
- "node_modules/shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dev": true,
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "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==",
- "dev": true,
- "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/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
- "dev": true,
- "engines": {
- "node": ">= 6.0.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/socket.io": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz",
- "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==",
- "dev": true,
- "dependencies": {
- "accepts": "~1.3.4",
- "base64id": "~2.0.0",
- "debug": "~4.3.2",
- "engine.io": "~6.4.1",
- "socket.io-adapter": "~2.5.2",
- "socket.io-parser": "~4.2.1"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/socket.io-adapter": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
- "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
- "dev": true,
- "dependencies": {
- "ws": "~8.11.0"
- }
- },
- "node_modules/socket.io-parser": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
- "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
- "dev": true,
- "dependencies": {
- "@socket.io/component-emitter": "~3.1.0",
- "debug": "~4.3.1"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/sockjs": {
- "version": "0.3.24",
- "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
- "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
- "dev": true,
- "dependencies": {
- "faye-websocket": "^0.11.3",
- "uuid": "^8.3.2",
- "websocket-driver": "^0.7.4"
- }
- },
- "node_modules/socks": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
- "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
- "dev": true,
- "dependencies": {
- "ip": "^2.0.0",
- "smart-buffer": "^4.2.0"
- },
- "engines": {
- "node": ">= 10.13.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/socks-proxy-agent": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz",
- "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==",
- "dev": true,
- "dependencies": {
- "agent-base": "^6.0.2",
- "debug": "^4.3.3",
- "socks": "^2.6.2"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-loader": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.0.tgz",
- "integrity": "sha512-i3KVgM3+QPAHNbGavK+VBq03YoJl24m9JWNbLgsjTj8aJzXG9M61bantBTNBt7CNwY2FYf+RJRYJ3pzalKjIrw==",
- "dev": true,
- "dependencies": {
- "abab": "^2.0.6",
- "iconv-lite": "^0.6.3",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.72.1"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/source-map-support/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==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sourcemap-codec": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
- },
- "node_modules/spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
- "dev": true,
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
- "dev": true
- },
- "node_modules/spdy": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
- "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.0",
- "handle-thing": "^2.0.0",
- "http-deceiver": "^1.2.7",
- "select-hose": "^2.0.0",
- "spdy-transport": "^3.0.0"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/spdy-transport": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
- "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.0",
- "detect-node": "^2.0.4",
- "hpack.js": "^2.1.6",
- "obuf": "^1.1.2",
- "readable-stream": "^3.0.6",
- "wbuf": "^1.7.3"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "node_modules/sshpk": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
- "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
- "dev": true,
- "dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- },
- "bin": {
- "sshpk-conv": "bin/sshpk-conv",
- "sshpk-sign": "bin/sshpk-sign",
- "sshpk-verify": "bin/sshpk-verify"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ssri": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz",
- "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.1.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/streamroller": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.3.tgz",
- "integrity": "sha512-CphIJyFx2SALGHeINanjFRKQ4l7x2c+rXYJ4BMq0gd+ZK0gi4VT8b+eHe2wi58x4UayBAKx4xtHpXT/ea1cz8w==",
- "dev": true,
- "dependencies": {
- "date-format": "^4.0.14",
- "debug": "^4.3.4",
- "fs-extra": "^8.1.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/streamroller/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/streamroller/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/streamroller/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/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==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "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/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "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.0",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
- "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/stylus": {
- "version": "0.59.0",
- "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz",
- "integrity": "sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==",
- "dev": true,
- "dependencies": {
- "@adobe/css-tools": "^4.0.1",
- "debug": "^4.3.2",
- "glob": "^7.1.6",
- "sax": "~1.2.4",
- "source-map": "^0.7.3"
- },
- "bin": {
- "stylus": "bin/stylus"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://opencollective.com/stylus"
- }
- },
- "node_modules/stylus-loader": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-7.0.0.tgz",
- "integrity": "sha512-WTbtLrNfOfLgzTaR9Lj/BPhQroKk/LC1hfTXSUbrxmxgfUo3Y3LpmKRVA2R1XbjvTAvOfaian9vOyfv1z99E+A==",
- "dev": true,
- "dependencies": {
- "fast-glob": "^3.2.11",
- "klona": "^2.0.5",
- "normalize-path": "^3.0.0"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "stylus": ">=0.52.4",
- "webpack": "^5.0.0"
- }
- },
- "node_modules/stylus/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/stylus/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/stylus/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-hyperlinks/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==",
- "dev": true,
- "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==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/symbol-observable": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
- "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tar": {
- "version": "6.1.11",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
- "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
- "dev": true,
- "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/terminal-link": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
- "dev": true,
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "supports-hyperlinks": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/terser": {
- "version": "5.14.2",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
- "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/source-map": "^0.3.2",
- "acorn": "^8.5.0",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/terser-webpack-plugin": {
- "version": "5.3.6",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz",
- "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.14",
- "jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.0",
- "terser": "^5.14.1"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "uglify-js": {
- "optional": true
- }
- }
- },
- "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/schema-utils": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/terser/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/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/test-exclude/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/test-exclude/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/test-exclude/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "node_modules/through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true
- },
- "node_modules/thunky": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
- "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
- "dev": true
- },
- "node_modules/tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
- "dependencies": {
- "os-tmpdir": "~1.0.2"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dev": true,
- "dependencies": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "node_modules/tree-kill": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
- "dev": true,
- "bin": {
- "tree-kill": "cli.js"
- }
- },
- "node_modules/ts-node": {
- "version": "9.1.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
- "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
- "dev": true,
- "dependencies": {
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "source-map-support": "^0.5.17",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "typescript": ">=2.7"
- }
- },
- "node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- },
- "node_modules/tslint": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
- "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
- "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "builtin-modules": "^1.1.1",
- "chalk": "^2.3.0",
- "commander": "^2.12.1",
- "diff": "^4.0.1",
- "glob": "^7.1.1",
- "js-yaml": "^3.13.1",
- "minimatch": "^3.0.4",
- "mkdirp": "^0.5.3",
- "resolve": "^1.3.2",
- "semver": "^5.3.0",
- "tslib": "^1.13.0",
- "tsutils": "^2.29.0"
- },
- "bin": {
- "tslint": "bin/tslint"
- },
- "engines": {
- "node": ">=4.8.0"
- },
- "peerDependencies": {
- "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev"
- }
- },
- "node_modules/tslint/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/tslint/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/tslint/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/tslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tslint/node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/tslint/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/tslint/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/tsutils": {
- "version": "2.29.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
- "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.8.1"
- },
- "peerDependencies": {
- "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev"
- }
- },
- "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/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
- "dev": true
- },
- "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==",
- "dev": true,
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typed-assert": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz",
- "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==",
- "dev": true
- },
- "node_modules/typescript": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
- "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=4.2.0"
- }
- },
- "node_modules/ua-parser-js": {
- "version": "0.7.33",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz",
- "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/ua-parser-js"
- },
- {
- "type": "paypal",
- "url": "https://paypal.me/faisalman"
- }
- ],
- "engines": {
- "node": "*"
- }
- },
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "dev": true,
- "dependencies": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
- "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-property-aliases-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
- "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unique-filename": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
- "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
- "dev": true,
- "dependencies": {
- "unique-slug": "^2.0.0"
- }
- },
- "node_modules/unique-slug": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
- "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4"
- }
- },
- "node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "browserslist-lint": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/util": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
- "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
- "dev": true,
- "dependencies": {
- "inherits": "2.0.3"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/util/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "dev": true
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "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==",
- "dev": true,
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "node_modules/validate-npm-package-name": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz",
- "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==",
- "dev": true,
- "dependencies": {
- "builtins": "^5.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "dev": true,
- "engines": [
- "node >=0.6.0"
- ],
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "node_modules/void-elements": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
- "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
- "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
- "dev": true,
- "dependencies": {
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.1.2"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/wbuf": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
- "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
- "dev": true,
- "dependencies": {
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "dev": true,
- "dependencies": {
- "defaults": "^1.0.3"
- }
- },
- "node_modules/webdriver-js-extender": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz",
- "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==",
- "dev": true,
- "dependencies": {
- "@types/selenium-webdriver": "^3.0.0",
- "selenium-webdriver": "^3.0.1"
- },
- "engines": {
- "node": ">=6.9.x"
- }
- },
- "node_modules/webdriver-manager": {
- "version": "12.1.8",
- "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz",
- "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==",
- "dev": true,
- "dependencies": {
- "adm-zip": "^0.4.9",
- "chalk": "^1.1.1",
- "del": "^2.2.0",
- "glob": "^7.0.3",
- "ini": "^1.3.4",
- "minimist": "^1.2.0",
- "q": "^1.4.1",
- "request": "^2.87.0",
- "rimraf": "^2.5.2",
- "semver": "^5.3.0",
- "xml2js": "^0.4.17"
- },
- "bin": {
- "webdriver-manager": "bin/webdriver-manager"
- },
- "engines": {
- "node": ">=6.9.x"
- }
- },
- "node_modules/webdriver-manager/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/webdriver-manager/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/webdriver-manager/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/webdriver-manager/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/webdriver-manager/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/webdriver-manager/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/webdriver-manager/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/webdriver-manager/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/webdriver-manager/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/webdriver-manager/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webdriver-manager/node_modules/supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "node_modules/webpack": {
- "version": "5.74.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz",
- "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
- "dev": true,
- "dependencies": {
- "@types/eslint-scope": "^3.7.3",
- "@types/estree": "^0.0.51",
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/wasm-edit": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
- "acorn": "^8.7.1",
- "acorn-import-assertions": "^1.7.6",
- "browserslist": "^4.14.5",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.10.0",
- "es-module-lexer": "^0.9.0",
- "eslint-scope": "5.1.1",
- "events": "^3.2.0",
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.9",
- "json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.2.0",
- "mime-types": "^2.1.27",
- "neo-async": "^2.6.2",
- "schema-utils": "^3.1.0",
- "tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.1.3",
- "watchpack": "^2.4.0",
- "webpack-sources": "^3.2.3"
- },
- "bin": {
- "webpack": "bin/webpack.js"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-dev-middleware": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
- "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==",
- "dev": true,
- "dependencies": {
- "colorette": "^2.0.10",
- "memfs": "^3.4.3",
- "mime-types": "^2.1.31",
- "range-parser": "^1.2.1",
- "schema-utils": "^4.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/webpack-dev-middleware/node_modules/colorette": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
- "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
- "dev": true
- },
- "node_modules/webpack-dev-middleware/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/webpack-dev-server": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz",
- "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==",
- "dev": true,
- "dependencies": {
- "@types/bonjour": "^3.5.9",
- "@types/connect-history-api-fallback": "^1.3.5",
- "@types/express": "^4.17.13",
- "@types/serve-index": "^1.9.1",
- "@types/serve-static": "^1.13.10",
- "@types/sockjs": "^0.3.33",
- "@types/ws": "^8.5.1",
- "ansi-html-community": "^0.0.8",
- "bonjour-service": "^1.0.11",
- "chokidar": "^3.5.3",
- "colorette": "^2.0.10",
- "compression": "^1.7.4",
- "connect-history-api-fallback": "^2.0.0",
- "default-gateway": "^6.0.3",
- "express": "^4.17.3",
- "graceful-fs": "^4.2.6",
- "html-entities": "^2.3.2",
- "http-proxy-middleware": "^2.0.3",
- "ipaddr.js": "^2.0.1",
- "open": "^8.0.9",
- "p-retry": "^4.5.0",
- "rimraf": "^3.0.2",
- "schema-utils": "^4.0.0",
- "selfsigned": "^2.0.1",
- "serve-index": "^1.9.1",
- "sockjs": "^0.3.24",
- "spdy": "^4.0.2",
- "webpack-dev-middleware": "^5.3.1",
- "ws": "^8.4.2"
- },
- "bin": {
- "webpack-dev-server": "bin/webpack-dev-server.js"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.37.0 || ^5.0.0"
- },
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-dev-server/node_modules/colorette": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
- "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
- "dev": true
- },
- "node_modules/webpack-dev-server/node_modules/schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/webpack-merge": {
- "version": "5.8.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz",
- "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==",
- "dev": true,
- "dependencies": {
- "clone-deep": "^4.0.1",
- "wildcard": "^2.0.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
- "dev": true,
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/webpack-subresource-integrity": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz",
- "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==",
- "dev": true,
- "dependencies": {
- "typed-assert": "^1.0.8"
- },
- "engines": {
- "node": ">= 12"
- },
- "peerDependencies": {
- "html-webpack-plugin": ">= 5.0.0-beta.1 < 6",
- "webpack": "^5.12.0"
- },
- "peerDependenciesMeta": {
- "html-webpack-plugin": {
- "optional": true
- }
- }
- },
- "node_modules/webpack/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/webpack/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/webpack/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/webpack/node_modules/schema-utils": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
- "dev": true,
- "dependencies": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/websocket-extensions": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
- "dev": true
- },
- "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==",
- "dev": true,
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "node_modules/widest-line": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
- "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wildcard": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz",
- "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
- "dev": true
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "node_modules/ws": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
- "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
- "dev": true,
- "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/xml": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
- "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==",
- "dev": true
- },
- "node_modules/xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "dev": true,
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/xml2js/node_modules/xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/xmlbuilder": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz",
- "integrity": "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==",
- "dev": true,
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "engines": {
- "node": ">=10"
- }
- },
- "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": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/yargs": {
- "version": "17.5.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
- "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/zone.js": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.8.tgz",
- "integrity": "sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==",
- "dependencies": {
- "tslib": "^2.3.0"
- }
- }
- },
- "dependencies": {
- "@adobe/css-tools": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz",
- "integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==",
- "dev": true
- },
- "@ampproject/remapping": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
- "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
- "requires": {
- "@jridgewell/gen-mapping": "^0.1.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@angular-devkit/architect": {
- "version": "0.1402.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.6.tgz",
- "integrity": "sha512-qTmPBD7fBXBtlSapGLUEcJvRuL/O556zCFFpH3kSlzPNTYxi2falBjGY+4aG+078RXT1vVZtFsvRTart6VbhAg==",
- "dev": true,
- "requires": {
- "@angular-devkit/core": "14.2.6",
- "rxjs": "6.6.7"
- },
- "dependencies": {
- "rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- }
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@angular-devkit/build-angular": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.6.tgz",
- "integrity": "sha512-XtaUwb3aZ8S0vl0y9bmbdFOH0KQCQ778twFH+ZfHW2BcPYtQz2Cy2rcVKXBQ850RyC0GxgMPfco6OGQndPpizg==",
- "dev": true,
- "requires": {
- "@ampproject/remapping": "2.2.0",
- "@angular-devkit/architect": "0.1402.6",
- "@angular-devkit/build-webpack": "0.1402.6",
- "@angular-devkit/core": "14.2.6",
- "@babel/core": "7.18.10",
- "@babel/generator": "7.18.12",
- "@babel/helper-annotate-as-pure": "7.18.6",
- "@babel/plugin-proposal-async-generator-functions": "7.18.10",
- "@babel/plugin-transform-async-to-generator": "7.18.6",
- "@babel/plugin-transform-runtime": "7.18.10",
- "@babel/preset-env": "7.18.10",
- "@babel/runtime": "7.18.9",
- "@babel/template": "7.18.10",
- "@discoveryjs/json-ext": "0.5.7",
- "@ngtools/webpack": "14.2.6",
- "ansi-colors": "4.1.3",
- "babel-loader": "8.2.5",
- "babel-plugin-istanbul": "6.1.1",
- "browserslist": "^4.9.1",
- "cacache": "16.1.2",
- "copy-webpack-plugin": "11.0.0",
- "critters": "0.0.16",
- "css-loader": "6.7.1",
- "esbuild": "0.15.5",
- "esbuild-wasm": "0.15.5",
- "glob": "8.0.3",
- "https-proxy-agent": "5.0.1",
- "inquirer": "8.2.4",
- "jsonc-parser": "3.1.0",
- "karma-source-map-support": "1.4.0",
- "less": "4.1.3",
- "less-loader": "11.0.0",
- "license-webpack-plugin": "4.0.2",
- "loader-utils": "3.2.0",
- "mini-css-extract-plugin": "2.6.1",
- "minimatch": "5.1.0",
- "open": "8.4.0",
- "ora": "5.4.1",
- "parse5-html-rewriting-stream": "6.0.1",
- "piscina": "3.2.0",
- "postcss": "8.4.16",
- "postcss-import": "15.0.0",
- "postcss-loader": "7.0.1",
- "postcss-preset-env": "7.8.0",
- "regenerator-runtime": "0.13.9",
- "resolve-url-loader": "5.0.0",
- "rxjs": "6.6.7",
- "sass": "1.54.4",
- "sass-loader": "13.0.2",
- "semver": "7.3.7",
- "source-map-loader": "4.0.0",
- "source-map-support": "0.5.21",
- "stylus": "0.59.0",
- "stylus-loader": "7.0.0",
- "terser": "5.14.2",
- "text-table": "0.2.0",
- "tree-kill": "1.2.2",
- "tslib": "2.4.0",
- "webpack": ">=5.76.0",
- "webpack-dev-middleware": "5.3.3",
- "webpack-dev-server": "4.11.0",
- "webpack-merge": "5.8.0",
- "webpack-subresource-integrity": "5.1.0"
- },
- "dependencies": {
- "rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- },
- "dependencies": {
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- }
- }
- },
- "@angular-devkit/build-webpack": {
- "version": "0.1402.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.6.tgz",
- "integrity": "sha512-gKsDxQ9pze0N1qDM0kdM4FfwpkjSOb0bQzqjZi7wTfrh/WGIQMCjG9CRwWT+Z289ZKaTpcQDPsDtOSo5QpKNDg==",
- "dev": true,
- "requires": {
- "@angular-devkit/architect": "0.1402.6",
- "rxjs": "6.6.7"
- },
- "dependencies": {
- "rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- }
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@angular-devkit/core": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.6.tgz",
- "integrity": "sha512-qtRSdRm/h7C3ya04PJTDgQXV6mM8Y4RakANX1GTSXetCf9AVSxg74NJX76DWUgiHT4JiPYnJgJU6Hr/L0H6JOQ==",
- "dev": true,
- "requires": {
- "ajv": "8.11.0",
- "ajv-formats": "2.1.1",
- "jsonc-parser": "3.1.0",
- "rxjs": "6.6.7",
- "source-map": "0.7.4"
- },
- "dependencies": {
- "rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- }
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@angular-devkit/schematics": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.6.tgz",
- "integrity": "sha512-mSFtc4M49mWrYsgJx/P6bA6SzXb8SeZqmppKRMoEQxiXI1bwFdGLNWzAmzEsGvS96h/nPIaOfcX5cKJSp++4FA==",
- "dev": true,
- "requires": {
- "@angular-devkit/core": "14.2.6",
- "jsonc-parser": "3.1.0",
- "magic-string": "0.26.2",
- "ora": "5.4.1",
- "rxjs": "6.6.7"
- },
- "dependencies": {
- "rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- }
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@angular/animations": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.2.6.tgz",
- "integrity": "sha512-Tmb3Jj016j8m8OOGSk/ReL0b+OuUCMj0KQansk3C4pCpH9oPF67Vnm0fmVC2wYjjsSS/iDgl4kaDW740wfPGNQ==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@angular/cdk": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-14.2.5.tgz",
- "integrity": "sha512-kKneb9Z/2E+EXMsHuH8MWy8aygKhdFlKXYltEG7r4W/B6FJC012kJfe+Euj8X0O26akOVW9Q0X7nczCqHqU4tQ==",
- "requires": {
- "parse5": "^5.0.0",
- "tslib": "^2.3.0"
- }
- },
- "@angular/cli": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.6.tgz",
- "integrity": "sha512-8tXpe3htfZY8a+Am4nluVcztMFD5wnx4edGEDkkOiqkrUzbCtX4AyEBjUFldsYKZXbRFU46xEfM6jBnLOjxDZQ==",
- "dev": true,
- "requires": {
- "@angular-devkit/architect": "0.1402.6",
- "@angular-devkit/core": "14.2.6",
- "@angular-devkit/schematics": "14.2.6",
- "@schematics/angular": "14.2.6",
- "@yarnpkg/lockfile": "1.1.0",
- "ansi-colors": "4.1.3",
- "debug": "4.3.4",
- "ini": "3.0.0",
- "inquirer": "8.2.4",
- "jsonc-parser": "3.1.0",
- "npm-package-arg": "9.1.0",
- "npm-pick-manifest": "7.0.1",
- "open": "8.4.0",
- "ora": "5.4.1",
- "pacote": "13.6.2",
- "resolve": "1.22.1",
- "semver": "7.3.7",
- "symbol-observable": "4.0.0",
- "uuid": "8.3.2",
- "yargs": "17.5.1"
- }
- },
- "@angular/common": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.6.tgz",
- "integrity": "sha512-WNX7xe8LKP5DHPlae+c77PDwj0iIAAPIe1lWbhQysyi8uttbtL9VVP2XTFuQ3E6oVHJr+0IR0LMVGJ+a8i6zsw==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@angular/compiler": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.6.tgz",
- "integrity": "sha512-XtmJRNQQ/bUcRjB6jG67km3EPug8frnHH50sLqxye+cljCzWQpzFN/Qr1z0abuzEX8OC4alqxCDCFgTFyyVkaQ==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@angular/compiler-cli": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.6.tgz",
- "integrity": "sha512-zKnpZ5WDbM31dwr5GDAbCblMIEUzWSglUyqCxJfbCg21dE0EuLfd/WzsROgM2TucOtCT5xNipqz4bc+wdEOIgQ==",
- "requires": {
- "@babel/core": "^7.17.2",
- "chokidar": "^3.0.0",
- "convert-source-map": "^1.5.1",
- "dependency-graph": "^0.11.0",
- "magic-string": "^0.26.0",
- "reflect-metadata": "^0.1.2",
- "semver": "^7.0.0",
- "sourcemap-codec": "^1.4.8",
- "tslib": "^2.3.0",
- "yargs": "^17.2.1"
- }
- },
- "@angular/core": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.6.tgz",
- "integrity": "sha512-fEIz7E488X03tLIqmWQRpahxRRU2SMjb9i/rMUjMQJkbppJC3cykl31bCYzeixNO+zpE55GPGuQX2qI/yDenZA==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@angular/flex-layout": {
- "version": "14.0.0-beta.41",
- "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-14.0.0-beta.41.tgz",
- "integrity": "sha512-x1YcxqkdFlcbVXEy9ebCgW/F+7n/MXkEkwEcVEIPf5v5qn7HZsjQxgIj35Lf0amvMyF7h35prpoxO1uX5+ntFg==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@angular/forms": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.6.tgz",
- "integrity": "sha512-t7Hd9RMnHbXRTdH/H8h8ZC3PsK1U4rH+XYaIbQNcys/XSf1uRFHx9MWqkwS5hoQEFOxkFSX5dRv2xSnHtxfq5w==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@angular/language-service": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-14.2.6.tgz",
- "integrity": "sha512-o6MZ+n0zThdYhMDchgNAiqKme1pgFKvZfRibxgnntEua77BL0Ty7uEwDdehNk3eaVu8ddtW7svYfsGhL53HZWA==",
- "dev": true
- },
- "@angular/localize": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.6.tgz",
- "integrity": "sha512-cUUAPV9IFNkcMe/tauqaqaml9ZXbaZ75A2NXDom78ETwVCqybjtfJfSl3ExlfP4oFKw62XMJla8yuEE0ZMaLew==",
- "requires": {
- "@babel/core": "7.18.9",
- "glob": "8.0.3",
- "yargs": "^17.2.1"
- },
- "dependencies": {
- "@babel/core": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz",
- "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==",
- "requires": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.9",
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-module-transforms": "^7.18.9",
- "@babel/helpers": "^7.18.9",
- "@babel/parser": "^7.18.9",
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- }
- },
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
- }
- }
- },
- "@angular/material": {
- "version": "14.2.5",
- "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.5.tgz",
- "integrity": "sha512-vC3F1r8WHclL1BbQVxOc9Ite1xH/pCOLnYYcx8HK1T2jlzeX7NxU1A58iBZC3rLj494tsMnRQDSZPXfazBiw0g==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@angular/platform-browser": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.6.tgz",
- "integrity": "sha512-KQUN4YVYEK5NOL7QFnDulQta6tm9rPh/mruX/XCLkSmoRMlFBmsHyjx+VJBnBNUbUxNsBj7kknifOu9PqDgAWg==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@angular/platform-browser-dynamic": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.6.tgz",
- "integrity": "sha512-SlWEYLED4ST1AFfgeB8SyKLVJYp36XT+3Vw3yDrObsthzXCiFAuYHQZfSWgT1Sfx3uFqEdN7nskJqD05wN3mQg==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@angular/router": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.6.tgz",
- "integrity": "sha512-Vz1kadGSqA7ZCZQ2woNbSBPMdiE5eTZv8cGympaFnFQQUzQTQ6zi22wY4RzovDk5Lw+EQkvOmaW2864LDzDeug==",
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@assemblyscript/loader": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz",
- "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==",
- "dev": true
- },
- "@auth0/angular-jwt": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@auth0/angular-jwt/-/angular-jwt-5.1.0.tgz",
- "integrity": "sha512-EAQoNKPQSZYphcX6FnY2e7xQpD4ZdHQ1DbHq/m+G1U1qA60m3XnhdjPPfu+blVHARlxEbRzWXc48UOVrnMsrZw==",
- "requires": {
- "tslib": "^2.0.0"
- }
- },
- "@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
- "requires": {
- "@babel/highlight": "^7.22.13",
- "chalk": "^2.4.2"
- }
- },
- "@babel/compat-data": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
- "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw=="
- },
- "@babel/core": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz",
- "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==",
- "requires": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.10",
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-module-transforms": "^7.18.9",
- "@babel/helpers": "^7.18.9",
- "@babel/parser": "^7.18.10",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.18.10",
- "@babel/types": "^7.18.10",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
- }
- }
- },
- "@babel/generator": {
- "version": "7.18.12",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz",
- "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==",
- "requires": {
- "@babel/types": "^7.18.10",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- },
- "dependencies": {
- "@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- }
- }
- },
- "@babel/helper-annotate-as-pure": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
- "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
- "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
- "dev": true,
- "requires": {
- "@babel/helper-explode-assignable-expression": "^7.18.6",
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/helper-compilation-targets": {
- "version": "7.19.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
- "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
- "requires": {
- "@babel/compat-data": "^7.19.3",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.21.3",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
- }
- }
- },
- "@babel/helper-create-class-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz",
- "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.9",
- "@babel/helper-split-export-declaration": "^7.18.6"
- }
- },
- "@babel/helper-create-regexp-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz",
- "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "regexpu-core": "^5.1.0"
- }
- },
- "@babel/helper-define-polyfill-provider": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz",
- "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==",
- "dev": true,
- "requires": {
- "@babel/helper-compilation-targets": "^7.17.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "debug": "^4.1.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2",
- "semver": "^6.1.2"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
- }
- }
- },
- "@babel/helper-environment-visitor": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
- "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA=="
- },
- "@babel/helper-explode-assignable-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
- "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
- "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
- "requires": {
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.23.0"
- },
- "dependencies": {
- "@babel/template": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
- "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
- "requires": {
- "@babel/code-frame": "^7.22.13",
- "@babel/parser": "^7.22.15",
- "@babel/types": "^7.22.15"
- }
- }
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-member-expression-to-functions": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
- "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-transforms": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz",
- "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==",
- "requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.18.6",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0"
- }
- },
- "@babel/helper-optimise-call-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
- "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-plugin-utils": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz",
- "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==",
- "dev": true
- },
- "@babel/helper-remap-async-to-generator": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
- "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-wrap-function": "^7.18.9",
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/helper-replace-supers": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
- "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
- "dev": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/traverse": "^7.19.1",
- "@babel/types": "^7.19.0"
- }
- },
- "@babel/helper-simple-access": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz",
- "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==",
- "requires": {
- "@babel/types": "^7.19.4"
- }
- },
- "@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
- "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
- },
- "@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
- },
- "@babel/helper-validator-option": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw=="
- },
- "@babel/helper-wrap-function": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz",
- "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==",
- "dev": true,
- "requires": {
- "@babel/helper-function-name": "^7.19.0",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0"
- }
- },
- "@babel/helpers": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz",
- "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==",
- "requires": {
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.4",
- "@babel/types": "^7.19.4"
- }
- },
- "@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
- "requires": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/parser": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz",
- "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw=="
- },
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
- "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9"
- }
- },
- "@babel/plugin-proposal-async-generator-functions": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz",
- "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==",
- "dev": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-remap-async-to-generator": "^7.18.9",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- }
- },
- "@babel/plugin-proposal-class-properties": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
- "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
- "dev": true,
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-proposal-class-static-block": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
- "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
- "dev": true,
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-dynamic-import": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
- "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-export-namespace-from": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
- "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-json-strings": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
- "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
- "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- }
- },
- "@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
- "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-numeric-separator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
- "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- }
- },
- "@babel/plugin-proposal-object-rest-spread": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz",
- "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.19.4",
- "@babel/helper-compilation-targets": "^7.19.3",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.18.8"
- }
- },
- "@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
- "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-private-methods": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
- "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
- "dev": true,
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-proposal-private-property-in-object": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
- "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
- "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.12.13"
- }
- },
- "@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.3"
- }
- },
- "@babel/plugin-syntax-import-assertions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
- "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-arrow-functions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
- "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-async-to-generator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
- "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
- "dev": true,
- "requires": {
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-remap-async-to-generator": "^7.18.6"
- }
- },
- "@babel/plugin-transform-block-scoped-functions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
- "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-block-scoping": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz",
- "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.19.0"
- }
- },
- "@babel/plugin-transform-classes": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz",
- "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-compilation-targets": "^7.19.0",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-replace-supers": "^7.18.9",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "globals": "^11.1.0"
- }
- },
- "@babel/plugin-transform-computed-properties": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
- "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
- }
- },
- "@babel/plugin-transform-destructuring": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz",
- "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.19.0"
- }
- },
- "@babel/plugin-transform-dotall-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
- "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-duplicate-keys": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
- "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
- }
- },
- "@babel/plugin-transform-exponentiation-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
- "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
- "dev": true,
- "requires": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-for-of": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
- "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-function-name": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
- "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
- "dev": true,
- "requires": {
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-function-name": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.18.9"
- }
- },
- "@babel/plugin-transform-literals": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
- "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
- }
- },
- "@babel/plugin-transform-member-expression-literals": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
- "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-modules-amd": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz",
- "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==",
- "dev": true,
- "requires": {
- "@babel/helper-module-transforms": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- }
- },
- "@babel/plugin-transform-modules-commonjs": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz",
- "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==",
- "dev": true,
- "requires": {
- "@babel/helper-module-transforms": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-simple-access": "^7.18.6",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- }
- },
- "@babel/plugin-transform-modules-systemjs": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz",
- "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==",
- "dev": true,
- "requires": {
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-module-transforms": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-validator-identifier": "^7.18.6",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- }
- },
- "@babel/plugin-transform-modules-umd": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
- "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
- "dev": true,
- "requires": {
- "@babel/helper-module-transforms": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz",
- "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0"
- }
- },
- "@babel/plugin-transform-new-target": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
- "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-object-super": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
- "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.6"
- }
- },
- "@babel/plugin-transform-parameters": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
- "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-property-literals": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
- "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-regenerator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
- "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "regenerator-transform": "^0.15.0"
- }
- },
- "@babel/plugin-transform-reserved-words": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
- "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-runtime": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz",
- "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==",
- "dev": true,
- "requires": {
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.9",
- "babel-plugin-polyfill-corejs2": "^0.3.2",
- "babel-plugin-polyfill-corejs3": "^0.5.3",
- "babel-plugin-polyfill-regenerator": "^0.4.0",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
- }
- }
- },
- "@babel/plugin-transform-shorthand-properties": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
- "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-spread": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz",
- "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
- }
- },
- "@babel/plugin-transform-sticky-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
- "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-transform-template-literals": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
- "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
- }
- },
- "@babel/plugin-transform-typeof-symbol": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
- "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
- }
- },
- "@babel/plugin-transform-unicode-escapes": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
- "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
- }
- },
- "@babel/plugin-transform-unicode-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
- "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
- "dev": true,
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/preset-env": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz",
- "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.18.8",
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-validator-option": "^7.18.6",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-async-generator-functions": "^7.18.10",
- "@babel/plugin-proposal-class-properties": "^7.18.6",
- "@babel/plugin-proposal-class-static-block": "^7.18.6",
- "@babel/plugin-proposal-dynamic-import": "^7.18.6",
- "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
- "@babel/plugin-proposal-json-strings": "^7.18.6",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
- "@babel/plugin-proposal-numeric-separator": "^7.18.6",
- "@babel/plugin-proposal-object-rest-spread": "^7.18.9",
- "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-private-methods": "^7.18.6",
- "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
- "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.18.6",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.18.6",
- "@babel/plugin-transform-async-to-generator": "^7.18.6",
- "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
- "@babel/plugin-transform-block-scoping": "^7.18.9",
- "@babel/plugin-transform-classes": "^7.18.9",
- "@babel/plugin-transform-computed-properties": "^7.18.9",
- "@babel/plugin-transform-destructuring": "^7.18.9",
- "@babel/plugin-transform-dotall-regex": "^7.18.6",
- "@babel/plugin-transform-duplicate-keys": "^7.18.9",
- "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
- "@babel/plugin-transform-for-of": "^7.18.8",
- "@babel/plugin-transform-function-name": "^7.18.9",
- "@babel/plugin-transform-literals": "^7.18.9",
- "@babel/plugin-transform-member-expression-literals": "^7.18.6",
- "@babel/plugin-transform-modules-amd": "^7.18.6",
- "@babel/plugin-transform-modules-commonjs": "^7.18.6",
- "@babel/plugin-transform-modules-systemjs": "^7.18.9",
- "@babel/plugin-transform-modules-umd": "^7.18.6",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6",
- "@babel/plugin-transform-new-target": "^7.18.6",
- "@babel/plugin-transform-object-super": "^7.18.6",
- "@babel/plugin-transform-parameters": "^7.18.8",
- "@babel/plugin-transform-property-literals": "^7.18.6",
- "@babel/plugin-transform-regenerator": "^7.18.6",
- "@babel/plugin-transform-reserved-words": "^7.18.6",
- "@babel/plugin-transform-shorthand-properties": "^7.18.6",
- "@babel/plugin-transform-spread": "^7.18.9",
- "@babel/plugin-transform-sticky-regex": "^7.18.6",
- "@babel/plugin-transform-template-literals": "^7.18.9",
- "@babel/plugin-transform-typeof-symbol": "^7.18.9",
- "@babel/plugin-transform-unicode-escapes": "^7.18.10",
- "@babel/plugin-transform-unicode-regex": "^7.18.6",
- "@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.18.10",
- "babel-plugin-polyfill-corejs2": "^0.3.2",
- "babel-plugin-polyfill-corejs3": "^0.5.3",
- "babel-plugin-polyfill-regenerator": "^0.4.0",
- "core-js-compat": "^3.22.1",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
- }
- }
- },
- "@babel/preset-modules": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
- "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- }
- },
- "@babel/runtime": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
- "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
- }
- },
- "@babel/traverse": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz",
- "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==",
- "requires": {
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.3",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.23.3",
- "@babel/types": "^7.23.3",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "dependencies": {
- "@babel/generator": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz",
- "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==",
- "requires": {
- "@babel/types": "^7.23.3",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- }
- },
- "@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- }
- }
- },
- "@babel/types": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz",
- "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==",
- "requires": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.20",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@biesbjerg/ngx-translate-extract": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@biesbjerg/ngx-translate-extract/-/ngx-translate-extract-7.0.4.tgz",
- "integrity": "sha512-33hR94Fu26LK7Z+ImW2IdZiHfOcAzyIs1CdkUXg/536z2MqxBYqPoI9Ghsk6RTEfnsGa65wMgOcDXn7Ilhp8ew==",
- "dev": true,
- "requires": {
- "@phenomnomnominal/tsquery": "^4.1.1",
- "boxen": "^5.0.1",
- "colorette": "^1.2.2",
- "flat": "^5.0.2",
- "gettext-parser": "^4.0.4",
- "glob": "^7.1.6",
- "mkdirp": "^1.0.4",
- "path": "^0.12.7",
- "terminal-link": "^2.1.1",
- "yargs": "^16.2.0"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true
- }
- }
- },
- "@biesbjerg/ngx-translate-extract-marker": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@biesbjerg/ngx-translate-extract-marker/-/ngx-translate-extract-marker-1.0.0.tgz",
- "integrity": "sha512-GlCBQKmFE+b+qfIO0aGvuRc4LJVSfK27K2QQFXZLP55/w28iiq/q2CnBS8ya+4l+hapm7U3QPtFoZu9lmbUuew==",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- },
- "dependencies": {
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
- "dev": true
- },
- "@csstools/postcss-cascade-layers": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz",
- "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==",
- "dev": true,
- "requires": {
- "@csstools/selector-specificity": "^2.0.2",
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "@csstools/postcss-color-function": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz",
- "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==",
- "dev": true,
- "requires": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-font-format-keywords": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz",
- "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-hwb-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz",
- "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-ic-unit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz",
- "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==",
- "dev": true,
- "requires": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-is-pseudo-class": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz",
- "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==",
- "dev": true,
- "requires": {
- "@csstools/selector-specificity": "^2.0.0",
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "@csstools/postcss-nested-calc": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz",
- "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-normalize-display-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz",
- "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-oklab-function": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz",
- "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==",
- "dev": true,
- "requires": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-progressive-custom-properties": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz",
- "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-stepped-value-functions": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz",
- "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-text-decoration-shorthand": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz",
- "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-trigonometric-functions": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz",
- "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "@csstools/postcss-unset-value": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
- "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
- "dev": true,
- "requires": {}
- },
- "@csstools/selector-specificity": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz",
- "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==",
- "dev": true,
- "requires": {}
- },
- "@danielmoncada/angular-datetime-picker": {
- "version": "14.2.0",
- "resolved": "https://registry.npmjs.org/@danielmoncada/angular-datetime-picker/-/angular-datetime-picker-14.2.0.tgz",
- "integrity": "sha512-84EqUeGyHKMVBgipWYUNdLTczjfF8TXnX6WpVZzeFB/t+ciZ7VtLm4OGgIV1tJ3Nxanr1g1Ft1TmzQoebz0iTA==",
- "requires": {
- "tslib": "^2.3.1"
- }
- },
- "@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
- "dev": true
- },
- "@esbuild/linux-loong64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz",
- "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==",
- "dev": true,
- "optional": true
- },
- "@gar/promisify": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
- "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
- "dev": true
- },
- "@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dev": true,
- "requires": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- }
- },
- "@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true
- },
- "@jridgewell/gen-mapping": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
- "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
- "requires": {
- "@jridgewell/set-array": "^1.0.0",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
- },
- "@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
- },
- "@jridgewell/source-map": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
- "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
- "dev": true,
- "requires": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "dependencies": {
- "@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- }
- }
- },
- "@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
- },
- "@jridgewell/trace-mapping": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
- "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
- "requires": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "@leichtgewicht/ip-codec": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
- "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==",
- "dev": true
- },
- "@ngneat/until-destroy": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/@ngneat/until-destroy/-/until-destroy-9.2.2.tgz",
- "integrity": "sha512-pD5idTgUdF0XZMuaV1n0BZTnE2BvxymutoXhwfZbO3uxjh63wS6Pzzzwv+pkXalKhuSwdf6uA1gRx7DOvlj/Kw==",
- "dev": true,
- "requires": {
- "tslib": "^2.3.0"
- }
- },
- "@ngtools/webpack": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.6.tgz",
- "integrity": "sha512-HdfoHLGPzyP135BOlvTQcpeWisVfiH0u40YNTBVK3QAsrLnY17e2QG5BWBOrVYipRu1975cZtTC9rPjcCY8aLQ==",
- "dev": true,
- "requires": {}
- },
- "@ngx-rocket/ascii-logo": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@ngx-rocket/ascii-logo/-/ascii-logo-1.1.0.tgz",
- "integrity": "sha512-iGTX2tIAQmo/z2xiOsTAMxvO4wwHJkmutTzfJ+T/0Ebig54e1L2kgvctFRVHSj86UQUn8duzpuzcJJ4K4NK4jg==",
- "dev": true,
- "requires": {
- "chalk": "^2.0.1"
- }
- },
- "@ngx-rocket/scripts": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/@ngx-rocket/scripts/-/scripts-5.2.2.tgz",
- "integrity": "sha512-dKJ4EkTW6oa80Jwm0vtDGNSmmBKnKNH55Jday66QBDBJcGhTp69rhZfNFRu0tALtzD2sk/33824gDSheeeLIXw==",
- "dev": true,
- "requires": {
- "@ngx-rocket/ascii-logo": "^1.1.0",
- "chalk": "^4.1.0",
- "fs-extra": "^10.0.0",
- "lodash.get": "^4.4.2",
- "minimist": "^1.2.5"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "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"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "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==",
- "dev": true
- },
- "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"
- }
- }
- }
- },
- "@ngx-translate/core": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-14.0.0.tgz",
- "integrity": "sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==",
- "requires": {
- "tslib": "^2.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"
- }
- },
- "@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.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"
- }
- },
- "@npmcli/fs": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz",
- "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==",
- "dev": true,
- "requires": {
- "@gar/promisify": "^1.1.3",
- "semver": "^7.3.5"
- }
- },
- "@npmcli/git": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz",
- "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==",
- "dev": true,
- "requires": {
- "@npmcli/promise-spawn": "^3.0.0",
- "lru-cache": "^7.4.4",
- "mkdirp": "^1.0.4",
- "npm-pick-manifest": "^7.0.0",
- "proc-log": "^2.0.0",
- "promise-inflight": "^1.0.1",
- "promise-retry": "^2.0.1",
- "semver": "^7.3.5",
- "which": "^2.0.2"
- },
- "dependencies": {
- "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"
- }
- }
- }
- },
- "@npmcli/installed-package-contents": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz",
- "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==",
- "dev": true,
- "requires": {
- "npm-bundled": "^1.1.1",
- "npm-normalize-package-bin": "^1.0.1"
- }
- },
- "@npmcli/move-file": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz",
- "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==",
- "dev": true,
- "requires": {
- "mkdirp": "^1.0.4",
- "rimraf": "^3.0.2"
- }
- },
- "@npmcli/node-gyp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz",
- "integrity": "sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==",
- "dev": true
- },
- "@npmcli/promise-spawn": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz",
- "integrity": "sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==",
- "dev": true,
- "requires": {
- "infer-owner": "^1.0.4"
- }
- },
- "@npmcli/run-script": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz",
- "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==",
- "dev": true,
- "requires": {
- "@npmcli/node-gyp": "^2.0.0",
- "@npmcli/promise-spawn": "^3.0.0",
- "node-gyp": "^9.0.0",
- "read-package-json-fast": "^2.0.3",
- "which": "^2.0.2"
- },
- "dependencies": {
- "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"
- }
- }
- }
- },
- "@phenomnomnominal/tsquery": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.2.0.tgz",
- "integrity": "sha512-hR2U3uVcrrdkuG30ItQ+uFDs4ncZAybxWG0OjTE8ptPzVoU7GVeXpy+vMU8zX9EbmjGeITPw/su5HjYQyAH8bA==",
- "dev": true,
- "requires": {
- "esquery": "^1.0.1"
- }
- },
- "@schematics/angular": {
- "version": "14.2.6",
- "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.6.tgz",
- "integrity": "sha512-oeyMAQr3Q9nvAX+5FRgXcTMX9lqqenElBmAuwfqqdB0qD1jmkJ8TpWRuvYVA/931njpIwhfyLrzmzeNnJb23Sg==",
- "dev": true,
- "requires": {
- "@angular-devkit/core": "14.2.6",
- "@angular-devkit/schematics": "14.2.6",
- "jsonc-parser": "3.1.0"
- }
- },
- "@socket.io/component-emitter": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
- "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==",
- "dev": true
- },
- "@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true
- },
- "@types/body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
- "dev": true,
- "requires": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "@types/bonjour": {
- "version": "3.5.10",
- "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz",
- "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/connect": {
- "version": "3.4.35",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/connect-history-api-fallback": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz",
- "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==",
- "dev": true,
- "requires": {
- "@types/express-serve-static-core": "*",
- "@types/node": "*"
- }
- },
- "@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==",
- "dev": true
- },
- "@types/cors": {
- "version": "2.8.13",
- "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz",
- "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/eslint": {
- "version": "8.4.6",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz",
- "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==",
- "dev": true,
- "requires": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "@types/eslint-scope": {
- "version": "3.7.4",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
- "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
- "dev": true,
- "requires": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "@types/estree": {
- "version": "0.0.51",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
- "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
- "dev": true
- },
- "@types/express": {
- "version": "4.17.14",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz",
- "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==",
- "dev": true,
- "requires": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.18",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "@types/express-serve-static-core": {
- "version": "4.17.31",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz",
- "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*"
- }
- },
- "@types/file-saver": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.5.tgz",
- "integrity": "sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==",
- "dev": true
- },
- "@types/http-proxy": {
- "version": "1.17.9",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
- "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/jasmine": {
- "version": "3.10.6",
- "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.6.tgz",
- "integrity": "sha512-twY9adK/vz72oWxCWxzXaxoDtF9TpfEEsxvbc1ibjF3gMD/RThSuSud/GKUTR3aJnfbivAbC/vLqhY+gdWCHfA==",
- "dev": true
- },
- "@types/jasminewd2": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz",
- "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==",
- "dev": true,
- "requires": {
- "@types/jasmine": "*"
- }
- },
- "@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/mime": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
- "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==",
- "dev": true
- },
- "@types/node": {
- "version": "18.8.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.5.tgz",
- "integrity": "sha512-Bq7G3AErwe5A/Zki5fdD3O6+0zDChhg671NfPjtIcbtzDNZTv4NPKMRFr7gtYPG7y+B8uTiNK4Ngd9T0FTar6Q==",
- "dev": true
- },
- "@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
- "dev": true
- },
- "@types/q": {
- "version": "0.0.32",
- "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
- "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==",
- "dev": true
- },
- "@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "@types/range-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
- "dev": true
- },
- "@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
- "dev": true
- },
- "@types/selenium-webdriver": {
- "version": "3.0.20",
- "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz",
- "integrity": "sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA==",
- "dev": true
- },
- "@types/serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==",
- "dev": true,
- "requires": {
- "@types/express": "*"
- }
- },
- "@types/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
- "dev": true,
- "requires": {
- "@types/mime": "*",
- "@types/node": "*"
- }
- },
- "@types/sockjs": {
- "version": "0.3.33",
- "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz",
- "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/ws": {
- "version": "8.5.3",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
- "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@webassemblyjs/ast": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
- "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
- "dev": true,
- "requires": {
- "@webassemblyjs/helper-numbers": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
- }
- },
- "@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
- "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==",
- "dev": true
- },
- "@webassemblyjs/helper-api-error": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
- "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==",
- "dev": true
- },
- "@webassemblyjs/helper-buffer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
- "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==",
- "dev": true
- },
- "@webassemblyjs/helper-numbers": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
- "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
- "dev": true,
- "requires": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
- "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==",
- "dev": true
- },
- "@webassemblyjs/helper-wasm-section": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
- "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
- "dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1"
- }
- },
- "@webassemblyjs/ieee754": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
- "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
- "dev": true,
- "requires": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "@webassemblyjs/leb128": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
- "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
- "dev": true,
- "requires": {
- "@xtuc/long": "4.2.2"
- }
- },
- "@webassemblyjs/utf8": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
- "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==",
- "dev": true
- },
- "@webassemblyjs/wasm-edit": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
- "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
- "dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/helper-wasm-section": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-opt": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
- "@webassemblyjs/wast-printer": "1.11.1"
- }
- },
- "@webassemblyjs/wasm-gen": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
- "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
- "dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
- }
- },
- "@webassemblyjs/wasm-opt": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
- "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
- "dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-buffer": "1.11.1",
- "@webassemblyjs/wasm-gen": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1"
- }
- },
- "@webassemblyjs/wasm-parser": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
- "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
- "dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/helper-api-error": "1.11.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
- "@webassemblyjs/ieee754": "1.11.1",
- "@webassemblyjs/leb128": "1.11.1",
- "@webassemblyjs/utf8": "1.11.1"
- }
- },
- "@webassemblyjs/wast-printer": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
- "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
- "dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.11.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "dev": true
- },
- "@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "dev": true
- },
- "@yarnpkg/lockfile": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
- "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
- "dev": true
- },
- "abab": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
- "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
- "dev": true
- },
- "abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "dev": true
- },
- "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==",
- "dev": true,
- "requires": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- }
- },
- "acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
- "dev": true
- },
- "acorn-import-assertions": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
- "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
- "dev": true,
- "requires": {}
- },
- "adjust-sourcemap-loader": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz",
- "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==",
- "dev": true,
- "requires": {
- "loader-utils": "^2.0.0",
- "regex-parser": "^2.2.11"
- },
- "dependencies": {
- "loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- }
- }
- }
- },
- "adm-zip": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
- "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
- "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==",
- "dev": true,
- "requires": {
- "debug": "4"
- }
- },
- "agentkeepalive": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
- "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
- "dev": true,
- "requires": {
- "debug": "^4.1.0",
- "depd": "^1.1.2",
- "humanize-ms": "^1.2.1"
- },
- "dependencies": {
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "dev": true
- }
- }
- },
- "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": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
- "dev": true,
- "requires": {
- "ajv": "^8.0.0"
- }
- },
- "ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.3"
- }
- },
- "ansi-align": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
- "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
- "dev": true,
- "requires": {
- "string-width": "^4.1.0"
- }
- },
- "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==",
- "dev": true
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true
- }
- }
- },
- "ansi-html-community": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
- "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
- "dev": true
- },
- "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": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "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==",
- "dev": true
- },
- "are-we-there-yet": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
- "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
- "dev": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- }
- },
- "arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "array-flatten": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
- "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
- "dev": true
- },
- "array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
- "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": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
- "dev": true
- },
- "arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
- "dev": true
- },
- "asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "dev": true,
- "requires": {
- "safer-buffer": "~2.1.0"
- }
- },
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
- "dev": true
- },
- "async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==",
- "dev": true
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "autoprefixer": {
- "version": "10.4.12",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
- "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==",
- "dev": true,
- "requires": {
- "browserslist": "^4.21.4",
- "caniuse-lite": "^1.0.30001407",
- "fraction.js": "^4.2.0",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.0",
- "postcss-value-parser": "^4.2.0"
- }
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
- "dev": true
- },
- "aws4": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
- "dev": true
- },
- "babel-loader": {
- "version": "8.2.5",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
- "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
- "dev": true,
- "requires": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.0",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
- },
- "dependencies": {
- "loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- }
- }
- }
- },
- "babel-plugin-dynamic-import-node": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
- "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
- "dev": true,
- "requires": {
- "object.assign": "^4.1.0"
- }
- },
- "babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^5.0.4",
- "test-exclude": "^6.0.0"
- }
- },
- "babel-plugin-polyfill-corejs2": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz",
- "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.17.7",
- "@babel/helper-define-polyfill-provider": "^0.3.3",
- "semver": "^6.1.1"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
- }
- }
- },
- "babel-plugin-polyfill-corejs3": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
- "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
- "dev": true,
- "requires": {
- "@babel/helper-define-polyfill-provider": "^0.3.2",
- "core-js-compat": "^3.21.0"
- }
- },
- "babel-plugin-polyfill-regenerator": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz",
- "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==",
- "dev": true,
- "requires": {
- "@babel/helper-define-polyfill-provider": "^0.3.3"
- }
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true
- },
- "base64id": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
- "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
- "dev": true
- },
- "batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
- "dev": true,
- "requires": {
- "tweetnacl": "^0.14.3"
- }
- },
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "dev": true
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
- },
- "bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dev": true,
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "blocking-proxy": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz",
- "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- },
- "body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dev": true,
- "requires": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.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"
- }
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
- }
- },
- "bonjour-service": {
- "version": "1.0.14",
- "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz",
- "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==",
- "dev": true,
- "requires": {
- "array-flatten": "^2.1.2",
- "dns-equal": "^1.0.0",
- "fast-deep-equal": "^3.1.3",
- "multicast-dns": "^7.2.5"
- }
- },
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
- },
- "boxen": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
- "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
- "dev": true,
- "requires": {
- "ansi-align": "^3.0.0",
- "camelcase": "^6.2.0",
- "chalk": "^4.1.0",
- "cli-boxes": "^2.2.1",
- "string-width": "^4.2.2",
- "type-fest": "^0.20.2",
- "widest-line": "^3.1.0",
- "wrap-ansi": "^7.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
- },
- "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"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "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==",
- "dev": true
- },
- "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"
- }
- }
- }
- },
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
- "requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
- }
- },
- "browserstack": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz",
- "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==",
- "dev": true,
- "requires": {
- "https-proxy-agent": "^2.2.1"
- },
- "dependencies": {
- "agent-base": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
- "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
- "dev": true,
- "requires": {
- "es6-promisify": "^5.0.0"
- }
- },
- "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"
- }
- },
- "https-proxy-agent": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
- "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
- "dev": true,
- "requires": {
- "agent-base": "^4.3.0",
- "debug": "^3.1.0"
- }
- }
- }
- },
- "buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "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==",
- "dev": true
- },
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==",
- "dev": true
- },
- "builtins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
- "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
- "dev": true,
- "requires": {
- "semver": "^7.0.0"
- }
- },
- "bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true
- },
- "cacache": {
- "version": "16.1.2",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.2.tgz",
- "integrity": "sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA==",
- "dev": true,
- "requires": {
- "@npmcli/fs": "^2.1.0",
- "@npmcli/move-file": "^2.0.0",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.1.0",
- "glob": "^8.0.1",
- "infer-owner": "^1.0.4",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "mkdirp": "^1.0.4",
- "p-map": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "rimraf": "^3.0.2",
- "ssri": "^9.0.0",
- "tar": "^6.1.11",
- "unique-filename": "^1.1.1"
- }
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
- "caniuse-lite": {
- "version": "1.0.30001418",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz",
- "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg=="
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
- "dev": true
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
- "dev": true
- },
- "chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "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"
- }
- },
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "dev": true
- },
- "chrome-trace-event": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
- "dev": true
- },
- "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": "2.2.1",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
- "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
- "dev": true
- },
- "cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "requires": {
- "restore-cursor": "^3.1.0"
- }
- },
- "cli-spinners": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz",
- "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==",
- "dev": true
- },
- "cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
- "dev": true
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "dev": true
- },
- "clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.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==",
- "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "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==",
- "dev": true
- },
- "colorette": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
- "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
- "dev": true
- },
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "dev": true
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "commander": {
- "version": "9.4.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
- "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
- "dev": true
- },
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
- "compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "dev": true,
- "requires": {
- "mime-db": ">= 1.43.0 < 2"
- }
- },
- "compression": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
- "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
- "dev": true,
- "requires": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
- "debug": "2.6.9",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
- "dev": true
- },
- "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"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- }
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "connect": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
- "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "finalhandler": "1.1.2",
- "parseurl": "~1.3.3",
- "utils-merge": "1.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"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
- }
- },
- "connect-history-api-fallback": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
- "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
- "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": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "dev": true
- },
- "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==",
- "dev": true,
- "requires": {
- "safe-buffer": "5.2.1"
- }
- },
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
- "dev": true
- },
- "convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
- },
- "cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
- "dev": true
- },
- "cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dev": true
- },
- "copy-anything": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
- "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==",
- "dev": true,
- "requires": {
- "is-what": "^3.14.1"
- }
- },
- "copy-webpack-plugin": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz",
- "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==",
- "dev": true,
- "requires": {
- "fast-glob": "^3.2.11",
- "glob-parent": "^6.0.1",
- "globby": "^13.1.1",
- "normalize-path": "^3.0.0",
- "schema-utils": "^4.0.0",
- "serialize-javascript": "^6.0.0"
- },
- "dependencies": {
- "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"
- }
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- }
- }
- },
- "core-js-compat": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz",
- "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==",
- "dev": true,
- "requires": {
- "browserslist": "^4.21.4"
- }
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "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==",
- "dev": true,
- "requires": {
- "object-assign": "^4",
- "vary": "^1"
- }
- },
- "cosmiconfig": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
- "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
- "dev": true,
- "requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
- }
- },
- "create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
- },
- "critters": {
- "version": "0.0.16",
- "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz",
- "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.0",
- "css-select": "^4.2.0",
- "parse5": "^6.0.1",
- "parse5-htmlparser2-tree-adapter": "^6.0.1",
- "postcss": "^8.3.7",
- "pretty-bytes": "^5.3.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "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"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "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==",
- "dev": true
- },
- "parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- },
- "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"
- }
- }
- }
- },
- "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"
- },
- "dependencies": {
- "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"
- }
- }
- }
- },
- "css-blank-pseudo": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz",
- "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.9"
- }
- },
- "css-has-pseudo": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz",
- "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.9"
- }
- },
- "css-loader": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz",
- "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==",
- "dev": true,
- "requires": {
- "icss-utils": "^5.1.0",
- "postcss": "^8.4.7",
- "postcss-modules-extract-imports": "^3.0.0",
- "postcss-modules-local-by-default": "^4.0.0",
- "postcss-modules-scope": "^3.0.0",
- "postcss-modules-values": "^4.0.0",
- "postcss-value-parser": "^4.2.0",
- "semver": "^7.3.5"
- }
- },
- "css-prefers-color-scheme": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz",
- "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==",
- "dev": true,
- "requires": {}
- },
- "css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "dev": true,
- "requires": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- }
- },
- "css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "dev": true
- },
- "cssdb": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.1.tgz",
- "integrity": "sha512-pT3nzyGM78poCKLAEy2zWIVX2hikq6dIrjuZzLV98MumBg+xMTNYfHx7paUlfiRTgg91O/vR889CIf+qiv79Rw==",
- "dev": true
- },
- "cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true
- },
- "custom-event": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
- "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==",
- "dev": true
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "date-format": {
- "version": "4.0.14",
- "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz",
- "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==",
- "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"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true
- },
- "default-gateway": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
- "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
- "dev": true,
- "requires": {
- "execa": "^5.0.0"
- }
- },
- "defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "dev": true,
- "requires": {
- "clone": "^1.0.2"
- }
- },
- "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"
- }
- },
- "del": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
- "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==",
- "dev": true,
- "requires": {
- "globby": "^5.0.0",
- "is-path-cwd": "^1.0.0",
- "is-path-in-cwd": "^1.0.0",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "rimraf": "^2.2.8"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "globby": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
- "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==",
- "dev": true,
- "requires": {
- "array-union": "^1.0.1",
- "arrify": "^1.0.0",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true
- },
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
- "dev": true
- },
- "depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true
- },
- "dependency-graph": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
- "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg=="
- },
- "destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "dev": true
- },
- "detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
- "dev": true
- },
- "di": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
- "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==",
- "dev": true
- },
- "diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "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"
- }
- },
- "dns-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
- "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==",
- "dev": true
- },
- "dns-packet": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz",
- "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
- "dev": true,
- "requires": {
- "@leichtgewicht/ip-codec": "^2.0.1"
- }
- },
- "dom-serialize": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
- "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==",
- "dev": true,
- "requires": {
- "custom-event": "~1.0.0",
- "ent": "~2.2.0",
- "extend": "^3.0.0",
- "void-elements": "^2.0.0"
- }
- },
- "dom-serializer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
- "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- }
- },
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true
- },
- "domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.2.0"
- }
- },
- "domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dev": true,
- "requires": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- }
- },
- "ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "dev": true,
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "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==",
- "dev": true
- },
- "electron-to-chromium": {
- "version": "1.4.281",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.281.tgz",
- "integrity": "sha512-yer0w5wCYdFoZytfmbNhwiGI/3cW06+RV7E23ln4490DVMxs7PvYpbsrSmAiBn/V6gode8wvJlST2YfWgvzWIg=="
- },
- "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=="
- },
- "emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "dev": true
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true
- },
- "encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "dev": true,
- "requires": {
- "iconv-lite": "^0.6.2"
- }
- },
- "engine.io": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz",
- "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==",
- "dev": true,
- "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.11.0"
- }
- },
- "engine.io-parser": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
- "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==",
- "dev": true
- },
- "enhanced-resolve": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz",
- "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- }
- },
- "ent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
- "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==",
- "dev": true
- },
- "entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "dev": true
- },
- "env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "dev": true
- },
- "err-code": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
- "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
- "dev": true
- },
- "errno": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
- "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
- "dev": true,
- "optional": true,
- "requires": {
- "prr": "~1.0.1"
- }
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "es-module-lexer": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
- "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
- "dev": true
- },
- "es6-promise": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
- "dev": true
- },
- "es6-promisify": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
- "dev": true,
- "requires": {
- "es6-promise": "^4.0.3"
- }
- },
- "esbuild": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz",
- "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==",
- "dev": true,
- "optional": true,
- "requires": {
- "@esbuild/linux-loong64": "0.15.5",
- "esbuild-android-64": "0.15.5",
- "esbuild-android-arm64": "0.15.5",
- "esbuild-darwin-64": "0.15.5",
- "esbuild-darwin-arm64": "0.15.5",
- "esbuild-freebsd-64": "0.15.5",
- "esbuild-freebsd-arm64": "0.15.5",
- "esbuild-linux-32": "0.15.5",
- "esbuild-linux-64": "0.15.5",
- "esbuild-linux-arm": "0.15.5",
- "esbuild-linux-arm64": "0.15.5",
- "esbuild-linux-mips64le": "0.15.5",
- "esbuild-linux-ppc64le": "0.15.5",
- "esbuild-linux-riscv64": "0.15.5",
- "esbuild-linux-s390x": "0.15.5",
- "esbuild-netbsd-64": "0.15.5",
- "esbuild-openbsd-64": "0.15.5",
- "esbuild-sunos-64": "0.15.5",
- "esbuild-windows-32": "0.15.5",
- "esbuild-windows-64": "0.15.5",
- "esbuild-windows-arm64": "0.15.5"
- }
- },
- "esbuild-android-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz",
- "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==",
- "dev": true,
- "optional": true
- },
- "esbuild-android-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz",
- "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==",
- "dev": true,
- "optional": true
- },
- "esbuild-darwin-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz",
- "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-darwin-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz",
- "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz",
- "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz",
- "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-32": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz",
- "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz",
- "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz",
- "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz",
- "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-mips64le": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz",
- "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-ppc64le": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz",
- "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-riscv64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz",
- "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-s390x": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz",
- "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-netbsd-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz",
- "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==",
- "dev": true,
- "optional": true
- },
- "esbuild-openbsd-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz",
- "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==",
- "dev": true,
- "optional": true
- },
- "esbuild-sunos-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz",
- "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==",
- "dev": true,
- "optional": true
- },
- "esbuild-wasm": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.5.tgz",
- "integrity": "sha512-lTJOEKekN/4JI/eOEq0wLcx53co2N6vaT/XjBz46D1tvIVoUEyM0o2K6txW6gEotf31szFD/J1PbxmnbkGlK9A==",
- "dev": true
- },
- "esbuild-windows-32": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz",
- "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz",
- "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-arm64": {
- "version": "0.15.5",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz",
- "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==",
- "dev": true,
- "optional": true
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "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==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
- },
- "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"
- },
- "dependencies": {
- "estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true
- }
- }
- },
- "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"
- }
- },
- "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"
- }
- },
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "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==",
- "dev": true
- },
- "eventemitter-asyncresource": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz",
- "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==",
- "dev": true
- },
- "eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "dev": true
- },
- "events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true
- },
- "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"
- }
- },
- "exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true
- },
- "express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dev": true,
- "requires": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dev": true
- },
- "cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "dev": true
- },
- "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"
- }
- },
- "finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "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
- },
- "external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
- "dev": true,
- "requires": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- }
- }
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
- "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==",
- "dev": true
- },
- "fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
- "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"
- }
- },
- "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
- },
- "fastq": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
- "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
- "dev": true,
- "requires": {
- "reusify": "^1.0.4"
- }
- },
- "faye-websocket": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
- "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
- "dev": true,
- "requires": {
- "websocket-driver": ">=0.5.1"
- }
- },
- "figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "file-saver": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
- "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
- },
- "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==",
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.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"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
- "dev": true,
- "requires": {
- "ee-first": "1.1.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": "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"
- }
- },
- "flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true
- },
- "flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
- },
- "follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
- "dev": true
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "dev": true
- },
- "form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- },
- "forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "dev": true
- },
- "fraction.js": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
- "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
- "dev": true
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "dev": true
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true,
- "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==",
- "dev": true
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "optional": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "gauge": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
- "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
- "dev": true,
- "requires": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.3",
- "console-control-strings": "^1.1.0",
- "has-unicode": "^2.0.1",
- "signal-exit": "^3.0.7",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.5"
- }
- },
- "gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
- },
- "get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- },
- "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==",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "gettext-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.2.0.tgz",
- "integrity": "sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q==",
- "dev": true,
- "requires": {
- "content-type": "^1.0.4",
- "encoding": "^0.1.13",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.1"
- }
- },
- "glob": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
- "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- }
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "dev": true
- },
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
- },
- "globby": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz",
- "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==",
- "dev": true,
- "requires": {
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.11",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
- }
- },
- "graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "dev": true
- },
- "handle-thing": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
- "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
- "dev": true
- },
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
- "dev": true
- },
- "har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "dev": true,
- "requires": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- },
- "dependencies": {
- "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"
- }
- },
- "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
- }
- }
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "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-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
- },
- "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==",
- "dev": true
- },
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "dev": true
- },
- "hdr-histogram-js": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz",
- "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==",
- "dev": true,
- "requires": {
- "@assemblyscript/loader": "^0.10.1",
- "base64-js": "^1.2.0",
- "pako": "^1.0.3"
- }
- },
- "hdr-histogram-percentiles-obj": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz",
- "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==",
- "dev": true
- },
- "hosted-git-info": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz",
- "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==",
- "dev": true,
- "requires": {
- "lru-cache": "^7.5.1"
- }
- },
- "hpack.js": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.1",
- "obuf": "^1.0.0",
- "readable-stream": "^2.0.1",
- "wbuf": "^1.1.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "html-entities": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz",
- "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==",
- "dev": true
- },
- "html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "htmlhint": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-1.1.4.tgz",
- "integrity": "sha512-tSKPefhIaaWDk/vKxAOQbN+QwZmDeJCq3bZZGbJMoMQAfTjepudC+MkuT9MOBbuQI3dLLzDWbmU7fLV3JASC7Q==",
- "dev": true,
- "requires": {
- "async": "3.2.3",
- "chalk": "^4.1.2",
- "commander": "^9.1.0",
- "glob": "^7.2.0",
- "is-glob": "^4.0.3",
- "node-fetch": "^2.6.2",
- "strip-json-comments": "3.1.0",
- "xml": "1.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "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"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "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"
- }
- }
- }
- },
- "http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
- "dev": true
- },
- "http-deceiver": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
- "dev": true
- },
- "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==",
- "dev": true,
- "requires": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "dependencies": {
- "statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true
- }
- }
- },
- "http-parser-js": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
- "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
- "dev": true
- },
- "http-proxy": {
- "version": "1.18.1",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
- "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
- "dev": true,
- "requires": {
- "eventemitter3": "^4.0.0",
- "follow-redirects": "^1.0.0",
- "requires-port": "^1.0.0"
- }
- },
- "http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
- "dev": true,
- "requires": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
- }
- },
- "http-proxy-middleware": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
- "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
- "dev": true,
- "requires": {
- "@types/http-proxy": "^1.17.8",
- "http-proxy": "^1.18.1",
- "is-glob": "^4.0.1",
- "is-plain-obj": "^3.0.0",
- "micromatch": "^4.0.2"
- }
- },
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- }
- },
- "https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "dev": true,
- "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
- },
- "humanize-ms": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
- "dev": true,
- "requires": {
- "ms": "^2.0.0"
- }
- },
- "iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- }
- },
- "icss-utils": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
- "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
- "dev": true,
- "requires": {}
- },
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "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
- },
- "ignore-walk": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz",
- "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==",
- "dev": true,
- "requires": {
- "minimatch": "^5.0.1"
- }
- },
- "image-size": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
- "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
- "dev": true,
- "optional": true
- },
- "immediate": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
- "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
- "dev": true
- },
- "immutable": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz",
- "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==",
- "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": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "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
- },
- "infer-owner": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
- "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "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": "3.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.0.tgz",
- "integrity": "sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==",
- "dev": true
- },
- "inquirer": {
- "version": "8.2.4",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz",
- "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==",
- "dev": true,
- "requires": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.1",
- "cli-cursor": "^3.1.0",
- "cli-width": "^3.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.21",
- "mute-stream": "0.0.8",
- "ora": "^5.4.1",
- "run-async": "^2.4.0",
- "rxjs": "^7.5.5",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6",
- "wrap-ansi": "^7.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "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"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "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==",
- "dev": true
- },
- "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"
- }
- }
- }
- },
- "ip": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
- "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
- "dev": true
- },
- "ipaddr.js": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
- "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==",
- "dev": true
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "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==",
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-core-module": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
- "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "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-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
- },
- "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==",
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-interactive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
- "dev": true
- },
- "is-lambda": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
- "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
- "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=="
- },
- "is-path-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
- "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==",
- "dev": true
- },
- "is-path-in-cwd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
- "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
- "dev": true,
- "requires": {
- "is-path-inside": "^1.0.0"
- }
- },
- "is-path-inside": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
- "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==",
- "dev": true,
- "requires": {
- "path-is-inside": "^1.0.1"
- }
- },
- "is-plain-obj": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
- "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
- "dev": true
- },
- "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-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-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
- "is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true
- },
- "is-what": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz",
- "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==",
- "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": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
- },
- "isbinaryfile": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
- "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "dev": true
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
- "dev": true
- },
- "istanbul-lib-coverage": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
- "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
- "dev": true
- },
- "istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
- }
- }
- },
- "istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "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"
- }
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
- "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "rimraf": "^2.6.3",
- "source-map": "^0.6.1"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
- "dev": true
- },
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
- "istanbul-reports": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
- "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
- "dev": true,
- "requires": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- }
- },
- "jasmine": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz",
- "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==",
- "dev": true,
- "requires": {
- "exit": "^0.1.2",
- "glob": "^7.0.6",
- "jasmine-core": "~2.8.0"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "jasmine-core": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz",
- "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==",
- "dev": true
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- }
- }
- },
- "jasmine-core": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.3.0.tgz",
- "integrity": "sha512-qybtBUesniQdW6n+QIHMng2vDOHscIC/dEXjW+JzO9+LoAZMb03RCUC5xFOv/btSKPm1xL42fn+RjlU4oB42Lg==",
- "dev": true
- },
- "jasmine-spec-reporter": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz",
- "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==",
- "dev": true,
- "requires": {
- "colors": "1.4.0"
- }
- },
- "jasminewd2": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz",
- "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==",
- "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==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
- "dev": true
- },
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
- "dev": true
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
- },
- "json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
- },
- "jsonc-parser": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz",
- "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==",
- "dev": true
- },
- "jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^2.0.0"
- }
- },
- "jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "dev": true
- },
- "jsprim": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
- "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "dev": true,
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- }
- },
- "jszip": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
- "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
- "dev": true,
- "requires": {
- "lie": "~3.3.0",
- "pako": "~1.0.2",
- "readable-stream": "~2.3.6",
- "setimmediate": "^1.0.5"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "karma": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz",
- "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==",
- "dev": true,
- "requires": {
- "@colors/colors": "1.5.0",
- "body-parser": "^1.19.0",
- "braces": "^3.0.2",
- "chokidar": "^3.5.1",
- "connect": "^3.7.0",
- "di": "^0.0.1",
- "dom-serialize": "^2.2.1",
- "glob": "^7.1.7",
- "graceful-fs": "^4.2.6",
- "http-proxy": "^1.18.1",
- "isbinaryfile": "^4.0.8",
- "lodash": "^4.17.21",
- "log4js": "^6.4.1",
- "mime": "^2.5.2",
- "minimatch": "^3.0.4",
- "mkdirp": "^0.5.5",
- "qjobs": "^1.2.0",
- "range-parser": "^1.2.1",
- "rimraf": "^3.0.2",
- "socket.io": "^4.4.1",
- "source-map": "^0.6.1",
- "tmp": "^0.2.1",
- "ua-parser-js": "^0.7.30",
- "yargs": "^16.1.1"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.6"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "tmp": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
- "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
- "dev": true,
- "requires": {
- "rimraf": "^3.0.0"
- }
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true
- }
- }
- },
- "karma-chrome-launcher": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz",
- "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==",
- "dev": true,
- "requires": {
- "which": "^1.2.1"
- }
- },
- "karma-coverage-istanbul-reporter": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz",
- "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^3.0.6",
- "istanbul-reports": "^3.0.2",
- "minimatch": "^3.0.4"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- }
- }
- },
- "karma-jasmine": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz",
- "integrity": "sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==",
- "dev": true,
- "requires": {
- "jasmine-core": "^3.6.0"
- },
- "dependencies": {
- "jasmine-core": {
- "version": "3.99.1",
- "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz",
- "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==",
- "dev": true
- }
- }
- },
- "karma-jasmine-html-reporter": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz",
- "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==",
- "dev": true,
- "requires": {}
- },
- "karma-junit-reporter": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz",
- "integrity": "sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==",
- "dev": true,
- "requires": {
- "path-is-absolute": "^1.0.0",
- "xmlbuilder": "12.0.0"
- }
- },
- "karma-source-map-support": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz",
- "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==",
- "dev": true,
- "requires": {
- "source-map-support": "^0.5.5"
- }
- },
- "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==",
- "dev": true
- },
- "klona": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz",
- "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==",
- "dev": true
- },
- "less": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz",
- "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==",
- "dev": true,
- "requires": {
- "copy-anything": "^2.0.1",
- "errno": "^0.1.1",
- "graceful-fs": "^4.1.2",
- "image-size": "~0.5.0",
- "make-dir": "^2.1.0",
- "mime": "^1.4.1",
- "needle": "^3.1.0",
- "parse-node-version": "^1.0.1",
- "source-map": "~0.6.0",
- "tslib": "^2.3.0"
- },
- "dependencies": {
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "optional": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
- "optional": true
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true,
- "optional": true
- },
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "optional": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "optional": true
- }
- }
- },
- "less-loader": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.0.0.tgz",
- "integrity": "sha512-9+LOWWjuoectIEx3zrfN83NAGxSUB5pWEabbbidVQVgZhN+wN68pOvuyirVlH1IK4VT1f3TmlyvAnCXh8O5KEw==",
- "dev": true,
- "requires": {
- "klona": "^2.0.4"
- }
- },
- "license-webpack-plugin": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz",
- "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==",
- "dev": true,
- "requires": {
- "webpack-sources": "^3.0.0"
- }
- },
- "lie": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
- "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
- "dev": true,
- "requires": {
- "immediate": "~3.0.5"
- }
- },
- "lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
- "dev": true
- },
- "loader-utils": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz",
- "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==",
- "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"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true
- },
- "lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "dev": true
- },
- "log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "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"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "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==",
- "dev": true
- },
- "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"
- }
- }
- }
- },
- "log4js": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.7.0.tgz",
- "integrity": "sha512-KA0W9ffgNBLDj6fZCq/lRbgR6ABAodRIDHrZnS48vOtfKa4PzWImb0Md1lmGCdO3n3sbCm/n1/WmrNlZ8kCI3Q==",
- "dev": true,
- "requires": {
- "date-format": "^4.0.14",
- "debug": "^4.3.4",
- "flatted": "^3.2.7",
- "rfdc": "^1.3.0",
- "streamroller": "^3.1.3"
- }
- },
- "lru-cache": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz",
- "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==",
- "dev": true
- },
- "magic-string": {
- "version": "0.26.2",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz",
- "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==",
- "requires": {
- "sourcemap-codec": "^1.4.8"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "semver": "^6.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
- }
- }
- },
- "make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
- },
- "make-fetch-happen": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz",
- "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==",
- "dev": true,
- "requires": {
- "agentkeepalive": "^4.2.1",
- "cacache": "^16.1.0",
- "http-cache-semantics": "^4.1.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^7.7.1",
- "minipass": "^3.1.6",
- "minipass-collect": "^1.0.2",
- "minipass-fetch": "^2.0.3",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.3",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^7.0.0",
- "ssri": "^9.0.0"
- }
- },
- "material-design-icons-iconfont": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.7.0.tgz",
- "integrity": "sha512-lSj71DgVv20kO0kGbs42icDzbRot61gEDBLQACzkUuznRQBUYmbxzEkGU6dNBb5fRWHMaScYlAXX96HQ4/cJWA=="
- },
- "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==",
- "dev": true
- },
- "memfs": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz",
- "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==",
- "dev": true,
- "requires": {
- "fs-monkey": "^1.0.3"
- }
- },
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "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"
- }
- },
- "mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "dev": true
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true
- },
- "mini-css-extract-plugin": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz",
- "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==",
- "dev": true,
- "requires": {
- "schema-utils": "^4.0.0"
- },
- "dependencies": {
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- }
- }
- },
- "minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true
- },
- "minimatch": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
- "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "dev": true
- },
- "minipass": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz",
- "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "minipass-collect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
- "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minipass-fetch": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz",
- "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==",
- "dev": true,
- "requires": {
- "encoding": "^0.1.13",
- "minipass": "^3.1.6",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.1.2"
- }
- },
- "minipass-flush": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minipass-json-stream": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz",
- "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==",
- "dev": true,
- "requires": {
- "jsonparse": "^1.3.1",
- "minipass": "^3.0.0"
- }
- },
- "minipass-pipeline": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
- "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minipass-sized": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
- "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
- "dev": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dev": true,
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true
- },
- "moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "multicast-dns": {
- "version": "7.2.5",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
- "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
- "dev": true,
- "requires": {
- "dns-packet": "^5.2.2",
- "thunky": "^1.0.2"
- }
- },
- "mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
- "dev": true
- },
- "nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
- "dev": true
- },
- "needle": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/needle/-/needle-3.1.0.tgz",
- "integrity": "sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==",
- "dev": true,
- "optional": true,
- "requires": {
- "debug": "^3.2.6",
- "iconv-lite": "^0.6.3",
- "sax": "^1.2.4"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "ms": "^2.1.1"
- }
- }
- }
- },
- "negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "dev": true
- },
- "neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
- },
- "ngx-image-compress": {
- "version": "13.1.13",
- "resolved": "https://registry.npmjs.org/ngx-image-compress/-/ngx-image-compress-13.1.13.tgz",
- "integrity": "sha512-swSuG7lsMmMDdj7muD/RS5hgNjLG5/I28B44z2qe79sF0Mi3FFYz6WlGMWhyk4K6DCqfxvLuJsegTT5/6lGFmQ==",
- "requires": {
- "tslib": "^2.3.1"
- }
- },
- "nice-napi": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz",
- "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==",
- "dev": true,
- "optional": true,
- "requires": {
- "node-addon-api": "^3.0.0",
- "node-gyp-build": "^4.2.2"
- }
- },
- "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==",
- "dev": true,
- "optional": true
- },
- "node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dev": true,
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
- "dev": true
- },
- "node-gyp": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz",
- "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==",
- "dev": true,
- "requires": {
- "env-paths": "^2.2.0",
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^10.0.3",
- "nopt": "^6.0.0",
- "npmlog": "^6.0.0",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.2",
- "which": "^2.0.2"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "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"
- }
- }
- }
- },
- "node-gyp-build": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz",
- "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==",
- "dev": true,
- "optional": true
- },
- "node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
- },
- "nopt": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz",
- "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==",
- "dev": true,
- "requires": {
- "abbrev": "^1.0.0"
- }
- },
- "normalize-package-data": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz",
- "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^5.0.0",
- "is-core-module": "^2.8.1",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- }
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
- },
- "normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
- "dev": true
- },
- "npm-bundled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
- "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==",
- "dev": true,
- "requires": {
- "npm-normalize-package-bin": "^1.0.1"
- }
- },
- "npm-install-checks": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz",
- "integrity": "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==",
- "dev": true,
- "requires": {
- "semver": "^7.1.1"
- }
- },
- "npm-normalize-package-bin": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
- "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
- "dev": true
- },
- "npm-package-arg": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz",
- "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^5.0.0",
- "proc-log": "^2.0.1",
- "semver": "^7.3.5",
- "validate-npm-package-name": "^4.0.0"
- }
- },
- "npm-packlist": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz",
- "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==",
- "dev": true,
- "requires": {
- "glob": "^8.0.1",
- "ignore-walk": "^5.0.1",
- "npm-bundled": "^2.0.0",
- "npm-normalize-package-bin": "^2.0.0"
- },
- "dependencies": {
- "npm-bundled": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz",
- "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==",
- "dev": true,
- "requires": {
- "npm-normalize-package-bin": "^2.0.0"
- }
- },
- "npm-normalize-package-bin": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz",
- "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==",
- "dev": true
- }
- }
- },
- "npm-pick-manifest": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz",
- "integrity": "sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==",
- "dev": true,
- "requires": {
- "npm-install-checks": "^5.0.0",
- "npm-normalize-package-bin": "^1.0.1",
- "npm-package-arg": "^9.0.0",
- "semver": "^7.3.5"
- }
- },
- "npm-registry-fetch": {
- "version": "13.3.1",
- "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz",
- "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==",
- "dev": true,
- "requires": {
- "make-fetch-happen": "^10.0.6",
- "minipass": "^3.1.6",
- "minipass-fetch": "^2.0.3",
- "minipass-json-stream": "^1.0.1",
- "minizlib": "^2.1.2",
- "npm-package-arg": "^9.0.1",
- "proc-log": "^2.0.0"
- }
- },
- "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": "6.0.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
- "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
- "dev": true,
- "requires": {
- "are-we-there-yet": "^3.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^4.0.3",
- "set-blocking": "^2.0.0"
- }
- },
- "nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
- "requires": {
- "boolbase": "^1.0.0"
- }
- },
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true
- },
- "object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
- "dev": true
- },
- "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.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- }
- },
- "obuf": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
- "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
- "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==",
- "dev": true,
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
- "dev": true
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "requires": {
- "wrappy": "1"
- }
- },
- "onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "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"
- }
- },
- "ora": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
- "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
- "dev": true,
- "requires": {
- "bl": "^4.1.0",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-spinners": "^2.5.0",
- "is-interactive": "^1.0.0",
- "is-unicode-supported": "^0.1.0",
- "log-symbols": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "wcwidth": "^1.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "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"
- }
- },
- "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==",
- "dev": true,
- "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==",
- "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==",
- "dev": true
- },
- "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"
- }
- }
- }
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
- "dev": true
- },
- "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-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "dev": true,
- "requires": {
- "aggregate-error": "^3.0.0"
- }
- },
- "p-retry": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
- "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
- "dev": true,
- "requires": {
- "@types/retry": "0.12.0",
- "retry": "^0.13.1"
- },
- "dependencies": {
- "retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "dev": true
- }
- }
- },
- "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
- },
- "pacote": {
- "version": "13.6.2",
- "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz",
- "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==",
- "dev": true,
- "requires": {
- "@npmcli/git": "^3.0.0",
- "@npmcli/installed-package-contents": "^1.0.7",
- "@npmcli/promise-spawn": "^3.0.0",
- "@npmcli/run-script": "^4.1.0",
- "cacache": "^16.0.0",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.1.0",
- "infer-owner": "^1.0.4",
- "minipass": "^3.1.6",
- "mkdirp": "^1.0.4",
- "npm-package-arg": "^9.0.0",
- "npm-packlist": "^5.1.0",
- "npm-pick-manifest": "^7.0.0",
- "npm-registry-fetch": "^13.0.1",
- "proc-log": "^2.0.0",
- "promise-retry": "^2.0.1",
- "read-package-json": "^5.0.0",
- "read-package-json-fast": "^2.0.3",
- "rimraf": "^3.0.2",
- "ssri": "^9.0.0",
- "tar": "^6.1.11"
- }
- },
- "pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
- },
- "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-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- }
- },
- "parse-node-version": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
- "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
- "dev": true
- },
- "parse5": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
- "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
- "optional": true
- },
- "parse5-html-rewriting-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz",
- "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==",
- "dev": true,
- "requires": {
- "parse5": "^6.0.1",
- "parse5-sax-parser": "^6.0.1"
- },
- "dependencies": {
- "parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- }
- }
- },
- "parse5-htmlparser2-tree-adapter": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
- "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
- "dev": true,
- "requires": {
- "parse5": "^6.0.1"
- },
- "dependencies": {
- "parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- }
- }
- },
- "parse5-sax-parser": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz",
- "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==",
- "dev": true,
- "requires": {
- "parse5": "^6.0.1"
- },
- "dependencies": {
- "parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- }
- }
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true
- },
- "path": {
- "version": "0.12.7",
- "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
- "dev": true,
- "requires": {
- "process": "^0.11.1",
- "util": "^0.10.3"
- }
- },
- "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
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true
- },
- "path-is-inside": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
- "dev": true
- },
- "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
- },
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
- "dev": true
- },
- "picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
- "dev": true,
- "requires": {
- "pinkie": "^2.0.0"
- }
- },
- "piscina": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz",
- "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==",
- "dev": true,
- "requires": {
- "eventemitter-asyncresource": "^1.0.0",
- "hdr-histogram-js": "^2.0.1",
- "hdr-histogram-percentiles-obj": "^3.0.0",
- "nice-napi": "^1.0.2"
- }
- },
- "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"
- }
- },
- "postcss": {
- "version": "8.4.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
- "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
- "dev": true,
- "requires": {
- "nanoid": "^3.3.4",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- }
- },
- "postcss-attribute-case-insensitive": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz",
- "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "postcss-clamp": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
- "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-color-functional-notation": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz",
- "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-color-hex-alpha": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz",
- "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-color-rebeccapurple": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz",
- "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-custom-media": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz",
- "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-custom-properties": {
- "version": "12.1.9",
- "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.9.tgz",
- "integrity": "sha512-/E7PRvK8DAVljBbeWrcEQJPG72jaImxF3vvCNFwv9cC8CzigVoNIpeyfnJzphnN3Fd8/auBf5wvkw6W9MfmTyg==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-custom-selectors": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz",
- "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.4"
- }
- },
- "postcss-dir-pseudo-class": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz",
- "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "postcss-double-position-gradients": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz",
- "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==",
- "dev": true,
- "requires": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-env-function": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz",
- "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-focus-visible": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz",
- "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.9"
- }
- },
- "postcss-focus-within": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz",
- "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.9"
- }
- },
- "postcss-font-variant": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
- "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
- "dev": true,
- "requires": {}
- },
- "postcss-gap-properties": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz",
- "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==",
- "dev": true,
- "requires": {}
- },
- "postcss-image-set-function": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz",
- "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-import": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.0.0.tgz",
- "integrity": "sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- }
- },
- "postcss-initial": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
- "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==",
- "dev": true,
- "requires": {}
- },
- "postcss-lab-function": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz",
- "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==",
- "dev": true,
- "requires": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-loader": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz",
- "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==",
- "dev": true,
- "requires": {
- "cosmiconfig": "^7.0.0",
- "klona": "^2.0.5",
- "semver": "^7.3.7"
- }
- },
- "postcss-logical": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
- "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==",
- "dev": true,
- "requires": {}
- },
- "postcss-media-minmax": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
- "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==",
- "dev": true,
- "requires": {}
- },
- "postcss-modules-extract-imports": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
- "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
- "dev": true,
- "requires": {}
- },
- "postcss-modules-local-by-default": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz",
- "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==",
- "dev": true,
- "requires": {
- "icss-utils": "^5.0.0",
- "postcss-selector-parser": "^6.0.2",
- "postcss-value-parser": "^4.1.0"
- }
- },
- "postcss-modules-scope": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
- "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.4"
- }
- },
- "postcss-modules-values": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
- "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
- "dev": true,
- "requires": {
- "icss-utils": "^5.0.0"
- }
- },
- "postcss-nesting": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz",
- "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==",
- "dev": true,
- "requires": {
- "@csstools/selector-specificity": "^2.0.0",
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "postcss-opacity-percentage": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz",
- "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==",
- "dev": true
- },
- "postcss-overflow-shorthand": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz",
- "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-page-break": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
- "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
- "dev": true,
- "requires": {}
- },
- "postcss-place": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz",
- "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==",
- "dev": true,
- "requires": {
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-preset-env": {
- "version": "7.8.0",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.0.tgz",
- "integrity": "sha512-leqiqLOellpLKfbHkD06E04P6d9ZQ24mat6hu4NSqun7WG0UhspHR5Myiv/510qouCjoo4+YJtNOqg5xHaFnCA==",
- "dev": true,
- "requires": {
- "@csstools/postcss-cascade-layers": "^1.0.5",
- "@csstools/postcss-color-function": "^1.1.1",
- "@csstools/postcss-font-format-keywords": "^1.0.1",
- "@csstools/postcss-hwb-function": "^1.0.2",
- "@csstools/postcss-ic-unit": "^1.0.1",
- "@csstools/postcss-is-pseudo-class": "^2.0.7",
- "@csstools/postcss-nested-calc": "^1.0.0",
- "@csstools/postcss-normalize-display-values": "^1.0.1",
- "@csstools/postcss-oklab-function": "^1.1.1",
- "@csstools/postcss-progressive-custom-properties": "^1.3.0",
- "@csstools/postcss-stepped-value-functions": "^1.0.1",
- "@csstools/postcss-text-decoration-shorthand": "^1.0.0",
- "@csstools/postcss-trigonometric-functions": "^1.0.2",
- "@csstools/postcss-unset-value": "^1.0.2",
- "autoprefixer": "^10.4.8",
- "browserslist": "^4.21.3",
- "css-blank-pseudo": "^3.0.3",
- "css-has-pseudo": "^3.0.4",
- "css-prefers-color-scheme": "^6.0.3",
- "cssdb": "^7.0.0",
- "postcss-attribute-case-insensitive": "^5.0.2",
- "postcss-clamp": "^4.1.0",
- "postcss-color-functional-notation": "^4.2.4",
- "postcss-color-hex-alpha": "^8.0.4",
- "postcss-color-rebeccapurple": "^7.1.1",
- "postcss-custom-media": "^8.0.2",
- "postcss-custom-properties": "^12.1.8",
- "postcss-custom-selectors": "^6.0.3",
- "postcss-dir-pseudo-class": "^6.0.5",
- "postcss-double-position-gradients": "^3.1.2",
- "postcss-env-function": "^4.0.6",
- "postcss-focus-visible": "^6.0.4",
- "postcss-focus-within": "^5.0.4",
- "postcss-font-variant": "^5.0.0",
- "postcss-gap-properties": "^3.0.5",
- "postcss-image-set-function": "^4.0.7",
- "postcss-initial": "^4.0.1",
- "postcss-lab-function": "^4.2.1",
- "postcss-logical": "^5.0.4",
- "postcss-media-minmax": "^5.0.0",
- "postcss-nesting": "^10.1.10",
- "postcss-opacity-percentage": "^1.1.2",
- "postcss-overflow-shorthand": "^3.0.4",
- "postcss-page-break": "^3.0.4",
- "postcss-place": "^7.0.5",
- "postcss-pseudo-class-any-link": "^7.1.6",
- "postcss-replace-overflow-wrap": "^4.0.0",
- "postcss-selector-not": "^6.0.1",
- "postcss-value-parser": "^4.2.0"
- }
- },
- "postcss-pseudo-class-any-link": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz",
- "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "postcss-replace-overflow-wrap": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
- "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
- "dev": true,
- "requires": {}
- },
- "postcss-selector-not": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz",
- "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==",
- "dev": true,
- "requires": {
- "postcss-selector-parser": "^6.0.10"
- }
- },
- "postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
- "dev": true,
- "requires": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- }
- },
- "postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
- },
- "pretty-bytes": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
- "dev": true
- },
- "proc-log": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz",
- "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==",
- "dev": true
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "dev": true
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
- },
- "promise-inflight": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
- "dev": true
- },
- "promise-retry": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
- "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
- "dev": true,
- "requires": {
- "err-code": "^2.0.2",
- "retry": "^0.12.0"
- }
- },
- "protractor": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz",
- "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==",
- "dev": true,
- "requires": {
- "@types/q": "^0.0.32",
- "@types/selenium-webdriver": "^3.0.0",
- "blocking-proxy": "^1.0.0",
- "browserstack": "^1.5.1",
- "chalk": "^1.1.3",
- "glob": "^7.0.3",
- "jasmine": "2.8.0",
- "jasminewd2": "^2.1.0",
- "q": "1.4.1",
- "saucelabs": "^1.5.0",
- "selenium-webdriver": "3.6.0",
- "source-map-support": "~0.4.0",
- "webdriver-js-extender": "2.1.0",
- "webdriver-manager": "^12.1.7",
- "yargs": "^15.3.1"
- },
- "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
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "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"
- }
- },
- "cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- }
- }
- },
- "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==",
- "dev": true,
- "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==",
- "dev": true
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "dev": true
- },
- "source-map-support": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
- "dev": true,
- "requires": {
- "source-map": "^0.5.6"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "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": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
- "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==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- }
- }
- },
- "y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "dev": true,
- "requires": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- }
- },
- "yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.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==",
- "dev": true,
- "requires": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "dependencies": {
- "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==",
- "dev": true
- }
- }
- },
- "prr": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
- "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
- "dev": true,
- "optional": true
- },
- "psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
- "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.4.1",
- "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
- "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==",
- "dev": true
- },
- "qjobs": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
- "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
- "dev": true
- },
- "qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "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
- },
- "randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.1.0"
- }
- },
- "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==",
- "dev": true
- },
- "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==",
- "dev": true,
- "requires": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- }
- }
- },
- "read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "dev": true,
- "requires": {
- "pify": "^2.3.0"
- }
- },
- "read-package-json": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz",
- "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==",
- "dev": true,
- "requires": {
- "glob": "^8.0.1",
- "json-parse-even-better-errors": "^2.3.1",
- "normalize-package-data": "^4.0.0",
- "npm-normalize-package-bin": "^2.0.0"
- },
- "dependencies": {
- "npm-normalize-package-bin": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz",
- "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==",
- "dev": true
- }
- }
- },
- "read-package-json-fast": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz",
- "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==",
- "dev": true,
- "requires": {
- "json-parse-even-better-errors": "^2.3.0",
- "npm-normalize-package-bin": "^1.0.1"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "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=="
- },
- "regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
- },
- "regenerate-unicode-properties": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz",
- "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==",
- "dev": true,
- "requires": {
- "regenerate": "^1.4.2"
- }
- },
- "regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true
- },
- "regenerator-transform": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
- "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.8.4"
- }
- },
- "regex-parser": {
- "version": "2.2.11",
- "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz",
- "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==",
- "dev": true
- },
- "regexpu-core": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz",
- "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==",
- "dev": true,
- "requires": {
- "regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.1.0",
- "regjsgen": "^0.7.1",
- "regjsparser": "^0.9.1",
- "unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.0.0"
- }
- },
- "regjsgen": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz",
- "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==",
- "dev": true
- },
- "regjsparser": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
- "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
- "dev": true,
- "requires": {
- "jsesc": "~0.5.0"
- },
- "dependencies": {
- "jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
- "dev": true
- }
- }
- },
- "request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "dev": true,
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "dependencies": {
- "qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "dev": true
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "dev": true
- }
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
- },
- "require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true
- },
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
- "requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true
- },
- "resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true
- },
- "resolve-url-loader": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz",
- "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==",
- "dev": true,
- "requires": {
- "adjust-sourcemap-loader": "^4.0.0",
- "convert-source-map": "^1.7.0",
- "loader-utils": "^2.0.0",
- "postcss": "^8.2.14",
- "source-map": "0.6.1"
- },
- "dependencies": {
- "loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
- "restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
- "requires": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- }
- },
- "retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
- "dev": true
- },
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
- },
- "rfdc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
- "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- }
- }
- },
- "run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
- "dev": true
- },
- "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"
- }
- },
- "rxjs": {
- "version": "7.5.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz",
- "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==",
- "requires": {
- "tslib": "^2.1.0"
- }
- },
- "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==",
- "dev": true
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
- },
- "sass": {
- "version": "1.54.4",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz",
- "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==",
- "dev": true,
- "requires": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- }
- },
- "sass-loader": {
- "version": "13.0.2",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz",
- "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==",
- "dev": true,
- "requires": {
- "klona": "^2.0.4",
- "neo-async": "^2.6.2"
- }
- },
- "saucelabs": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz",
- "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==",
- "dev": true,
- "requires": {
- "https-proxy-agent": "^2.2.1"
- },
- "dependencies": {
- "agent-base": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
- "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
- "dev": true,
- "requires": {
- "es6-promisify": "^5.0.0"
- }
- },
- "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"
- }
- },
- "https-proxy-agent": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
- "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
- "dev": true,
- "requires": {
- "agent-base": "^4.3.0",
- "debug": "^3.1.0"
- }
- }
- }
- },
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
- "dev": true
- },
- "schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
- },
- "dependencies": {
- "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"
- }
- },
- "ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
- "requires": {}
- },
- "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
- }
- }
- },
- "select-hose": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
- "dev": true
- },
- "selenium-webdriver": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
- "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
- "dev": true,
- "requires": {
- "jszip": "^3.1.3",
- "rimraf": "^2.5.4",
- "tmp": "0.0.30",
- "xml2js": "^0.4.17"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "tmp": {
- "version": "0.0.30",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
- "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==",
- "dev": true,
- "requires": {
- "os-tmpdir": "~1.0.1"
- }
- }
- }
- },
- "selfsigned": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz",
- "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==",
- "dev": true,
- "requires": {
- "node-forge": "^1"
- }
- },
- "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"
- },
- "dependencies": {
- "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"
- }
- }
- }
- },
- "send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dev": true,
- "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==",
- "dev": true,
- "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==",
- "dev": true
- }
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "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==",
- "dev": true
- },
- "statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true
- }
- }
- },
- "serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
- "requires": {
- "randombytes": "^2.1.0"
- }
- },
- "serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
- "dev": true,
- "requires": {
- "accepts": "~1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
- },
- "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"
- }
- },
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "dev": true
- },
- "http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
- "dev": true,
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "dev": true
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
- "dev": true
- }
- }
- },
- "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==",
- "dev": true,
- "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": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true
- },
- "setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
- "dev": true
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
- },
- "shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.2"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "dev": true
- },
- "smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
- "dev": true
- },
- "socket.io": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz",
- "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==",
- "dev": true,
- "requires": {
- "accepts": "~1.3.4",
- "base64id": "~2.0.0",
- "debug": "~4.3.2",
- "engine.io": "~6.4.1",
- "socket.io-adapter": "~2.5.2",
- "socket.io-parser": "~4.2.1"
- }
- },
- "socket.io-adapter": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
- "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
- "dev": true,
- "requires": {
- "ws": "~8.11.0"
- }
- },
- "socket.io-parser": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
- "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
- "dev": true,
- "requires": {
- "@socket.io/component-emitter": "~3.1.0",
- "debug": "~4.3.1"
- }
- },
- "sockjs": {
- "version": "0.3.24",
- "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
- "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
- "dev": true,
- "requires": {
- "faye-websocket": "^0.11.3",
- "uuid": "^8.3.2",
- "websocket-driver": "^0.7.4"
- }
- },
- "socks": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
- "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
- "dev": true,
- "requires": {
- "ip": "^2.0.0",
- "smart-buffer": "^4.2.0"
- }
- },
- "socks-proxy-agent": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz",
- "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==",
- "dev": true,
- "requires": {
- "agent-base": "^6.0.2",
- "debug": "^4.3.3",
- "socks": "^2.6.2"
- }
- },
- "source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "dev": true
- },
- "source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "dev": true
- },
- "source-map-loader": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.0.tgz",
- "integrity": "sha512-i3KVgM3+QPAHNbGavK+VBq03YoJl24m9JWNbLgsjTj8aJzXG9M61bantBTNBt7CNwY2FYf+RJRYJ3pzalKjIrw==",
- "dev": true,
- "requires": {
- "abab": "^2.0.6",
- "iconv-lite": "^0.6.3",
- "source-map-js": "^1.0.2"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
- "sourcemap-codec": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
- },
- "spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
- "dev": true,
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
- "dev": true
- },
- "spdy": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
- "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
- "dev": true,
- "requires": {
- "debug": "^4.1.0",
- "handle-thing": "^2.0.0",
- "http-deceiver": "^1.2.7",
- "select-hose": "^2.0.0",
- "spdy-transport": "^3.0.0"
- }
- },
- "spdy-transport": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
- "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
- "dev": true,
- "requires": {
- "debug": "^4.1.0",
- "detect-node": "^2.0.4",
- "hpack.js": "^2.1.6",
- "obuf": "^1.1.2",
- "readable-stream": "^3.0.6",
- "wbuf": "^1.7.3"
- }
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "sshpk": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
- "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
- "dev": true,
- "requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- }
- },
- "ssri": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz",
- "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==",
- "dev": true,
- "requires": {
- "minipass": "^3.1.1"
- }
- },
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "dev": true
- },
- "streamroller": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.3.tgz",
- "integrity": "sha512-CphIJyFx2SALGHeINanjFRKQ4l7x2c+rXYJ4BMq0gd+ZK0gi4VT8b+eHe2wi58x4UayBAKx4xtHpXT/ea1cz8w==",
- "dev": true,
- "requires": {
- "date-format": "^4.0.14",
- "debug": "^4.3.4",
- "fs-extra": "^8.1.0"
- },
- "dependencies": {
- "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"
- }
- },
- "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
- }
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- },
- "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"
- }
- },
- "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-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.0",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
- "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==",
- "dev": true
- },
- "stylus": {
- "version": "0.59.0",
- "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz",
- "integrity": "sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==",
- "dev": true,
- "requires": {
- "@adobe/css-tools": "^4.0.1",
- "debug": "^4.3.2",
- "glob": "^7.1.6",
- "sax": "~1.2.4",
- "source-map": "^0.7.3"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- }
- }
- },
- "stylus-loader": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-7.0.0.tgz",
- "integrity": "sha512-WTbtLrNfOfLgzTaR9Lj/BPhQroKk/LC1hfTXSUbrxmxgfUo3Y3LpmKRVA2R1XbjvTAvOfaian9vOyfv1z99E+A==",
- "dev": true,
- "requires": {
- "fast-glob": "^3.2.11",
- "klona": "^2.0.5",
- "normalize-path": "^3.0.0"
- }
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "symbol-observable": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
- "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==",
- "dev": true
- },
- "tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "dev": true
- },
- "tar": {
- "version": "6.1.11",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
- "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
- "dev": true,
- "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"
- }
- },
- "terminal-link": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
- "dev": true,
- "requires": {
- "ansi-escapes": "^4.2.1",
- "supports-hyperlinks": "^2.0.0"
- }
- },
- "terser": {
- "version": "5.14.2",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
- "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
- "dev": true,
- "requires": {
- "@jridgewell/source-map": "^0.3.2",
- "acorn": "^8.5.0",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "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
- }
- }
- },
- "terser-webpack-plugin": {
- "version": "5.3.6",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz",
- "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==",
- "dev": true,
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.14",
- "jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.0",
- "terser": "^5.14.1"
- },
- "dependencies": {
- "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"
- }
- },
- "ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
- "requires": {}
- },
- "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
- },
- "schema-utils": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- }
- }
- }
- },
- "test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
- "requires": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- }
- }
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true
- },
- "thunky": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
- "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
- "dev": true
- },
- "tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
- "requires": {
- "os-tmpdir": "~1.0.2"
- }
- },
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
- },
- "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==",
- "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==",
- "dev": true
- },
- "tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dev": true,
- "requires": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- }
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "tree-kill": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
- "dev": true
- },
- "ts-node": {
- "version": "9.1.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
- "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
- "dev": true,
- "requires": {
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "source-map-support": "^0.5.17",
- "yn": "3.1.1"
- }
- },
- "tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- },
- "tslint": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
- "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "builtin-modules": "^1.1.1",
- "chalk": "^2.3.0",
- "commander": "^2.12.1",
- "diff": "^4.0.1",
- "glob": "^7.1.1",
- "js-yaml": "^3.13.1",
- "minimatch": "^3.0.4",
- "mkdirp": "^0.5.3",
- "resolve": "^1.3.2",
- "semver": "^5.3.0",
- "tslib": "^1.13.0",
- "tsutils": "^2.29.0"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "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
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.6"
- }
- },
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "tsutils": {
- "version": "2.29.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
- "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
- "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
- }
- }
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
- "dev": true
- },
- "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==",
- "dev": true,
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- }
- },
- "typed-assert": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz",
- "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==",
- "dev": true
- },
- "typescript": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
- "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ=="
- },
- "ua-parser-js": {
- "version": "0.7.33",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz",
- "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==",
- "dev": true
- },
- "unicode-canonical-property-names-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
- "dev": true
- },
- "unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "dev": true,
- "requires": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
- }
- },
- "unicode-match-property-value-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
- "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
- "dev": true
- },
- "unicode-property-aliases-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
- "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
- "dev": true
- },
- "unique-filename": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
- "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
- "dev": true,
- "requires": {
- "unique-slug": "^2.0.0"
- }
- },
- "unique-slug": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
- "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4"
- }
- },
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true
- },
- "update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
- "requires": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- }
- },
- "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"
- }
- },
- "util": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
- "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
- "dev": true,
- "requires": {
- "inherits": "2.0.3"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "dev": true
- }
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "dev": true
- },
- "uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "validate-npm-package-name": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz",
- "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==",
- "dev": true,
- "requires": {
- "builtins": "^5.0.0"
- }
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "dev": true
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "dev": true,
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "void-elements": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
- "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==",
- "dev": true
- },
- "watchpack": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
- "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
- "dev": true,
- "requires": {
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.1.2"
- }
- },
- "wbuf": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
- "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
- "dev": true,
- "requires": {
- "minimalistic-assert": "^1.0.0"
- }
- },
- "wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "dev": true,
- "requires": {
- "defaults": "^1.0.3"
- }
- },
- "webdriver-js-extender": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz",
- "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==",
- "dev": true,
- "requires": {
- "@types/selenium-webdriver": "^3.0.0",
- "selenium-webdriver": "^3.0.1"
- }
- },
- "webdriver-manager": {
- "version": "12.1.8",
- "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz",
- "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==",
- "dev": true,
- "requires": {
- "adm-zip": "^0.4.9",
- "chalk": "^1.1.1",
- "del": "^2.2.0",
- "glob": "^7.0.3",
- "ini": "^1.3.4",
- "minimist": "^1.2.0",
- "q": "^1.4.1",
- "request": "^2.87.0",
- "rimraf": "^2.5.2",
- "semver": "^5.3.0",
- "xml2js": "^0.4.17"
- },
- "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
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "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"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "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": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
- "dev": true
- }
- }
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "webpack": {
- "version": "5.74.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz",
- "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
- "dev": true,
- "requires": {
- "@types/eslint-scope": "^3.7.3",
- "@types/estree": "^0.0.51",
- "@webassemblyjs/ast": "1.11.1",
- "@webassemblyjs/wasm-edit": "1.11.1",
- "@webassemblyjs/wasm-parser": "1.11.1",
- "acorn": "^8.7.1",
- "acorn-import-assertions": "^1.7.6",
- "browserslist": "^4.14.5",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.10.0",
- "es-module-lexer": "^0.9.0",
- "eslint-scope": "5.1.1",
- "events": "^3.2.0",
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.9",
- "json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.2.0",
- "mime-types": "^2.1.27",
- "neo-async": "^2.6.2",
- "schema-utils": "^3.1.0",
- "tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.1.3",
- "watchpack": "^2.4.0",
- "webpack-sources": "^3.2.3"
- },
- "dependencies": {
- "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"
- }
- },
- "ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
- "requires": {}
- },
- "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
- },
- "schema-utils": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
- "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- }
- }
- }
- },
- "webpack-dev-middleware": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
- "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==",
- "dev": true,
- "requires": {
- "colorette": "^2.0.10",
- "memfs": "^3.4.3",
- "mime-types": "^2.1.31",
- "range-parser": "^1.2.1",
- "schema-utils": "^4.0.0"
- },
- "dependencies": {
- "colorette": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
- "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- }
- }
- },
- "webpack-dev-server": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz",
- "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==",
- "dev": true,
- "requires": {
- "@types/bonjour": "^3.5.9",
- "@types/connect-history-api-fallback": "^1.3.5",
- "@types/express": "^4.17.13",
- "@types/serve-index": "^1.9.1",
- "@types/serve-static": "^1.13.10",
- "@types/sockjs": "^0.3.33",
- "@types/ws": "^8.5.1",
- "ansi-html-community": "^0.0.8",
- "bonjour-service": "^1.0.11",
- "chokidar": "^3.5.3",
- "colorette": "^2.0.10",
- "compression": "^1.7.4",
- "connect-history-api-fallback": "^2.0.0",
- "default-gateway": "^6.0.3",
- "express": "^4.17.3",
- "graceful-fs": "^4.2.6",
- "html-entities": "^2.3.2",
- "http-proxy-middleware": "^2.0.3",
- "ipaddr.js": "^2.0.1",
- "open": "^8.0.9",
- "p-retry": "^4.5.0",
- "rimraf": "^3.0.2",
- "schema-utils": "^4.0.0",
- "selfsigned": "^2.0.1",
- "serve-index": "^1.9.1",
- "sockjs": "^0.3.24",
- "spdy": "^4.0.2",
- "webpack-dev-middleware": "^5.3.1",
- "ws": "^8.4.2"
- },
- "dependencies": {
- "colorette": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
- "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
- "dev": true
- },
- "schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
- }
- }
- }
- },
- "webpack-merge": {
- "version": "5.8.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz",
- "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==",
- "dev": true,
- "requires": {
- "clone-deep": "^4.0.1",
- "wildcard": "^2.0.0"
- }
- },
- "webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
- "dev": true
- },
- "webpack-subresource-integrity": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz",
- "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==",
- "dev": true,
- "requires": {
- "typed-assert": "^1.0.8"
- }
- },
- "websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
- "dev": true,
- "requires": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- }
- },
- "websocket-extensions": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
- "dev": true
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
- "dev": true
- },
- "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==",
- "dev": true,
- "requires": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "widest-line": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
- "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
- "dev": true,
- "requires": {
- "string-width": "^4.0.0"
- }
- },
- "wildcard": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz",
- "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "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"
- }
- },
- "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=="
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "ws": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
- "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
- "dev": true,
- "requires": {}
- },
- "xml": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
- "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==",
- "dev": true
- },
- "xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "dev": true,
- "requires": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "dependencies": {
- "xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "dev": true
- }
- }
- },
- "xmlbuilder": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz",
- "integrity": "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==",
- "dev": true
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true
- },
- "yargs": {
- "version": "17.5.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
- "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.0.0"
- }
- },
- "yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
- },
- "yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true
- },
- "zone.js": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.8.tgz",
- "integrity": "sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==",
- "requires": {
- "tslib": "^2.3.0"
- }
- }
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/package.json b/backend/files/misc/templates/angular/templates/main/package.json
deleted file mode 100644
index 895f31b05d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "name": "[[name]]",
- "version": "1.0.0",
- "private": true,
- "scripts": {
- "ng": "ng",
- "build": "npm run write:env -s && ng build --configuration production",
- "start": "npm run write:env -s && ng serve --proxy-config proxy.conf.js",
- "lint": "ng lint && stylelint \"src/**/*.scss\" --syntax scss && htmlhint \"src\" --config .htmlhintrc",
- "test": "npm run write:env -s && ng test",
- "test:ci": "npm run write:env -s && npm run lint -s && ng test --configuration=ci",
- "e2e": "npm run write:env -s && ng e2e",
- "translations:extract": "ngx-translate-extract --input ./src --output ./src/translations/template.json --format=json --clean --sort",
- "write:env": "ngx-scripts env npm_package_version",
- "generate": "ng generate"
- },
- "dependencies": {
- "@angular/animations": "^14.1.3",
- "@angular/cdk": "^14.1.3",
- "@angular/common": "^14.1.3",
- "@angular/compiler": "^14.1.3",
- "@angular/core": "^14.1.3",
- "@angular/flex-layout": "^14.0.0-beta.41",
- "@angular/forms": "^14.1.3",
- "@angular/localize": "^14.1.3",
- "@angular/material": "^14.1.3",
- "@angular/platform-browser": "^14.1.3",
- "@angular/platform-browser-dynamic": "^14.1.3",
- "@angular/router": "^14.1.3",
- "@auth0/angular-jwt": "^5.0.2",
- "@danielmoncada/angular-datetime-picker": "^14.1.1",
- "@ngx-translate/core": "^14.0.0",
- "file-saver": "^2.0.5",
- "material-design-icons-iconfont": "^6.1.0",
- "moment": "^2.29.1",
- "ngx-image-compress": "^13.1.13",
- "rxjs": "^7.5.6",
- "tslib": "^2.4.0",
- "zone.js": "~0.11.8"
- },
- "devDependencies": {
- "@angular-devkit/build-angular": "^14.1.3",
- "@angular/cli": "^14.1.3",
- "@angular/compiler-cli": "^14.1.3",
- "@angular/language-service": "^14.1.3",
- "@biesbjerg/ngx-translate-extract": "^7.0.3",
- "@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
- "@ngneat/until-destroy": "^9.2.1",
- "@ngx-rocket/scripts": "^5.0.0",
- "@types/file-saver": "^2.0.5",
- "@types/jasmine": "^3.6.2",
- "@types/jasminewd2": "^2.0.8",
- "@types/node": "^18.7.18",
- "htmlhint": "^1.1.4",
- "https-proxy-agent": "^5.0.0",
- "jasmine-core": "~4.3.0",
- "jasmine-spec-reporter": "~7.0.0",
- "karma": "^6.4.0",
- "karma-chrome-launcher": "~3.1.1",
- "karma-coverage-istanbul-reporter": "~3.0.3",
- "karma-jasmine": "~4.0.1",
- "karma-jasmine-html-reporter": "^1.7.0",
- "karma-junit-reporter": "^2.0.1",
- "protractor": "~7.0.0",
- "ts-node": "^9.1.1",
- "tslint": "^6.1.3",
- "typescript": "~4.7.4"
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/proxy.conf.js b/backend/files/misc/templates/angular/templates/main/proxy.conf.js
deleted file mode 100644
index 510d7e9f78..0000000000
--- a/backend/files/misc/templates/angular/templates/main/proxy.conf.js
+++ /dev/null
@@ -1,39 +0,0 @@
-const HttpsProxyAgent = require('https-proxy-agent');
-
-/*
- * API proxy configuration.
- * This allows you to proxy HTTP request like `http.get('/api/stuff')` to another server/port.
- * This is especially useful during app development to avoid CORS issues while running a local server.
- * For more details and options, see https://angular.io/guide/build#using-corporate-proxy
- */
-const proxyConfig = [
- {
- context: '/api',
- pathRewrite: { '^/api': '' },
- target: 'https://api.chucknorris.io',
- changeOrigin: true,
- secure: false
- }
-];
-
-/*
- * Configures a corporate proxy agent for the API proxy if needed.
- */
-function setupForCorporateProxy(proxyConfig) {
- if (!Array.isArray(proxyConfig)) {
- proxyConfig = [proxyConfig];
- }
-
- const proxyServer = process.env.http_proxy || process.env.HTTP_PROXY;
- let agent = null;
-
- if (proxyServer) {
- console.log(`Using corporate proxy server: ${proxyServer}`);
- agent = new HttpsProxyAgent(proxyServer);
- proxyConfig.forEach(entry => { entry.agent = agent; });
- }
-
- return proxyConfig;
-}
-
-module.exports = setupForCorporateProxy(proxyConfig);
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@core/core.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/@core/core.module.ts
deleted file mode 100644
index 06b6c90cd9..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@core/core.module.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { NgModule, Optional, SkipSelf } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
-import { RouteReuseStrategy, RouterModule } from '@angular/router';
-import { TranslateModule } from '@ngx-translate/core';
-
-import { RouteReusableStrategy } from './route-reusable-strategy';
-import { ApiPrefixInterceptor } from './http/api-prefix.interceptor';
-import { ErrorHandlerInterceptor } from './http/error-handler.interceptor';
-
-@NgModule({
- imports: [CommonModule, HttpClientModule, TranslateModule, RouterModule],
- providers: [
- {
- provide: HTTP_INTERCEPTORS,
- useClass: ApiPrefixInterceptor,
- multi: true,
- },
- {
- provide: HTTP_INTERCEPTORS,
- useClass: ErrorHandlerInterceptor,
- multi: true,
- },
- {
- provide: RouteReuseStrategy,
- useClass: RouteReusableStrategy,
- },
- ],
-})
-export class CoreModule {
- constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
- // Import guard
- if (parentModule) {
- throw new Error(`${parentModule} has already been loaded. Import Core module in the AppModule only.`);
- }
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@core/http/api-prefix.interceptor.ts b/backend/files/misc/templates/angular/templates/main/src/app/@core/http/api-prefix.interceptor.ts
deleted file mode 100644
index d0d744a7d1..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@core/http/api-prefix.interceptor.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Injectable } from '@angular/core';
-import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
-import { Observable } from 'rxjs';
-
-import { environment } from '@env/environment';
-
-/**
- * Prefixes all requests not starting with `http[s]` with `environment.apiUrl`.
- */
-@Injectable({
- providedIn: 'root',
-})
-export class ApiPrefixInterceptor implements HttpInterceptor {
- intercept(request: HttpRequest, next: HttpHandler): Observable> {
- if (!/^(http|https):/i.test(request.url)) {
- request = request.clone({ url: environment.apiUrl + request.url });
- }
- return next.handle(request);
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@core/http/error-handler.interceptor.ts b/backend/files/misc/templates/angular/templates/main/src/app/@core/http/error-handler.interceptor.ts
deleted file mode 100644
index 7597daa422..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@core/http/error-handler.interceptor.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Injectable } from '@angular/core';
-import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { catchError } from 'rxjs/operators';
-
-import { environment } from '@env/environment';
-import { Logger } from '../logger.service';
-
-const log = new Logger('ErrorHandlerInterceptor');
-
-/**
- * Adds a default error handler to all requests.
- */
-@Injectable({
- providedIn: 'root',
-})
-export class ErrorHandlerInterceptor implements HttpInterceptor {
- intercept(request: HttpRequest, next: HttpHandler): Observable> {
- return next.handle(request).pipe(catchError((error) => this.errorHandler(error)));
- }
-
- // Customize the default error handler here if needed
- private errorHandler(response: HttpEvent): Observable> {
- if (!environment.production) {
- // Do something with the error
- log.error('Request error', response);
- }
- throw response;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@core/index.ts b/backend/files/misc/templates/angular/templates/main/src/app/@core/index.ts
deleted file mode 100644
index b5dd0cf443..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@core/index.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export * from './core.module';
-export * from './http/api-prefix.interceptor';
-export * from './http/error-handler.interceptor';
-export * from './route-reusable-strategy';
-export * from './logger.service';
-export * from '@ngneat/until-destroy';
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@core/logger.service.ts b/backend/files/misc/templates/angular/templates/main/src/app/@core/logger.service.ts
deleted file mode 100644
index 60e16aec13..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@core/logger.service.ts
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * Simple logger system with the possibility of registering custom outputs.
- *
- * 4 different log levels are provided, with corresponding methods:
- * - debug : for debug information
- * - info : for informative status of the application (success, ...)
- * - warning : for non-critical errors that do not prevent normal application behavior
- * - error : for critical errors that prevent normal application behavior
- *
- * Example usage:
- * ```
- * import { Logger } from 'app/core/logger.service';
- *
- * const log = new Logger('myFile');
- * ...
- * log.debug('something happened');
- * ```
- *
- * To disable debug and info logs in production, add this snippet to your root component:
- * ```
- * export class AppComponent implements OnInit {
- * ngOnInit() {
- * if (environment.production) {
- * Logger.enableProductionMode();
- * }
- * ...
- * }
- * }
- *
- * If you want to process logs through other outputs than console, you can add LogOutput functions to Logger.outputs.
- */
-
-/**
- * The possible log levels.
- * LogLevel.Off is never emitted and only used with Logger.level property to disable logs.
- */
-export enum LogLevel {
- Off = 0,
- Error,
- Warning,
- Info,
- Debug,
-}
-
-/**
- * Log output handler function.
- */
-export type LogOutput = (source: string | undefined, level: LogLevel, ...objects: any[]) => void;
-
-export class Logger {
- /**
- * Current logging level.
- * Set it to LogLevel.Off to disable logs completely.
- */
- static level = LogLevel.Debug;
-
- /**
- * Additional log outputs.
- */
- static outputs: LogOutput[] = [];
-
- /**
- * Enables production mode.
- * Sets logging level to LogLevel.Warning.
- */
- static enableProductionMode() {
- Logger.level = LogLevel.Warning;
- }
-
- constructor(private source?: string) {}
-
- /**
- * Logs messages or objects with the debug level.
- * Works the same as console.log().
- */
- debug(...objects: any[]) {
- this.log(console.log, LogLevel.Debug, objects);
- }
-
- /**
- * Logs messages or objects with the info level.
- * Works the same as console.log().
- */
- info(...objects: any[]) {
- this.log(console.info, LogLevel.Info, objects);
- }
-
- /**
- * Logs messages or objects with the warning level.
- * Works the same as console.log().
- */
- warn(...objects: any[]) {
- this.log(console.warn, LogLevel.Warning, objects);
- }
-
- /**
- * Logs messages or objects with the error level.
- * Works the same as console.log().
- */
- error(...objects: any[]) {
- this.log(console.error, LogLevel.Error, objects);
- }
-
- private log(func: (...args: any[]) => void, level: LogLevel, objects: any[]) {
- if (level <= Logger.level) {
- const log = this.source ? ['[' + this.source + ']'].concat(objects) : objects;
- func.apply(console, log);
- Logger.outputs.forEach((output) => output.apply(output, [this.source, level, ...objects]));
- }
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@core/route-reusable-strategy.ts b/backend/files/misc/templates/angular/templates/main/src/app/@core/route-reusable-strategy.ts
deleted file mode 100644
index d33896f69d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@core/route-reusable-strategy.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router';
-import { Injectable } from '@angular/core';
-
-/**
- * A route strategy allowing for explicit route reuse.
- * Used as a workaround for https://github.com/angular/angular/issues/18374
- * To reuse a given route, add `data: { reuse: true }` to the route definition.
- */
-@Injectable()
-export class RouteReusableStrategy extends RouteReuseStrategy {
- public shouldDetach(route: ActivatedRouteSnapshot): boolean {
- return false;
- }
-
- public store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle | null): void {}
-
- public shouldAttach(route: ActivatedRouteSnapshot): boolean {
- return false;
- }
-
- public retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {
- return null;
- }
-
- public shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
- // Reuse the route if the RouteConfig is the same, or if both routes use the
- // same component, because the latter can have different RouteConfigs.
- return (
- future.routeConfig === curr.routeConfig ||
- Boolean(future.routeConfig?.component && future.routeConfig?.component === curr.routeConfig?.component)
- );
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@shared/index.ts b/backend/files/misc/templates/angular/templates/main/src/app/@shared/index.ts
deleted file mode 100644
index 625069ab2b..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@shared/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './shared.module';
-export * from './loader/loader.component';
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@shared/loader/loader.component.html b/backend/files/misc/templates/angular/templates/main/src/app/@shared/loader/loader.component.html
deleted file mode 100644
index ea85ef374e..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@shared/loader/loader.component.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- {{ message }}
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@shared/loader/loader.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/@shared/loader/loader.component.scss
deleted file mode 100644
index 7c4ccc720e..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@shared/loader/loader.component.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-.mat-progress-spinner {
- display: inline-block;
- vertical-align: middle;
-}
-
-.message {
- margin-left: 0.5em;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@shared/loader/loader.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/@shared/loader/loader.component.ts
deleted file mode 100644
index 3355bcdc0b..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@shared/loader/loader.component.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Component, OnInit, Input } from '@angular/core';
-
-@Component({
- selector: 'app-loader',
- templateUrl: './loader.component.html',
- styleUrls: ['./loader.component.scss'],
-})
-export class LoaderComponent implements OnInit {
- @Input() isLoading = false;
- @Input() size = 1;
- @Input() message: string | undefined;
-
- constructor() {}
-
- ngOnInit() {}
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/@shared/shared.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/@shared/shared.module.ts
deleted file mode 100644
index 261e989e0b..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/@shared/shared.module.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FlexLayoutModule } from '@angular/flex-layout';
-
-import { MaterialModule } from '@app/material.module';
-import { LoaderComponent } from './loader/loader.component';
-
-@NgModule({
- imports: [FlexLayoutModule, MaterialModule, CommonModule],
- declarations: [LoaderComponent],
- exports: [LoaderComponent],
-})
-export class SharedModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/app-routing.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/app-routing.module.ts
deleted file mode 100644
index 20ff68db5a..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/app-routing.module.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { NgModule } from '@angular/core';
-import { Routes, RouterModule, PreloadAllModules } from '@angular/router';
-
-const routes: Routes = [
- // Fallback when no prior route is matched
- { path: '**', redirectTo: '', pathMatch: 'full' },
-];
-
-@NgModule({
- imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })],
- exports: [RouterModule],
- providers: [],
-})
-export class AppRoutingModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/app.component.html b/backend/files/misc/templates/angular/templates/main/src/app/app.component.html
deleted file mode 100644
index 0680b43f9c..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/app.component.html
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/app.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/app.component.scss
deleted file mode 100644
index 2453e29160..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/app.component.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-:host {
- display: flex;
- flex: 1;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/app.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/app.component.ts
deleted file mode 100644
index dc083bf5c0..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/app.component.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Component, OnInit, OnDestroy } from '@angular/core';
-import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
-import { Title } from '@angular/platform-browser';
-import { TranslateService } from '@ngx-translate/core';
-import { merge } from 'rxjs';
-import { filter, map, switchMap } from 'rxjs/operators';
-
-import { environment } from '@env/environment';
-import { Logger, UntilDestroy, untilDestroyed } from '@core';
-import { I18nService } from '@app/i18n';
-
-const log = new Logger('App');
-
-@UntilDestroy()
-@Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.scss'],
-})
-export class AppComponent implements OnInit, OnDestroy {
- constructor(
- private router: Router,
- private activatedRoute: ActivatedRoute,
- private titleService: Title,
- private translateService: TranslateService,
- private i18nService: I18nService
- ) {}
-
- ngOnInit() {
- // Setup logger
- if (environment.production) {
- Logger.enableProductionMode();
- }
-
- log.debug('init');
-
- // Setup translations
- this.i18nService.init(environment.defaultLanguage, environment.supportedLanguages);
-
- const onNavigationEnd = this.router.events.pipe(filter((event) => event instanceof NavigationEnd));
-
- // Change page title on navigation or language change, based on route data
- merge(this.translateService.onLangChange, onNavigationEnd)
- .pipe(
- map(() => {
- let route = this.activatedRoute;
- while (route.firstChild) {
- route = route.firstChild;
- }
- return route;
- }),
- filter((route) => route.outlet === 'primary'),
- switchMap((route) => route.data),
- untilDestroyed(this)
- )
- .subscribe((event) => {
- const title = event.title;
- if (title) {
- this.titleService.setTitle(this.translateService.instant(title));
- }
- });
- }
-
- ngOnDestroy() {
- this.i18nService.destroy();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/app.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/app.module.ts
deleted file mode 100644
index 361d152503..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/app.module.ts
+++ /dev/null
@@ -1,99 +0,0 @@
-import { BrowserModule } from '@angular/platform-browser';
-import { NgModule } from '@angular/core';
-import { FormsModule, ReactiveFormsModule } from '@angular/forms';
-import { HttpClientModule } from '@angular/common/http';
-import { TranslateModule } from '@ngx-translate/core';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { MaterialModule } from './material.module';
-import { NgxImageCompressService } from 'ngx-image-compress';
-import { A11yModule } from '@angular/cdk/a11y';
-
-import { CoreModule } from '@core';
-import { SharedModule } from '@shared';
-import { AuthModule } from '@app/auth';
-import { HomeModule } from './home/home.module';
-import { ShellModule } from './shell/shell.module';
-import { AppComponent } from './app.component';
-import { MagicSelectorComponent } from './helpers/magic-selector/magic-selector.component';
-import { MagicUsernameLookupComponent } from './helpers/magic-username-lookup/magic-username-lookup.component';
-import { MagicAutocompleteComponent } from './helpers/magic-autocomplete/magic-autocomplete.component';
-import { MagicFilterComponent } from './helpers/magic-filter/magic-filter.component';
-import { MagicImageComponent } from './helpers/magic-image/magic-image.component';
-import { MagicImageFieldComponent } from './helpers/magic-image-field/magic-image-field.component';
-import { MagicImageViewComponent } from './helpers/magic-image-view/magic-image-view.component';
-import { MagicFileViewComponent } from './helpers/magic-file-view/magic-file-view.component';
-import { MagicFileComponent } from './helpers/magic-file/magic-file.component';
-import { MagicFileFieldComponent } from './helpers/magic-file-field/magic-file-field.component';
-import { AppRoutingModule } from './app-routing.module';
-import { environment } from '@env/environment';
-import { JwtModule } from '@auth0/angular-jwt';
-import { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';
-import { FormatDatePipe } from './pipes/format-date-pipe';
-import { DateSincePipe } from './pipes/date-since.pipe';
-import { ConfirmDialogComponent } from './confirm-deletion-dialog/confirm-dialog.component';
-import { UserManagementComponent } from './common/user-management/user-management.component';
-import { EditUserDialogComponent } from './common/user-management/edit-user-dialog/edit-user-dialog.component';
-import { CreateUserDialogComponent } from './common/user-management/create-user-dialog/create-user-dialog.component';
-import { EditExtraFieldsComponent } from './common/user-management/edit-extra-fields/edit-extra-fields.component';
-
-// Generated CRUD components here.
-[[imports]]
-
-@NgModule({
- imports: [
- OwlDateTimeModule,
- OwlNativeDateTimeModule,
- BrowserModule,
- FormsModule,
- ReactiveFormsModule,
- HttpClientModule,
- TranslateModule.forRoot(),
- BrowserAnimationsModule,
- MaterialModule,
- CoreModule,
- SharedModule,
- ShellModule,
- HomeModule,
- AuthModule,
- JwtModule.forRoot({
- config: {
- tokenGetter: () => {
- const persisted = sessionStorage.getItem('credentials') || localStorage.getItem('credentials');
- if (persisted) {
- return JSON.parse(persisted).token;
- }
- return null;
- },
- allowedDomains: [environment.apiDomain],
- },
- }),
- AppRoutingModule, // must be imported as the last module as it contains the fallback route
- A11yModule
- ],
- declarations: [
- AppComponent,
- MagicSelectorComponent,
- MagicUsernameLookupComponent,
- MagicAutocompleteComponent,
- MagicFilterComponent,
- MagicImageComponent,
- MagicImageFieldComponent,
- MagicImageViewComponent,
- MagicFileViewComponent,
- MagicFileComponent,
- MagicFileFieldComponent,
- FormatDatePipe,
- DateSincePipe,
- ConfirmDialogComponent,
- UserManagementComponent,
- EditUserDialogComponent,
- CreateUserDialogComponent,
- EditExtraFieldsComponent,
-
- // Generated CRUD components here.
-[[module-declarations]] ],
-
- providers: [NgxImageCompressService],
- bootstrap: [AppComponent],
-})
-export class AppModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/auth/auth-routing.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/auth/auth-routing.module.ts
deleted file mode 100644
index 7da15a6a3e..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/auth/auth-routing.module.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { NgModule } from '@angular/core';
-import { Routes, RouterModule } from '@angular/router';
-import { marker } from '@biesbjerg/ngx-translate-extract-marker';
-
-import { LoginComponent } from './login.component';
-
-const routes: Routes = [{ path: 'login', component: LoginComponent, data: { title: marker('Login') } }];
-
-@NgModule({
- imports: [RouterModule.forChild(routes)],
- exports: [RouterModule],
- providers: [],
-})
-export class AuthRoutingModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/auth/auth.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/auth/auth.module.ts
deleted file mode 100644
index 1ad2cdcf7d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/auth/auth.module.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { ReactiveFormsModule } from '@angular/forms';
-import { TranslateModule } from '@ngx-translate/core';
-import { FlexLayoutModule } from '@angular/flex-layout';
-
-import { SharedModule } from '@shared';
-import { MaterialModule } from '@app/material.module';
-import { I18nModule } from '@app/i18n';
-import { AuthRoutingModule } from './auth-routing.module';
-import { LoginComponent } from './login.component';
-
-@NgModule({
- imports: [
- CommonModule,
- ReactiveFormsModule,
- TranslateModule,
- SharedModule,
- FlexLayoutModule,
- MaterialModule,
- I18nModule,
- AuthRoutingModule,
- ],
- declarations: [LoginComponent],
-})
-export class AuthModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/auth/authentication.guard.ts b/backend/files/misc/templates/angular/templates/main/src/app/auth/authentication.guard.ts
deleted file mode 100644
index db50ac579e..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/auth/authentication.guard.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Injectable } from '@angular/core';
-import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
-
-import { Logger } from '@core';
-import { CredentialsService } from './credentials.service';
-
-const log = new Logger('AuthenticationGuard');
-
-@Injectable({
- providedIn: 'root',
-})
-export class AuthenticationGuard implements CanActivate {
- constructor(private router: Router, private credentialsService: CredentialsService) {}
-
- canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
- if (this.credentialsService.isAuthenticated()) {
- return true;
- }
-
- log.debug('Not authenticated, redirecting and adding redirect url...');
- this.router.navigate(['/login'], { queryParams: { redirect: state.url }, replaceUrl: true });
- return false;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/auth/authentication.service.ts b/backend/files/misc/templates/angular/templates/main/src/app/auth/authentication.service.ts
deleted file mode 100644
index abf8c05aee..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/auth/authentication.service.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { HttpClient } from '@angular/common/http';
-import { Injectable } from '@angular/core';
-import { AuthenticateToken } from '@app/services/models/authenticate-token';
-import { environment } from '@env/environment';
-import { Observable, of, Subscriber } from 'rxjs';
-
-import { Credentials, CredentialsService } from './credentials.service';
-
-export interface LoginContext {
- username: string;
- password: string;
- remember?: boolean;
-}
-
-/**
- * Provides a base for authentication workflow.
- * The login/logout methods should be replaced with proper implementation.
- */
-@Injectable({
- providedIn: 'root',
-})
-export class AuthenticationService {
- constructor(
- private httpClient: HttpClient,
- private credentialsService: CredentialsService) {}
-
- /**
- * Authenticates the user.
- * @param context The login parameters.
- * @return The user credentials.
- */
- login(context: LoginContext): Observable {
- return new Observable((observer: Subscriber) => {
- this.httpClient.get(
- environment.apiUrl +
- 'magic/system/auth/authenticate?username=' +
- encodeURIComponent(context.username) +
- '&password=' +
- encodeURIComponent(context.password)).subscribe((res: AuthenticateToken) => {
-
- // Success.
- const data = {
- username: context.username,
- token: res.ticket,
- };
- this.credentialsService.setCredentials(data, context.remember);
- observer.next(data);
- observer.complete();
-
- }, (error: any) => {
-
- // Error.
- observer.error(error);
- observer.complete();
- });
- });
- }
-
- /**
- * Logs out the user and clear credentials.
- * @return True if the user was logged out successfully.
- */
- logout(): Observable {
- // Customize credentials invalidation here
- this.credentialsService.setCredentials();
- return of(true);
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/auth/credentials.service.ts b/backend/files/misc/templates/angular/templates/main/src/app/auth/credentials.service.ts
deleted file mode 100644
index 9aea67151a..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/auth/credentials.service.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import { Injectable } from '@angular/core';
-import { JwtHelperService } from '@auth0/angular-jwt';
-
-export interface Credentials {
- // Customize received credentials here
- username: string;
- token: string;
-}
-
-const credentialsKey = 'credentials';
-
-/**
- * Provides storage for authentication credentials.
- * The Credentials interface should be replaced with proper implementation.
- */
-@Injectable({
- providedIn: 'root',
-})
-export class CredentialsService {
- private _credentials: Credentials | null = null;
-
- constructor(private jwtHelper: JwtHelperService) {
- const savedCredentials = sessionStorage.getItem(credentialsKey) || localStorage.getItem(credentialsKey);
- if (savedCredentials && !jwtHelper.isTokenExpired(savedCredentials)) {
- this._credentials = JSON.parse(savedCredentials);
- }
- }
-
- /**
- * Checks is the user is authenticated.
- * @return True if the user is authenticated.
- */
- isAuthenticated(): boolean {
- return !!this.credentials;
- }
-
- /**
- * Gets the user credentials.
- * @return The user credentials or null if the user is not authenticated.
- */
- get credentials(): Credentials | null {
- return this._credentials;
- }
-
- /**
- * Sets the user credentials.
- * The credentials may be persisted across sessions by setting the `remember` parameter to true.
- * Otherwise, the credentials are only persisted for the current session.
- * @param credentials The user credentials.
- * @param remember True to remember credentials across sessions.
- */
- setCredentials(credentials?: Credentials, remember?: boolean) {
- this._credentials = credentials || null;
-
- if (credentials) {
- const storage = remember ? localStorage : sessionStorage;
- storage.setItem(credentialsKey, JSON.stringify(credentials));
- } else {
- sessionStorage.removeItem(credentialsKey);
- localStorage.removeItem(credentialsKey);
- }
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/auth/index.ts b/backend/files/misc/templates/angular/templates/main/src/app/auth/index.ts
deleted file mode 100644
index 21f4f894ce..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/auth/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export * from './auth.module';
-export * from './authentication.service';
-export * from './credentials.service';
-export * from './authentication.guard';
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/auth/login.component.html b/backend/files/misc/templates/angular/templates/main/src/app/auth/login.component.html
deleted file mode 100644
index 2d2403c5f9..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/auth/login.component.html
+++ /dev/null
@@ -1,51 +0,0 @@
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/auth/login.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/auth/login.component.scss
deleted file mode 100644
index 4e3b9131de..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/auth/login.component.scss
+++ /dev/null
@@ -1,28 +0,0 @@
-@import "src/theme/theme-variables";
-
-:host {
- display: flex;
- flex: 1;
- background-color: #f5f5f5;
-}
-
-.inline-loader {
- display: inline-block;
-}
-
-.version {
- margin: 0;
-}
-
-.login-container,
-.mat-form-field {
- width: 100%;
-}
-
-.login-fields > :not(:last-child) {
- margin-bottom: 8px;
-}
-
-.login-error {
- color: mat-color($app-warn);
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/auth/login.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/auth/login.component.ts
deleted file mode 100644
index 6eb2ab1aba..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/auth/login.component.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { Router, ActivatedRoute } from '@angular/router';
-import { FormGroup, FormBuilder, Validators } from '@angular/forms';
-import { finalize } from 'rxjs/operators';
-
-import { environment } from '@env/environment';
-import { Logger, UntilDestroy, untilDestroyed } from '@core';
-import { AuthenticationService } from './authentication.service';
-
-const log = new Logger('Login');
-
-@UntilDestroy()
-@Component({
- selector: 'app-login',
- templateUrl: './login.component.html',
- styleUrls: ['./login.component.scss'],
-})
-export class LoginComponent implements OnInit {
- version: string | null = environment.version;
- error: string | undefined;
- loginForm!: FormGroup;
- isLoading = false;
-
- constructor(
- private router: Router,
- private route: ActivatedRoute,
- private formBuilder: FormBuilder,
- private authenticationService: AuthenticationService) {
- this.createForm();
- }
-
- ngOnInit() {}
-
- login() {
- this.isLoading = true;
- const login$ = this.authenticationService.login(this.loginForm.value);
- login$
- .pipe(
- finalize(() => {
- this.loginForm.markAsPristine();
- this.isLoading = false;
- }),
- untilDestroyed(this)
- )
- .subscribe(
- (credentials) => {
- log.debug(`${credentials.username} successfully logged in`);
- this.router.navigate([this.route.snapshot.queryParams.redirect || '/'], { replaceUrl: true }).then(() => window.location.href = window.location.href);
- },
- (error) => {
- log.debug(`Login error: ${error}`);
- this.error = error;
- }
- );
- }
-
- private createForm() {
- this.loginForm = this.formBuilder.group({
- username: ['', Validators.required],
- password: ['', Validators.required],
- remember: true,
- });
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/base/dialog.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/base/dialog.component.ts
deleted file mode 100644
index 0e69379e0d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/base/dialog.component.ts
+++ /dev/null
@@ -1,157 +0,0 @@
-import { Observable, Subscriber } from 'rxjs';
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { UpdateResponse } from '../services/models/update-response';
-import { CreateResponse } from '../services/models/create-response';
-
-/**
- * Input data to dialog.
- * Notice, if dialog is instantiated in "create entity mode", the
- * entity property will be an empty object, with no fields.
- */
-export interface DialogData {
- isEdit: boolean;
- entity: any;
-}
-
-/**
- * Base class for all dialog components, allowing user to edit or
- * create new items.
- */
-export abstract class DialogComponent {
-
- protected createColumns: string[] = [];
- protected updateColumns: string[] = [];
- protected primaryKeys: string[] = [];
- private changedValues: string[] = [];
-
- /**
- * Constructor for dialog component, taking a bunch of additional components,
- * dependency injected into derived component's constructor.
- *
- * @param snackBar Snack bar to use for disploaying errors.
- */
- constructor(protected snackBar: MatSnackBar) { }
-
- /**
- * Returns a reference to ths DialogData that was dependency injected
- * into component during creation.
- */
- protected abstract getData() : DialogData;
-
- /**
- * Returns a reference to the update method, to update entity.
- */
- protected getUpdateMethod() : Observable {
- return new Observable((observer: Subscriber) => {
- observer.error({
- error: {
- message: 'You cannot update these entities, since there exists no PUT endpoint for it'
- }
- });
- observer.complete();
- });
- }
-
- /**
- * Returns a reference to the create method, to create new entities.
- */
- protected abstract getCreateMethod() : Observable;
-
- /**
- * Closes dialog.
- *
- * @param data Entity that was created or updated
- */
- public abstract close(data: any) : void;
-
- /**
- * Returns true if specified column can be edited.
- */
- public canEditColumn(name: string) {
- if (this.getData().isEdit) {
- return this.updateColumns.filter(x => x === name).length > 0 &&
- this.primaryKeys.filter(x => x === name).length == 0;
- }
- return this.createColumns.filter(x => x === name).length > 0;
- }
-
- /**
- * Invoked when a field is edited by the user, and marks a field
- * as "dirty", implying it'll need to be transmitted to backend,
- * during update invocations.
- *
- * @param field Name of field that was edited
- */
- public changed(field: string) {
- if (this.changedValues.filter(x => x == field).length === 0) {
- this.changedValues.push(field);
- }
- }
-
- /**
- * Invoked when the user clicks the "Save" button.
- *
- * Will either create a new item or update an existing, depending upon
- * whether or not this is an edit or create operation.
- */
- public upsert() {
-
- // Sanity checking invocation, making sure user actually edited something.
- if (this.changedValues.length === 0) {
- this.snackBar.open(this.getData().isEdit ? 'No values were changed' : 'No record was created',
- 'Close', {
- duration: 5000,
- panelClass: ['error-snackbar'],
- });
- this.close(null);
- return;
- }
-
- // Making sure we set all values having an empty string to 'null values'.
- const data = this.getData();
- for (const idx in data.entity) {
- if (data.entity[idx] === '') {
-
- // Changing value to NULL.
- data.entity[idx] = null;
- }
- }
-
- // Checking if this is edit invocation or create invocation.
- if (data.isEdit) {
-
- for (const idx in data.entity) {
- if (this.updateColumns.indexOf(idx) === -1 ||
- (this.primaryKeys.indexOf(idx) === -1 &&
- this.changedValues.indexOf(idx) === -1)) {
- delete data.entity[idx];
- }
- }
-
- this.getUpdateMethod().subscribe((res: UpdateResponse) => {
- this.close(this.getData().entity);
- }, (error: any) => {
- console.error(error);
- this.snackBar.open('I could not update your entity, are you sure you supplied correct data?', 'Close', {
- duration: 10000,
- });
- });
- } else {
-
- for (const idx in data.entity) {
- if (this.createColumns.indexOf(idx) === -1) {
- delete data.entity[idx];
- }
- }
-
- this.getCreateMethod().subscribe((res: CreateResponse) => {
- this.close(this.getData().entity);
- }, (error: any) => {
- console.error(error);
- this.snackBar.open('I could not create your entity, are you sure you supplied correct data?', 'Close', {
- duration: 10000,
- });
- });
- }
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/base/grid.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/base/grid.component.ts
deleted file mode 100644
index fe01ae4539..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/base/grid.component.ts
+++ /dev/null
@@ -1,452 +0,0 @@
-// Angular imports
-import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { PageEvent } from '@angular/material/paginator';
-import { Observable } from 'rxjs';
-import { FormControl } from '@angular/forms';
-import { MatDialog } from '@angular/material/dialog';
-import { DomSanitizer } from '@angular/platform-browser';
-
-// Utility component imports.
-import { saveAs } from "file-saver";
-import { Buffer } from 'buffer';
-
-// Custom services and models your app depends upon.
-import { DeleteResponse } from '../services/models/delete-response';
-import { CountResponse } from '../services/models/count-response';
-import { AuthService } from 'src/app/services/auth-service';
-import { ConfirmDialogComponent, ConfirmDialogData } from '@app/confirm-deletion-dialog/confirm-dialog.component';
-import { IREntity } from '@app/services/interfaces/crud-interfaces';
-
-/**
- * Base class for all "data-grid" components, displaying items to
- * perform CRUD operations in a Material table, applying live filtering,
- * sorting, paging, etc.
- */
-export abstract class GridComponent {
-
- // Private cache for foreign key items.
- private cache: any = {};
-
- /**
- * Number of milliseconds after a keystroke before
- * filtering should be re-applied.
- */
- protected debounce = 400;
-
- /**
- * Actual data currently displayed in the grid.
- * The Material table will be databound to this list.
- */
- public data: any[];
-
- /**
- * Number of items our backend reports are available in total,
- * that is matching our filter condition.
- */
- public itemsCount = 0;
-
- /**
- * Current filter being applied to filter items from our backend.
- */
- public filter: any = {
- limit: 10
- };
-
- /**
- * Constructor for grid component, taking a couple of services using dependency injection.
- *
- * @param authService Authentication and authorization service
- * @param snackBar Snack bar to use to display errors, and also general information
- * @param dialog Needed to ask for user's confirmtion during deletion of entities
- * @param sanitizer Needed to be able to dynamically display iframes
- */
- constructor(
- protected authService: AuthService,
- protected snackBar: MatSnackBar,
- protected dialog: MatDialog,
- protected sanitizer: DomSanitizer) {
- const size = localStorage.getItem('page-size');
- if (size) {
- this.filter.limit = +size;
- }
- }
-
- /**
- * Abstract method you'll need to override to actually return URL of
- * CRUD methods.
- */
- protected abstract entityBaseUrl() : string;
-
- /**
- * Abstract method you'll need to override to actually return method that
- * returns observable for retrieving items.
- */
- protected abstract read(filter: any) : Observable;
-
- /**
- * Abstract method you'll have to override to actually return method that
- * returns observable for counting items.
- */
- protected abstract count(filter: any) : Observable;
-
- /**
- * Abstract method you'll have to override to actually return method that
- * returns observable for deleting a single item.
- *
- * @param ids Primary keys for item
- */
- protected abstract delete(ids: any) : Observable;
-
- /**
- * Abstract method necessary to implement to make sure paginator
- * gets reset when needed.
- */
- protected abstract resetPaginator() : void;
-
- /**
- * Creates a new FormControl for filtering columns, and returns to caller.
- *
- * @param filterName Name of FormControl's filter
- */
- protected createFormControl(filterName: string) {
- const control = new FormControl('');
- control.valueChanges
- .pipe(debounceTime(this.debounce), distinctUntilChanged())
- .subscribe((query: string) => {
- this.processFilter(filterName, query);
- });
- return control;
- }
-
- /**
- * Returns data items from backend.
- *
- * @param countRecords Whether or not we should also retrieve and update count of records
- * @param collapseViewDetails If true will close view data fields
- */
- public getData(countRecords: boolean = true) {
-
- // Checking that we actually can retrieve data at all.
- if (!this.authService.me.canInvoke(this.entityBaseUrl(), 'get')) {
- this.data = [];
- this.itemsCount = 0;
- return;
- }
-
- this.read(this.filter).subscribe({
- next: (items: any[]) => {
- this.data = items || [];
-
- if (countRecords) {
-
- const filterCount = {};
- for (const idx in this.filter) {
- if (Object.prototype.hasOwnProperty.call(this.filter, idx)) {
- switch (idx) {
- case 'limit':
- case 'offset':
- case 'order':
- case 'direction':
- break; // Ignoring
- default:
- filterCount[idx] = this.filter[idx];
- break;
- }
- }
- }
-
- this.count(filterCount).subscribe({
- next: (count: CountResponse) => {
- this.itemsCount = count.count;
- },
- error: (error: any) => this.showError(error)
- });
- }
- },
- error: (error: any) => this.showError(error)
- });
- }
-
- /**
- * Ensures URL is returned with https:// prefix
- *
- * @param value URL to normalise
- */
- public ensureUrl(value: string) {
- if (!value) {
- return null;
- }
- if (!value.startsWith('http://') && !value.startsWith('https://')) {
- return 'https://' + value;
- }
- return value;
- }
-
- /**
- * Invoked when an entity is deleted. Invokes HTTP service that deletes item from backend.
- *
- * @param entity Entity to delete
- * @param ids Primary keys for entity
- */
- public deleteEntity(ev: Event, entity: any, ids: any) {
-
- let hasKeys = false;
- for (const idx in ids) {
- if (ids.hasOwnProperty(idx)) {
- hasKeys = true;
- break;
- }
- }
- if (!hasKeys) {
- this.showError('Your endpoint does not accept any primary keys, and hence deletion of individual entities becomes impossible');
- return;
- }
-
- // Asking user to confirm deletion of entity.
- const dialogRef = this.dialog.open(ConfirmDialogComponent, {
- width: '550px',
- data: {
- title: 'Confirm action',
- text: 'Please confirm deletion of entity. Notice, this action cannot be undone. Deletion is permanent',
- }
- });
-
- // Subscribing to close such that we can delete schedule if it's confirmed.
- dialogRef.afterClosed().subscribe((result: ConfirmDialogData) => {
-
- // Checking if user confirmed that he wants to delete the schedule.
- if (result && result.confirmed) {
-
- // Deleting entity
- this.delete(ids).subscribe({
- next: (res: DeleteResponse) => {
- this.getData();
- }, error: (error: any) => {
- this.showError('I could not delete your entity, maybe other entities are referencing it?');
- console.error(error);
- }});
-
- }
- });
- ev.stopPropagation();
- }
-
- /**
- * Sorts according to the specified column.
- *
- * @param column Which column to sort by
- */
- public sort(column: string) {
- if (this.filter.order === column) {
- this.filter.direction =
- this.filter.direction === 'asc' ||
- this.filter.direction === null ||
- this.filter.direction === undefined ?
- 'desc' :
- 'asc';
- } else {
- this.filter.order = column;
- this.filter.direction = 'asc';
- }
- this.resetPaginator();
- this.getData(false);
- }
-
- /**
- * Downloads the specified content to client by base64 de-encoding it
- * and triggering a download.
- *
- * @param content Content to base64 de-encode and download to client
- */
- public downloadAsFile(content: string) {
- const filename = content.substring(0, content.indexOf(';'));
- const bytes = content.substring(content.indexOf(',') + 1);
- let type = content.substring(content.indexOf(':') + 1, content.indexOf(','));
- type = type.substring(0, type.indexOf(';'));
- const rawBytes = Buffer.from(bytes, 'base64');
- const file = new Blob([rawBytes], { type: type });
- saveAs(file, filename, false);
- return false;
- }
-
- /**
- * Returns the necessary edit data for given entity, used to open
- * modal dialog.
- *
- * @param entity Entity to return edit data for.
- */
- protected getEditData(entity: any) {
- const data = {
- isEdit: true,
- entity: {},
- };
- for (const idx in entity) {
- if (Object.prototype.hasOwnProperty.call(entity, idx)) {
- data.entity[idx] = entity[idx];
- }
- }
- return data;
- }
-
- /**
- * Updates the specified destination entity, with the values from the
- * source entity.
- *
- * @param srcEntity Entity containing new and potentially modified data for entity
- * @param destEntity Original entity, which is the entity method will update
- */
- protected setEditData(srcEntity: any, destEntity: any) {
-
- if (srcEntity) {
- for (const idx in srcEntity) {
- console.log(idx);
- if (Object.prototype.hasOwnProperty.call(srcEntity, idx)) {
- destEntity[idx] = srcEntity[idx];
- }
- }
- this.snackBar.open('Item successfully updated', 'Close', {
- duration: 2000,
- });
- }
- }
-
- /**
- * Invoked when an item was successfully created.
- *
- * @param createResult Result from modal dialog
- */
- protected itemCreated(createResult: any) {
- if (createResult) {
- this.getData();
- this.snackBar.open('Item successfully created', 'Close', {
- duration: 2000,
- });
- }
- }
-
- /**
- * Invoked when pager is paged.
- *
- * @param e Paging event
- */
- public paged(e: PageEvent) {
- if (this.filter.limit !== e.pageSize) {
- this.filter.limit = e.pageSize;
- this.resetPaginator();
- localStorage.setItem('page-size', e.pageSize.toString());
- } else {
- this.filter.offset = e.pageIndex * e.pageSize;
- }
- this.getData(false);
- }
-
- /**
- * Returns the sorting icon for the specified column.
- *
- * @param column Column to retrieve icons for
- */
- public getSortIcon(column: string) {
- if (this.filter.order !== column) {
- return 'sort_by_alpha';
- }
- if (this.filter.direction === 'asc') {
- return 'keyboard_arrow_down';
- } else {
- return 'keyboard_arrow_up';
- }
- }
-
- /**
- * Invoked when a referenced item needs to be fetched to display
- * some foreign key lookup value.
- *
- * @param cacheStorageName Name of cache storage
- * @param id ID to lookup into cache
- * @param param Parameter to add when doing lookup towards server
- * @param entityStorage Storage where to retrieve item from
- * @param property Property to return to caller from objact
- */
- public getCachedItem(
- cacheStorageName: string,
- id: any,
- param: string,
- entityStorage: IREntity,
- property: string) {
-
- // Making sure this is not a null value.
- if (!id) {
- return '';
- }
-
- // In case lookup field is the value field, we simply return it immediately as is.
- if (cacheStorageName + '.eq' === param) {
- return id; // No need to invoke server at all.
- }
-
- // In case display field is the same as the filter field, we simply return it immediately as is.
- if (property +'.eq' === param) {
- return id; // No need to invoke server at all.
- }
-
- // Making sure we've got cache storage for specified cache type.
- if (!this.cache[cacheStorageName]) {
- this.cache[cacheStorageName] = {};
- }
-
- // Checking if we already have this item in our cache.
- if (this.cache[cacheStorageName]['id_' + id]) {
-
- // Item found in cache.
- return this.cache[cacheStorageName]['id_' + id][property];
- }
-
- // Checking if another invocation previously have started the fetching process to retrieve item from server.
- if (this.cache[cacheStorageName]['id_' + id] === undefined) {
-
- // Making sure only ONE invocation actually invokes server.
- this.cache[cacheStorageName]['id_' + id] = null;
- entityStorage.read({[param]: id}).subscribe((result: any[]) => {
-
- // Applying item to cache.
- this.cache[cacheStorageName]['id_' + id] = result[0];
- });
- }
-
- // Waiting for server method to return - Hence, while we wait, we simply return the ID of the element.
- return id;
- }
-
- public getUnsafeUrl(url: string) {
- return this.sanitizer.bypassSecurityTrustResourceUrl(url);
- }
-
- /**
- * Shows an HTTP error, or some other error
- *
- * @param error HTTP error or normal error to display.
- */
- protected showError(error: any) {
- this.snackBar.open(
- error?.error?.message ||
- (error.status ? error.status + ' - ' + error.statusText : error),
- 'Close', {
- duration: 10000,
- });
- }
-
- /**
- * Invoked as user tries to filter his result set. Will either
- * create or remove an existing filter, depending upon the value
- * the user typed into the filter textbox.
- */
- protected processFilter(name: string, value: string) {
- this.resetPaginator();
- if (value === '') {
- delete this.filter[name];
- } else {
- this.filter[name] = value;
- }
- this.getData();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/create-user-dialog/create-user-dialog.component.html b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/create-user-dialog/create-user-dialog.component.html
deleted file mode 100644
index 21f56e01be..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/create-user-dialog/create-user-dialog.component.html
+++ /dev/null
@@ -1,23 +0,0 @@
-
-Create a new user
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/create-user-dialog/create-user-dialog.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/create-user-dialog/create-user-dialog.component.scss
deleted file mode 100644
index 2314271b1e..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/create-user-dialog/create-user-dialog.component.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-/*
- * Automatically generated by Magic
- */
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/create-user-dialog/create-user-dialog.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/create-user-dialog/create-user-dialog.component.ts
deleted file mode 100644
index 6f70352931..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/create-user-dialog/create-user-dialog.component.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-import { Component } from '@angular/core';
-import { MatDialogRef } from '@angular/material/dialog';
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { NewUser, UsersService } from '@app/services/users-service';
-
-@Component({
- selector: 'app-create-user-dialog',
- templateUrl: './create-user-dialog.component.html',
- styleUrls: ['./create-user-dialog.component.scss']
-})
-export class CreateUserDialogComponent {
-
- /**
- * Username field in the form.
- */
- public username: string = '';
-
- /**
- * Password fiels in the form.
- */
- public password: string = '';
-
- /**
- * Whether to show the typed password in a text format or password.
- */
- public showPassword: boolean = false;
-
- /**
- * Turns to true while the request is being sent.
- */
- public isLoading: boolean = false;
-
- /**
- *
- * @param snackbar To show feedback to the user.
- * @param usersService To call createUser endpoint.
- * @param dialogRef To target the current dialog box. Gives the ability to close it programmatically.
- */
-
- constructor(
- private snackbar: MatSnackBar,
- private usersService: UsersService,
- private dialogRef: MatDialogRef) { }
-
- /**
- * Invokes the endpoint to create a new user.
- * @returns If one of the password or username fields are empty.
- */
- public createUser() {
- if (this.username === '' || this.password === '') {
- this.snackbar.open('All fields are required.', null, { duration: 2000 });
- return;
- }
- this.isLoading = true;
- const data: NewUser = {
- username: this.username,
- password: this.password
- }
- this.usersService.createUser(data).subscribe({
- next: (res: any) => {
- this.snackbar.open('User created successfully.', null, { duration: 2000 });
- this.dialogRef.close('saved');
- this.isLoading = false;
- },
- error: (error: any) => {
- this.isLoading = false;
- this.snackbar.open('Username is already taken.', 'ok', { duration: 5000 });
- console.log(error);
- }
- })
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.html b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.html
deleted file mode 100644
index 075b2d81c3..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.scss
deleted file mode 100644
index d7b20bfa52..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.scss
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-.custom-icon {
- opacity: 0.4;
- font-size: 18px;
- transition: all 0.3s;
- -webkit-transition: all 0.3s;
-}
-button:hover {
- .custom-icon {
- opacity: 1;
- }
-}
-.section-title {margin-top: 20px;margin-bottom: 0;}
-.custom-save-btn {line-height: 2.2;}
-.row {
- display: flex;
- flex-wrap: wrap;
- box-sizing: border-box;
- .col,.col-lg {
- width: 100%;
- padding: 0 10px;
- }
- @media (min-width: 768px) {
- .col {
- flex: 0 0 33.333333%;
- max-width: 33.333333%;
- }
- .col-lg {
- flex: 0 0 50%;
- max-width: 50%;
- }
- }
- @media (min-width: 576px) and (max-width: 767px) {
- .col,
- .col-lg {
- flex: 0 0 50%;
- max-width: 50%;
- }
- }
- @media (max-width: 575px) {
- .col {
- flex: 0 0 100%;
- max-width: 100%;
- }
- }
-
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.spec.ts b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.spec.ts
deleted file mode 100644
index 0163d4431f..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.spec.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { EditExtraFieldsComponent } from './edit-extra-fields.component';
-
-describe('EditExtraFieldsComponent', () => {
- let component: EditExtraFieldsComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ EditExtraFieldsComponent ]
- })
- .compileComponents();
-
- fixture = TestBed.createComponent(EditExtraFieldsComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.ts
deleted file mode 100644
index 41fbd06188..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-extra-fields/edit-extra-fields.component.ts
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { FormBuilder, FormControl } from '@angular/forms';
-import { MatDialog } from '@angular/material/dialog';
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { ConfirmDialogComponent } from '@app/confirm-deletion-dialog/confirm-dialog.component';
-import { Extra, UsersService } from '@app/services/users-service';
-import { debounceTime, ReplaySubject } from 'rxjs';
-
-@Component({
- selector: 'app-edit-extra-fields',
- templateUrl: './edit-extra-fields.component.html',
- styleUrls: ['./edit-extra-fields.component.scss']
-})
-export class EditExtraFieldsComponent implements OnInit {
-
- @Input() data: Extra[] = [];
- @Input() username: string = '';
-
- @Output() updateExtraFields = new EventEmitter();
-
- /**
- * initialization of our dynamic form
- */
- public extraForm: any = this.formBuilder.group({});
-
- /**
- * Stores the value of the new type's input
- */
- public newType: string = '';
-
- /**
- * Stores the value of the new value's input
- */
- public newValue: string = '';
-
- /**
- * Sets focus on the type's input after adding a new field.
- */
- public focusOnType: boolean = false;
-
- /**
- * To access the value changes when typing inside the exisitng value's input.
- */
- private inputValue: ReplaySubject= new ReplaySubject();
-
- /**
- *
- * @param dialog To show confirmation dialog.
- * @param snackbar To show the feedback.
- * @param formBuilder To build a reactive form.
- * @param usersService To access endpoints related to user.
- */
- constructor(
- private dialog: MatDialog,
- private snackbar: MatSnackBar,
- private formBuilder: FormBuilder,
- private usersService: UsersService) { }
-
- ngOnInit(): void {
- this.setFormFields();
- // Adding debounceTime to send the request with delay.
- this.inputValue.pipe(debounceTime(500)).subscribe((changeValue: any)=>{
- if (changeValue[0] !== '') {
- this.editExtra(changeValue[1]);
- }
- })
- }
-
- /**
- * Sets dynamic fields based on the existing fields.
- * Will be applied only if data has value.
- */
- setFormFields() {
- if (this.data.length) {
- this.data.sort((a:any, b:any) => (a.type === 'email' && -1) || (b.type === 'email' && 1) || 0);
- this.data.forEach((element: any) => {
- this.extraForm.setControl(element.type, new FormControl({value: element.value, disabled: element.type === 'email'}));
- });
- }
- }
-
- /**
- * Deletes the selected extra field, upon confirmation.
- * @callback setFormFields To update the form.
- * @callback updateData To update the data inside the parent component.
- */
- public deleteUser(type: string) {
- this.dialog.open(ConfirmDialogComponent, {
- width: '500px',
- data: {
- title: 'Confirm deletion',
- text: 'Are you sure? By proceeding the selected field will be deleted permanently.'
- }
- }).afterClosed().subscribe((result: any) => {
- if(result?.confirmed) {
- const params: string = `?user=${this.username}&type=${type}`
- this.usersService.deleteUserExtras(params).subscribe({
- next: (res: any) => {
- if (res.affected > 0) {
- this.data = this.data.filter((item: any) => item.type !== type);
- this.setFormFields();
- this.updateData();
- }
- },
- error: (error: any) => {
- console.log(error);
- }
- });
- }
- })
- }
-
- /**
- * Updates the extra field on the selected user's record,
- * so the UI can be updated without an extra call.
- */
- private updateData() {
- this.updateExtraFields.emit(this.data);
- }
-
- /**
- * Will be called when exisiting fields get new values.
- * @param field Type of the extra field.
- */
- public watchInputChanges(field: string) {
- this.inputValue.next([this.extraForm.value[field], field]);
- }
-
- /**
- * Invokes the endpoint to edit an existing field.
- * @param field Type of the extra field.
- * @callback updateData To update the data inside the parent component.
- */
- private editExtra(field: string) {
- const data: Extra = {
- user: this.username,
- type: field,
- value: this.extraForm.value[field]
- }
- this.usersService.updateUserExtras(data).subscribe({
- next: (res: any) => {
- if (res && res.affected > 0) {
- this.snackbar.open(`Field updated successfully.`, null, { duration: 2000 });
- this.updateData();
- }
- },
- error: (error: any) => {
- console.log(error);
- }
- })
- }
-
- /**
- * Invokes the endpoint to add a new extra field.
- * @callback setFormFields To add the newly created field to the form.
- * @callback updateData To update the data inside the parent component.
- */
- public addExtra() {
- const data: Extra = {
- user: this.username,
- type: this.newType,
- value: this.newValue
- }
- this.usersService.addUserExtras(data).subscribe({
- next: (res: any) => {
- if (res && res.result === 'success') {
- this.data = [...this.data, data];
- this.setFormFields();
- this.snackbar.open('Field updated successfully.', null, { duration: 2000 });
- this.updateData();
- this.newType = '';
- this.newValue = '';
- this.focusOnType = true;
- }
- },
- error: (error: any) => {
- console.log(error);
- }
- })
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-user-dialog/edit-user-dialog.component.html b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-user-dialog/edit-user-dialog.component.html
deleted file mode 100644
index 418155ea83..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-user-dialog/edit-user-dialog.component.html
+++ /dev/null
@@ -1,52 +0,0 @@
-
-{{data.user.username}}
-
-
-
-
-
-
- Roles
-
-
- {{rolesCtrl.value ? rolesCtrl.value[0] : ''}}
- 1">
- + {{rolesCtrl.value.length - 1}} more
-
-
-
- {{role.name}}
- {{role.description}}
-
-
-
-
-
-
- {{userIsLocked ? 'Unlock user' : 'Lock user'}}
-
-
-
-
-
-
-
-
-
-
-
-
-Close
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-user-dialog/edit-user-dialog.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-user-dialog/edit-user-dialog.component.scss
deleted file mode 100644
index 3f89fa24ff..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-user-dialog/edit-user-dialog.component.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
- .d-block {display: block;}
- .multiline-mat-option.mat-option {
- white-space: normal;
- line-height: normal;
- height: unset;
- padding-top: 10px;
- padding-bottom: 10px;
- }
- .name-line {color: black;}
- .description-line {
- color: #777;
- font-size: 13px;
- margin-top: 5px;
- }
- .tab-content {
- margin-top: 20px;
- }
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-user-dialog/edit-user-dialog.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-user-dialog/edit-user-dialog.component.ts
deleted file mode 100644
index 00861f1b0b..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/edit-user-dialog/edit-user-dialog.component.ts
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';
-import { FormControl } from '@angular/forms';
-import { MAT_DIALOG_DATA } from '@angular/material/dialog';
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { Role, Roles, UpdateUser, User, UsersService } from '@app/services/users-service';
-
-@Component({
- selector: 'app-edit-user-dialog',
- templateUrl: './edit-user-dialog.component.html',
- styleUrls: ['./edit-user-dialog.component.scss']
-})
-export class EditUserDialogComponent implements OnInit {
-
- /**
- * A form control for roles.
- */
- public rolesCtrl = new FormControl([]);
-
- /**
- * Stores all the roles in a list.
- */
- public rolesList: any = [];
-
- /**
- * Setting a variable for the current state of the selected user.
- */
- public userIsLocked: boolean = undefined;
-
- /**
- *
- * @param snackbar To show the feedback.
- * @param cdr To detect the changes.
- * @param usersService To access endpoints related to user.
- * @param data To receive data from the parent component.
- */
- constructor(
- private snackbar: MatSnackBar,
- private cdr: ChangeDetectorRef,
- private usersService: UsersService,
- @Inject(MAT_DIALOG_DATA) public data: { user: User, roles: Roles[] }) { }
-
- ngOnInit(): void {
- this.sortRolesBySelected();
- this.rolesCtrl.setValue(this.data.user.role);
- this.userIsLocked = this.data.user.locked;
- }
-
- /**
- * Sorts roles' list in a way to have all selected roles listed on top of the list.
- * @param item Role set in the previous step.
- */
- public sortRolesBySelected() {
- this.data.roles = this.data.roles.sort((a: any, b: any) => this.data.user.role.indexOf(b.name) - this.data.user.role.indexOf(a.name));
- this.cdr.detectChanges();
- }
-
- /**
- * Setting the Role object and deciding what action needs to be made.
- * @param name user's username.
- */
- manageRole(name: string) {
- this.rolesCtrl.disable();
- const value: boolean = (this.rolesCtrl.value.indexOf(name) > -1);
- const item: Role = {
- user: this.data.user.username,
- role: name
- }
- if (value === true) {
- this.addRole(item);
- } else {
- this.removeRole(item);
- }
- }
-
- /**
- * Invokes the endpoint to add a role to the user's roles.
- * @param item Role set in the previous step.
- */
- public addRole(item: Role) {
- this.usersService.addUserRole(item).subscribe({
- next: (res: any) => {
- if (res && res.result === 'success') {
- this.snackbar.open('Successfully added.', null, { duration: 1000 });
- this.data.user.role = this.rolesCtrl.value;
- }
- this.rolesCtrl.enable();
- },
- error: (error: any) => {
- console.log(error);
- }
- });
- }
-
- /**
- * Invokes the endpoint to remove a role from the user's roles.
- * @param item Role set in the previous step.
- */
- public removeRole(item: Role) {
- const params: string = `?role=${item.role}&user=${item.user}`;
- this.usersService.removeUserRole(params).subscribe({
- next: (res: any) => {
- if (res && res.affected > 0) {
- this.data.user.role = this.rolesCtrl.value;
- this.snackbar.open('Successfully removed.', null, { duration: 1000 });
- }
- this.rolesCtrl.enable();
- },
- error: (error: any) => {
- console.log(error);
- }
- });
- }
-
- /**
- * Invokes the endpoint to lock/unlock user.
- */
- public toggleLockUser() {
- this.userIsLocked = !this.userIsLocked;
- const data: UpdateUser = {
- username: this.data.user.username,
- locked: this.userIsLocked
- }
- this.usersService.updateUser(data).subscribe({
- next: (res: any) => {
- if (res && res.affected > 0) {
- this.snackbar.open(`User is ${this.userIsLocked ? 'LOCKED' : 'UNLOCKED'} successfully.`, null, { duration: 3000 });
- }
- this.rolesCtrl.enable();
- },
- error: (error: any) => {
- console.log(error);
- }
- });
- }
-
- /**
- * Updates the extra field on the selected user's record,
- * so the UI can be updated without an extra call.
- */
- public updateExtraFields(event: any) {
- this.data.user.extra = event;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/user-management.component.html b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/user-management.component.html
deleted file mode 100644
index 842600a420..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/user-management.component.html
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
-
-
- Create a new user
-
-
-
-
-
-
-
- {{'Username' | translate}}
-
-
- search
-
-
-
- close
-
-
-
-
- {{el.username}}
-
-
-
-
- Created
-
- {{el.created | date: 'dd MMM, YYYY - HH:mm'}}
-
-
-
-
-
-
-
- delete
-
-
-
-
-
-
-
-
- edit
-
-
- {{'Username' | translate}}
- {{el.username}}
-
-
- {{'Created' | translate}}
- {{el.created | date: 'dd MMM, YYYY - HH:mm'}}
-
-
- {{'Role' | translate}}
- 0; else noRoles">
-
- {{role}}
-
-
- -
-
-
- {{'Extra details' | translate}}
- 0; else noExtra">
-
- {{extra.type}}: {{extra.value}}
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/user-management.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/user-management.component.scss
deleted file mode 100644
index 404d47dbee..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/user-management.component.scss
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-.locked {
- position: relative;
- &::after {
- content: 'Locked';
- position: absolute;
- left: 85px;
- top: 2px;
- background: #ffd892;
- padding: 0 5px;
- border-radius: 3px;
- font-weight: 500;
- font-size: 12px;
- font-style: italic;
- }
-}
-
-.grid-wrapper {
- position: relative;
- .create-btn {
- position: absolute;
- top: 40px;
- right: 16px;
- z-index: 1;
- }
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/user-management.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/user-management.component.ts
deleted file mode 100644
index 797984e195..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/common/user-management/user-management.component.ts
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-// Angular specific imports
-import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
-import { FormControl } from '@angular/forms';
-import { MatPaginator, PageEvent } from '@angular/material/paginator';
-import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
-
-// Application specific imports.
-import { Extra, Role, Roles, User, UsersService } from '@app/services/users-service';
-import { AuthService } from '@app/services/auth-service';
-import { animate, state, style, transition, trigger } from '@angular/animations';
-import { MatDialog } from '@angular/material/dialog';
-import { ConfirmDialogComponent } from '@app/confirm-deletion-dialog/confirm-dialog.component';
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { EditUserDialogComponent } from './edit-user-dialog/edit-user-dialog.component';
-import { CreateUserDialogComponent } from './create-user-dialog/create-user-dialog.component';
-
-/**
- * Users component allowing an administrator to create, read, update and delete users in the system.
- */
-@Component({
- selector: 'app-user-management',
- templateUrl: './user-management.component.html',
- styleUrls: ['./user-management.component.scss'],
- animations: [
- trigger('detailExpand', [
- state('collapsed', style({height: '0px', opacity: '0'})),
- state('expanded', style({height: '*', opacity: '1'})),
- transition('expanded <=> collapsed', animate('0.75s cubic-bezier(0.4, 0.0, 0.2, 1)')),
- ])
- ]
-})
-export class UserManagementComponent implements OnInit {
-
- /**
- * Which columns we should display. Reorder to prioritize columns differently.
- * Notice! 'delete-instance' should always come last.
- */
- public displayedColumns: string[] = [
- 'username',
- 'created',
- 'delete-instance'
- ];
-
- /**
- * What element is currently expanded.
- */
- public expandedElement: User | null;
-
- /**
- * Need to view paginator as a child to update page index of it.
- */
- @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;
-
- /**
- * Form control declarations to bind up with users filtering control.
- */
- public username: FormControl;
-
- /**
- * Temporary stores the username's search keyword
- */
- private usernameSearchKey: string = '';
-
- /**
- * Currently viewed users.
- */
- public users: User[] = null;
-
- /**
- * How many users to view simultaneously.
- */
- public pageSize: number = 25;
-
- /**
- * Specifies the page that is currently displaying.
- */
- public currentPage: number = 0;
-
- /**
- * Total number of records.
- */
- public total: number = 0;
-
- /**
- * Stores the list of all available roles.
- */
- private roles: any = [];
-
- // MatPaginator Output
- pageEvent!: PageEvent;
-
- /**
- * Creates an instance of your component.
- *
- * @param dialog To show confirmation dialog before deleting a record.
- * @param snackBar To show feedback to the users.
- * @param usersService Needed to be able to retrieve users from backend
- * @param authService Needed to determine if user has access to operations on users
- * @param cdr To detect the changes.
- */
- constructor(
- private dialog: MatDialog,
- private snackBar: MatSnackBar,
- private usersService: UsersService,
- public authService: AuthService,
- private cdr: ChangeDetectorRef) { }
-
- /**
- * Implementation of OnInit.
- */
- ngOnInit() {
-
- // Retrieves initial users
- this.getData();
-
- // Fetches the total number of users
- this.getUsersCount();
-
- /*
- * Creating our filtering FormControl instances, which gives us "live filtering"
- * on our columns.
- */
- this.username = new FormControl('');
- this.username.valueChanges
- .pipe(debounceTime(400), distinctUntilChanged())
- .subscribe((query: string) => {
- if (query.length > 2) {
- this.usernameSearchKey = query.trim();
- this.getData();
- this.getUsersCount();
- }
- if (query.length === 0) {
- this.usernameSearchKey = '';
- this.getData();
- this.getUsersCount();
- }
- });
- }
-
- /**
- * Clears the search input resets the value of username.
- * @callback getUsersCount To get the total number of users.
- * @callback getData To get the full list of users.
- */
- public clearSearch() {
- this.usernameSearchKey = '';
- this.username.setValue('');
- this.getData();
- this.getUsersCount();
- }
-
- /**
- * Invoked when paging occurs.
- */
- paged(event: PageEvent) {
- this.pageEvent = event;
- this.currentPage = event.pageIndex + 1;
- this.pageSize = this.pageEvent.pageSize;
- this.getData();
- }
-
- /*
- * Responsible for retrieving items from backend.
- * Sets two new keys to each record, as role and extra to be filled upon request.
- */
- private getData() {
- const params: string = `?limit=${this.pageSize}&offset=${this.currentPage}` +
- `${this.usernameSearchKey !== '' ? `&username.like=%${this.usernameSearchKey}%` : ''}`;
- this.usersService.users(params).subscribe({
- next: (users: User[]) => {
- users.map((user: User) => { user.role = []; user.extra = [] });
- this.users = users;
- this.usernameSearchKey = '';
- },
- error: (error: any) => {
- console.log(error);
- }
- });
- }
-
- /**
- * Retrieves roles assigned to the selected user.
- * Will be called only once, if the role item is empty.
- * @param username The selected user's username.
- * @param role The selected user's roles.
- * @callback getUserExtras To fetch the user's extra details.
- */
- public getUserRoles(username: string, role: any) {
- if (role.length === 0) {
- const params: string = `?user.eq=${username}`;
- this.usersService.getUserRole(params).subscribe({
- next: (res: Role[]) => {
- if (res) {
- let user: User = this.users.find((user: any) => user.username === username);
- user.role.push(...res.map((item: any) => { return item.role }));
- this.getUserExtras(username);
- this.cdr.detectChanges();
- }
- },
- error: (error: any) => {
- console.log(error);
- }
- })
- }
- }
-
- /**
- * Retrieves extra details for selected user.
- * Will be called only once.
- * @param username The selected user's username.
- */
- private getUserExtras(username: string) {
- const params: string = `?user.eq=${username}`;
- this.usersService.getUserExtras(params).subscribe({
- next: (res: Extra[]) => {
- if (res) {
- let user: any = this.users.find((user: any) => user.username === username);
- user.extra.push(...res);
- this.cdr.detectChanges();
- }
- },
- error: (error: any) => {
- console.log(error);
- }
- })
- }
-
- /**
- * Gets the total number of users.
- */
- private getUsersCount() {
- const params: string = `${this.usernameSearchKey !== '' ? `?username.like=${this.usernameSearchKey}` : ''}`;
- this.usersService.usersCount(params).subscribe({
- next: (res: any) => {
- this.total = res.count;
- },
- error: (error: any) => {
- console.log(error);
- }
- });
- }
-
- /**
- * Invokes deleteUser endpoint to delete the selected record, upon confirmation.
- * @callback getUsersCount To get the updated total number of users.
- * @callback getData To get the updated list of users.
- */
- public deleteUser(username: string) {
- this.dialog.open(ConfirmDialogComponent, {
- width: '500px',
- data: {
- title: 'Confirm deletion',
- text: 'Are you sure? By proceeding the selected user will be deleted permanently.'
- }
- }).afterClosed().subscribe((result: any) => {
- if(result?.confirmed) {
- const params: string = `?username=${username}`
- this.usersService.deleteUser(params).subscribe({
- next: (res: any) => {
- if (res.affected > 0) {
- this.snackBar.open('The user is deleted successfully.', 'Close', {
- duration: 2000,
- });
- this.currentPage = 0;
- this.getData();
- this.getUsersCount();
- }
- },
- error: (error: any) => {
- console.log(error);
- }
- });
- }
- })
- }
-
- /**
- * Retrieves the list of roles in the system once, upon a request for editing details.
- * Stores in "roles" variable, which will be used only if the user decides to edit a user's roles.
- * @callback openEditDialog to open the dialog directly, if the user has roles.
- */
- private getRoles(user: User) {
- this.usersService.getRoles().subscribe({
- next: (res: Roles[]) => {
- this.roles = res || [];
- this.openEditDialog(user);
- },
- error: (error: any) => {
- console.log(error);
- }
- });
- }
-
- /**
- * Allows editing the selected user's role in a modal.
- * @param user All information related to the selected user.
- * @callback openEditDialog to open the dialog directly, if the user has roles.
- * @callback getRoles to get the user role, if the user's role is empty.
- */
- public edit(user: User) {
- if (this.roles.length > 0) {
- this.openEditDialog(user);
- } else {
- this.getRoles(user);
- }
- }
-
- /**
- * Opens a modal to allow user update the role for the selected record.
- * @param user The entire details of the selected user.
- */
- private openEditDialog(user: User) {
- this.dialog.open(EditUserDialogComponent, {
- width: '700px',
- disableClose: true,
- data: {
- user: user,
- roles: this.roles
- }
- }).afterClosed().subscribe((res: {role: any, locked: boolean, extra: Extra[]}) => {
-
- this.users.find((item: User) => item.username === user.username).role = res.role;
- this.users.find((item: User) => item.username === user.username).locked = res.locked;
- this.users.find((item: User) => item.username === user.username).extra = res.extra;
- })
- }
-
- /**
- * Opens a modal to allow user create a new user on the system.
- * @callback getData To refetch the list of users upon creating a new one.
- */
- public createUser() {
- this.dialog.open(CreateUserDialogComponent, {
- width: '500px',
- disableClose: true
- }).afterClosed().subscribe((res: string) => {
- if (res === 'saved') {
- this.getData();
- }
- })
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/components/.gitkeep b/backend/files/misc/templates/angular/templates/main/src/app/components/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/confirm-deletion-dialog/confirm-dialog.component.html b/backend/files/misc/templates/angular/templates/main/src/app/confirm-deletion-dialog/confirm-dialog.component.html
deleted file mode 100644
index 11e720a150..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/confirm-deletion-dialog/confirm-dialog.component.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-{{data.title}}
-
-
-
-
-
- Yes
-
- No
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/confirm-deletion-dialog/confirm-dialog.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/confirm-deletion-dialog/confirm-dialog.component.ts
deleted file mode 100644
index d56a69d5d8..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/confirm-deletion-dialog/confirm-dialog.component.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import { Component, Inject } from '@angular/core';
-import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
-
-/**
- * Data model for confirm dialog.
- */
-export class ConfirmDialogData {
-
- /**
- * Confirmation text to display to user.
- */
- text: string;
-
- /**
- * Title for dialog.
- */
- title: string = 'Confirm action';
-
- /**
- * If this value is true when dialog is closed, the user confirmed the action,
- * otherwise the action was not confirmed.
- */
- confirmed?: boolean;
- }
-
- /**
- * Confirm dialog shown when user has to explicitly confirm an action of some sort.
- */
- @Component({
- selector: 'app-confirm-dialog',
- templateUrl: './confirm-dialog.component.html'
- })
- export class ConfirmDialogComponent {
-
- /**
- * Creates an instance of your component.
- *
- * @param dialogRef Dialog reference, necessary to be able to close dialog from code
- * @param data Input/output data being title, content, return vlue, etc.
- */
- constructor(
- private dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data: ConfirmDialogData) { }
-
- /**
- * Invoked when user clicks yes to confirm the action.
- */
- public yes() {
- this.data.confirmed = true;
- this.dialogRef.close(this.data);
- }
-
- /**
- * Invoked when user clicks no to regret the action.
- */
- public no() {
- this.data.confirmed = false;
- this.dialogRef.close(this.data);
- }
- }
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-autocomplete/magic-autocomplete.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-autocomplete/magic-autocomplete.component.html
deleted file mode 100644
index 6a54a70170..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-autocomplete/magic-autocomplete.component.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
- {{placeholder}}
-
-
-
-
- {{option[value]}}
-
-
-
- check_circle
- search
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-autocomplete/magic-autocomplete.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-autocomplete/magic-autocomplete.component.scss
deleted file mode 100644
index fb619247bb..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-autocomplete/magic-autocomplete.component.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-mat-form-field {
- width: 100%;
- position: relative;
- mat-icon {
- position: absolute;
- right: 0;
- top: 8px;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-autocomplete/magic-autocomplete.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-autocomplete/magic-autocomplete.component.ts
deleted file mode 100644
index 0eca617391..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-autocomplete/magic-autocomplete.component.ts
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-// Angular imports.
-import { FormControl } from '@angular/forms';
-import { IREntity } from '@app/services/interfaces/crud-interfaces';
-import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
-import { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';
-import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';
-
-/**
- * Autocomplete component allowing you to have an autocomplete
- * during editing/creating of items, for items where you have a foreign key,
- * which is a lookup into another database table. Usage would be
- * something like the following in your HTML.
-
-
-
-
- * The above would create an autocomplete for you, allowing you to
- * select from a popdown, declared in a database table, instead
- * of having user to manually type in the correct key.
- *
- * In the above example the main table has a field called 'locale_id',
- * which is a foreign key leading into the 'languages' 'id' column,
- * and you want to display the 'language' field to the end user.
- *
- * The (change) part is an output emitter, invoked as the currently selected
- * value has been changed.
- *
- * The difference between this component and the magic selector, is that
- * this component does not need to retrieve all items from the linked table,
- * which is useful for cases when you have thousands of records in your linked
- * table, and retrieving all of these simultaneously would require huge
- * amounts of bandwidth. However, logically these are similar in functionality,
- * and overlapping, and the threshold of linked database items requiring
- * you to choose one over the other, is up to you to decide. A good number
- * is typically if the linked table has more than 50/100 items, you should
- * probably choose the autocompleter, and vice versa.
- */
-@Component({
- selector: 'app-magic-autocomplete',
- templateUrl: './magic-autocomplete.component.html',
- styleUrls: ['./magic-autocomplete.component.scss'],
-})
-export class MagicAutocompleteComponent implements OnInit {
-
- /**
- * Model you're databinding towards.
- */
- @Input() public model: any;
-
- /**
- * Field in the model that is databound towards the selected key.
- */
- @Input() public field: string;
-
- /**
- * Key in the referenced table that the field is changed to as
- * an item is selected.
- */
- @Input() public key: string;
-
- /**
- * Name of table which we need to retrieve items from.
- * Needed as we query for existing values.
- */
- @Input() public table: string;
-
- /**
- * Field in the referenced table that is displayed to the user
- * allowing him to select a specific item.
- */
- @Input() public value: string;
-
- /**
- * Placeholder value (tooltip) of selector component.
- */
- @Input() public placeholder: string;
-
- /**
- * Observable callback for component to retrieve items
- * to databound towards from backend HTTP service.
- */
- @Input() public getItems: IREntity;
-
- /**
- * Callback to invoke once item is changed.
- */
- @Output() public change: EventEmitter = new EventEmitter();
-
- /**
- * Needed to programmatically set selected value during init if existing item is edited.
- */
- @ViewChild(MatAutocompleteTrigger) matAutocomplete: MatAutocompleteTrigger;
-
- /**
- * The control wrapping the input field.
- */
- public control = new FormControl();
-
- /**
- * Contains actual databound items, after having fetched
- * them from the backend.
- */
- public items: any[] = [];
-
- /**
- * If true, we're fetching items from backend.
- */
- public loading = false;
-
- /*
- * If false, the control will not fetch items as its value changes.
- */
- private fetch = true;
-
- /**
- * OnInit implementation.
- */
- public ngOnInit() {
-
- // Checking if model has a value already, at which point we display it by default.
- if (this.model[this.field]) {
-
- // Wee need to fetch the currently selected item and set the value of our autocomplete.
- this.loading = true;
- this.getItems.read({
- [this.table + '.' + this.key + '.eq']: this.model[this.field],
- limit: 1,
- }).subscribe({
- next: (result: any[]) => {
-
- // Assigning model.
- this.items = result ?? [];
- setTimeout(() => {
- const options = this.matAutocomplete.autocomplete.options.toArray();
- this.fetch = false;
- this.control.setValue(options[0].value);
- }, 1);
-
- // Making sure we subscribe to changes to input field, such that we can retrieve items from backend.
- this.control.valueChanges
- .pipe(debounceTime(400), distinctUntilChanged())
- .subscribe(() => {
- if (this.fetch) {
- this.model[this.field] = null;
- this.change?.emit();
- this.getData();
- }
- this.fetch = true;
- });
- this.loading = false;
- },
- error: (error: any) => console.error(error)});
- } else {
-
- // Making sure we subscribe to changes to input field, such that we can retrieve items from backend.
- this.control.valueChanges
- .pipe(debounceTime(400), distinctUntilChanged())
- .subscribe(() => {
- if (this.fetch) {
- this.model[this.field] = null;
- this.change?.emit();
- this.getData();
- }
- this.fetch = true;
- });
-
- // Retrieving items from IREntity instance provided by consumer.
- this.getData();
- }
- }
-
- /**
- * Returns display text for specified entity.
- *
- * @param entity Entity to display
- */
- public displayFn(entity: any): string {
- return entity && entity[this.value] ? (entity[this.value] ?? '') : '';
- }
-
- /**
- * Invoked when the currently selected item in the autocompleter changes.
- *
- * @param e Event data
- */
- public selectionChanged(e: MatAutocompleteSelectedEvent) {
-
- // Preventing debounce to fetch data.
- this.fetch = false;
-
- // Assigning model.
- this.model[this.field] = e.option.value[this.key];
-
- // Notifying subscribers.
- this.change?.emit();
- }
-
- /*
- * Private helper methods.
- */
-
- /*
- * Invoked as control needs new data from backend.
- */
- private getData() {
-
- // Retrieving items from IREntity instance provided by consumer.
- this.loading = true;
- const filter: any = {
- limit: 25,
- };
- if (this.control.value && this.control.value !== '') {
- filter[this.table + '.' + this.value + '.like'] = this.control.value;
- }
- this.getItems.read(filter).subscribe(res => {
-
- // Assigning model.
- this.items = res || [];
- this.items.sort((lhs, rhs) => {
- if (lhs[this.value] < rhs[this.value]) {
- return -1;
- } else if (lhs[this.value] > rhs[this.value]) {
- return 1;
- }
- return 0;
- });
- this.loading = false;
- });
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-field/magic-file-field.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-field/magic-file-field.component.html
deleted file mode 100644
index 10b2c8333d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-field/magic-file-field.component.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-field/magic-file-field.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-field/magic-file-field.component.scss
deleted file mode 100644
index b940704378..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-field/magic-file-field.component.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-div {
- width: 100%;
- position: relative;
- mat-form-field {
- width: 100%;
- }
- div {
- position: absolute;
- right: 8px;
- top: 9px;
- text-align: right;
- button {
- margin-right: -5px;
- }
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-field/magic-file-field.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-field/magic-file-field.component.ts
deleted file mode 100644
index a51cc0b598..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-field/magic-file-field.component.ts
+++ /dev/null
@@ -1,97 +0,0 @@
-// Angular and system imports.
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-
-/**
- * File uploader component, allowing you to browse for and upload a file.
- * Example usage can be found below.
-
-
-
-
- */
-@Component({
- selector: 'app-magic-file-field',
- templateUrl: './magic-file-field.component.html',
- styleUrls: ['./magic-file-field.component.scss'],
-})
-export class MagicFileFieldComponent {
- /**
- * Model you're databinding towards.
- */
- @Input() public model: any;
-
- /**
- * Key in the model, that you want this particular object
- * to be databound towards.
- */
- @Input() public field: string;
-
- /**
- * Placeholder value (tooltip) of component.
- */
- @Input() public label: string;
-
- /**
- * Callback to invoke once item is changed.
- */
- @Output() public change: EventEmitter = new EventEmitter();
-
- /**
- * Creates an instance of your component.
- */
- constructor() { }
-
- public getFileName(content: string) {
- if (!content) {
- return '';
- }
- return content.substring(0, content.indexOf(';'));
- }
-
- /**
- * Invoked when file uploader should be clicked.
- */
- public clickFileUploader() {
-
- // Simply clicking file uploader element to trigger 'browse for files'.
- document.getElementById('file_' + this.field).click()
- }
-
- /**
- * Invoked as user clicks the button to select a file.
- */
- public uploadFile(e: any) {
-
- // Retrieving selected file and uploading to server.
- const selectedFile = e.target.files[0];
- let fileContent = selectedFile.name + ';';
- let reader = new FileReader();
- reader.readAsDataURL(selectedFile);
- reader.onload = () => {
- fileContent += reader.result;
- this.model[this.field] = fileContent;
- };
- reader.onerror = (error) => {
- console.error(error);
- };
- }
-
- /**
- * Removes the currently selected file.
- */
- remove() {
-
- // Removing image from entity.
- this.model[this.field] = null;
-
- // Signaling image has changed.
- this.change?.emit();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-view/magic-file-view.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-view/magic-file-view.component.html
deleted file mode 100644
index d347dda2e3..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-view/magic-file-view.component.html
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-view/magic-file-view.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-view/magic-file-view.component.scss
deleted file mode 100644
index 5ac35de0a7..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-view/magic-file-view.component.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-
-a {
- text-decoration: none;
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-view/magic-file-view.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-view/magic-file-view.component.ts
deleted file mode 100644
index 4fc7b7b250..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file-view/magic-file-view.component.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-
-// Angular and system imports.
-import { Component, Input } from '@angular/core';
-import { environment } from '@env/environment';
-
-/**
- * File view component, allowing you to view and download an individual file
- * associated with a database entity. Below you can find example usage.
- *
-
-
- {{'Download' | translate}}
-
-
-
-
- * The component is typically used in the "view details" section of the grid component,
- * allowing the user to download the specified file associated with an entity.
- */
-@Component({
- selector: 'app-magic-file-view',
- templateUrl: './magic-file-view.component.html',
- styleUrls: ['./magic-file-view.component.scss'],
-})
-export class MagicFileViewComponent {
-
- /**
- * Backend API URL.
- */
- public apiUrl: string = environment.apiUrl;
-
- /**
- * Relative filename of image to view.
- */
- @Input() public file: string;
-
- /**
- * Relative download URL to retrieve image.
- */
- @Input() public downloadUrl: string;
-
- /**
- * Encodes the specified param as q QUERY URI component.
- *
- * @param param Query parameter to encode
- */
- public encode(param: string) {
-
- // Simply encoding as QUERY parameter.
- return encodeURIComponent(param);
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file/magic-file.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file/magic-file.component.html
deleted file mode 100644
index e8ce772046..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file/magic-file.component.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
- cloud_upload
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file/magic-file.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file/magic-file.component.scss
deleted file mode 100644
index 3c4d4d7541..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file/magic-file.component.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-div {
- width: 100%;
- position: relative;
- mat-form-field {
- width: 100%;
- }
- button {
- position: absolute;
- right: 0;
- top: 8px;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file/magic-file.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file/magic-file.component.ts
deleted file mode 100644
index fd253f35d4..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-file/magic-file.component.ts
+++ /dev/null
@@ -1,115 +0,0 @@
-// Angular and system imports.
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-
-// Application specific imports.
-import { HttpService } from '@app/services/http-service';
-import { MessageService } from '@app/services/message.service';
-
-/**
- * File uploader component, allowing you to browse for and upload a file.
- * Example usage can be found below.
-
-
-
-
- */
-@Component({
- selector: 'app-magic-file',
- templateUrl: './magic-file.component.html',
- styleUrls: ['./magic-file.component.scss'],
-})
-export class MagicFileComponent {
- /**
- * Model you're databinding towards.
- */
- @Input() public model: any;
-
- /**
- * Key in the model, that you want this particular object
- * to be databound towards.
- */
- @Input() public field: string;
-
- /**
- * Placeholder value (tooltip) of component.
- */
- @Input() public placeholder: string;
-
- /**
- * Upload URL to use when uploading images.
- */
- @Input() public uploadUrl: string;
-
- /**
- * Callback to invoke once item is changed.
- */
- @Output() public change: EventEmitter = new EventEmitter();
-
- /**
- * Creates an instance of your component.
- *
- * @param snack Needed to show errors to the user
- * @param httpService Needed to actually upload the image(s).
- * @param messageService Needed to signal other components to wait for operation while uploading
- */
- constructor(
- private snack: MatSnackBar,
- private httpService: HttpService,
- private messageService: MessageService) { }
-
- /**
- * Invoked when file uploader should be clicked.
- */
- public clickFileUploader() {
-
- // Simply clicking file uploader element to trigger 'browse for files'.
- document.getElementById('file_' + this.field).click()
- }
-
- /**
- * Invoked as user clicks the button to select a file.
- */
- public uploadFile(e: any) {
-
- // Making sure we obscure UI while file is being uploaded.
- this.messageService.sendMessage({
- name: 'magic.app.obscurer.show'
- });
-
- // Retrieving selected file and uploading to server.
- const selectedFile = e.target.files[0];
- this.httpService.uploadFile(this.uploadUrl, selectedFile, this.model[this.field]).subscribe((result: any) => {
-
- // Making sure we hide obscurer.
- this.messageService.sendMessage({
- name: 'magic.app.obscurer.hide'
- });
-
- // Assigning model
- this.model[this.field] = result.filename;
- this.change?.emit();
-
- }, (error: any) => {
-
- // Making sure we hide obscurer.
- this.messageService.sendMessage({
- name: 'magic.app.obscurer.hide'
- });
-
- // Oops, couldn't upload file ...
- this.snack.open(
- 'ERROR: ' + (error?.error?.message || error || 'Unspecified error when trying to upload file'),
- null, {
- duration: 5000
- });
- });
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-filter/magic-filter.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-filter/magic-filter.component.html
deleted file mode 100644
index 65012583b6..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-filter/magic-filter.component.html
+++ /dev/null
@@ -1,23 +0,0 @@
-
- {{ placeholder }}
-
-
-
-
- {{ option[value] }}
-
-
-
- search
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-filter/magic-filter.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-filter/magic-filter.component.scss
deleted file mode 100644
index 1943672ff6..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-filter/magic-filter.component.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-mat-form-field {
- width: calc(100% - 70px);
- font-size: 10px;
- position: relative;
- mat-icon {
- position: absolute;
- right: 0;
- font-size: 150%;
- top: 7px;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-filter/magic-filter.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-filter/magic-filter.component.ts
deleted file mode 100644
index 574b7f9259..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-filter/magic-filter.component.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-// Angular imports.
-import { Observable } from 'rxjs';
-import { FormControl } from '@angular/forms';
-import { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';
-import { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';
-import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';
-
-// Application specific imports.
-import { IREntity } from '@app/services/interfaces/crud-interfaces';
-
-/**
- * Autocomplete filtering component allowing you to have an autocomplete
- * during filtering of items in your grids, for items where you have a foreign key,
- * which is a lookup into another database table. Usage would be
- * something like the following in your HTML.
-
-
-
-
- * The above would create an autocomplete filter component for you,
- * allowing you to select from a popdown, declared in a database table,
- * instead of having user to manually type in the correct key.
- *
- * In the above example the main table has a field called 'horse_id',
- * which is a foreign key leading into the 'horses' 'id' column,
- * and you want to display the 'name' field to the end user.
- *
- * The (change) part is an output emitter, invoked as the currently selected
- * value has been changed, and needs to invoke the method responsible for
- * actually retrieving items for your main databound grid.
- */
-@Component({
- selector: 'app-magic-filter',
- templateUrl: './magic-filter.component.html',
- styleUrls: ['./magic-filter.component.scss'],
-})
-export class MagicFilterComponent implements OnInit {
-
- // Observable for filtering items.
- public filteredOptions: Observable = null;
-
- /**
- * Model you're databinding towards.
- */
- @Input() public model: any;
-
- /**
- * Field in the model that is databound towards the selected key.
- */
- @Input() public field: string;
-
- /**
- * Key in the referenced table that the field is changed to as
- * an item is selected.
- */
- @Input() public key: string;
-
- /**
- * Field in the referenced table that is displayed to the user
- * allowing him to select a specific item.
- */
- @Input() public value: string;
-
- /**
- * Placeholder value of selector component.
- */
- @Input() public placeholder: string;
-
- /**
- * Observable callback for component to retrieve items
- * to databound towards from backend HTTP service.
- */
- @Input() public getItems: IREntity;
-
- /**
- * Callback to invoke once item is changed.
- */
- @Output() public change: EventEmitter = new EventEmitter();
-
- /**
- * Needed to programmatically set selected value during init if existing item is edited.
- */
- @ViewChild(MatAutocompleteTrigger) matAutocomplete: MatAutocompleteTrigger;
-
- /**
- * The control wrapping the input field.
- */
- public control = new FormControl();
-
- /**
- * Contains actual databound items, after having fetched
- * them from the backend.
- */
- public items: any[] = [];
-
- /**
- * If true, we're fetching items from backend.
- */
- public loading = false;
-
- /*
- * If false, the control will not fetch items as its value changes.
- */
- private fetch = true;
-
- /**
- * OnInit implementation.
- */
- public ngOnInit() {
-
- // Creating our filter observable.
- this.filteredOptions = this.control.valueChanges.pipe(
- startWith(''),
- map((value) => (typeof value === 'string' ? value : value.name)),
- map((name) => (name ? this._filter(name) : this.items?.slice()))
- );
-
- // Checking if model has a value already, at which point we display it by default.
- if (this.model[this.field]) {
-
- // Wee need to fetch the currently selected item and set the value of our autocomplete.
- this.loading = true;
- this.getItems
- .read({
- [this.key + '.eq']: this.model[this.field],
- limit: 1,
- })
- .subscribe((result: any[]) => {
-
- // Assigning model.
- this.items = result;
- setTimeout(() => {
- const options = this.matAutocomplete.autocomplete.options.toArray();
- this.fetch = false;
- this.control.setValue(options[0].value);
- }, 1);
-
- // Making sure we subscribe to changes to input field, such that we can retrieve items from backend.
- this.control.valueChanges
- .pipe(debounceTime(400), distinctUntilChanged())
- .subscribe(() => {
- if (this.fetch) {
- this.model[this.field] = null;
- this.getData();
- }
- this.fetch = true;
- });
- this.loading = false;
- });
- } else {
- // Making sure we subscribe to changes to input field, such that we can retrieve items from backend.
- this.control.valueChanges
- .pipe(debounceTime(400), distinctUntilChanged())
- .subscribe(() => {
- if (this.fetch) {
- this.model[this.field] = null;
- this.getData();
- }
- this.fetch = true;
- });
- }
- }
-
- /**
- * Invoked when filter control gains focus.
- */
- public focused() {
-
- // Checking if we already have items, at which point we do nothing.
- if (this.items.length === 0) {
- this.getData();
- }
- }
-
- /**
- * Returns display text for specified entity.
- *
- * @param entity Entity to display
- */
- public displayFn(entity: any): string {
- return entity && entity[this.value] ? entity[this.value] ?? '' : '';
- }
-
- /**
- * Invoked when the currently selected item in the autocompleter changes.
- *
- * @param e Event data
- */
- public selectionChanged(e: MatAutocompleteSelectedEvent) {
- // Preventing debounce to fetch data.
- this.fetch = false;
-
- // Assigning model.
- this.model[this.field] = e.option.value[this.key];
-
- // Notifying subscribers.
- this.change?.emit();
- }
-
- /*
- * Private helper methods.
- */
-
- /*
- * Filter function, returning items matching filtering text to caller.
- */
- private _filter(filter: string): any[] {
- // Making sure we do lower case comparison.
- const filterValue = filter.toLowerCase();
- return this.items.filter(
- (x) => x[this.value]?.toLowerCase()?.includes(filterValue) ?? false
- );
- }
-
- /*
- * Invoked as control needs new data from backend.
- */
- private getData() {
- // Retrieving items from IREntity instance provided by consumer.
- this.loading = true;
- const filter: any = {
- limit: 25,
- };
- if (this.control.value && this.control.value !== '') {
- filter[this.value + '.like'] = this.control.value;
- }
- this.getItems.read(filter).subscribe((res) => {
- // Assigning model.
- this.items = res || [];
- this.items.sort((lhs, rhs) => {
- if (lhs[this.value] < rhs[this.value]) {
- return -1;
- } else if (lhs[this.value] > rhs[this.value]) {
- return 1;
- }
- return 0;
- });
- this.loading = false;
- });
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-field/magic-image-field.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-field/magic-image-field.component.html
deleted file mode 100644
index 94d429eacc..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-field/magic-image-field.component.html
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
{{label}}
-
-
- not_interested
-
-
- cloud_upload
-
-
-
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-field/magic-image-field.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-field/magic-image-field.component.scss
deleted file mode 100644
index cca401df23..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-field/magic-image-field.component.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-div.top {
- width: 100%;
- position: relative;
- height: 57px;
- padding-top: 10px;
- strong {
- display: block;
- height: 2.5rem;
- line-height: 2.5rem;
- }
- div {
- position: absolute;
- right: 8px;
- top: 15px;
- text-align: right;
- button {
- margin-top: -5px;
- margin-right: -5px;
- }
- }
-}
-div.bottom {
- position: relative;
- margin-top: .5rem;
- margin-bottom: 1.5rem;
- img {
- display: block;
- max-width: 100%;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-field/magic-image-field.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-field/magic-image-field.component.ts
deleted file mode 100644
index bbce4928ec..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-field/magic-image-field.component.ts
+++ /dev/null
@@ -1,148 +0,0 @@
-// Angular and system imports.
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-
-// Helper libraries.
-import { NgxImageCompressService } from 'ngx-image-compress';
-
-/**
- * Image field component, allowing you to browse for an image and add it to a field
- * as base64 encoded data. This component automatically resizes the image according to
- * its configuration if you set its maxWidth or maxHeight properties. Example usage
- * can be found below.
-
-
-
-
- */
-@Component({
- selector: 'app-magic-image-field',
- templateUrl: './magic-image-field.component.html',
- styleUrls: ['./magic-image-field.component.scss'],
-})
-export class MagicImageFieldComponent {
-
- /**
- * Model you're databinding towards.
- */
- @Input() public model: any;
-
- /**
- * Field in the model that you want this particular object
- * to be databound towards.
- */
- @Input() public field: string;
-
- /**
- * Maximum width of image.
- */
- @Input() public maxWidth?: number;
-
- /**
- * Maximum height of image.
- */
- @Input() public maxHeight?: number;
-
- /**
- * Title value (label) of component.
- */
- @Input() public label: string;
-
- /**
- * Callback to invoke once item is changed.
- */
- @Output() public change: EventEmitter = new EventEmitter();
-
- /**
- * Creates an instance of your component.
- *
- * @param imageCompress Needed to resize images before using it as field's value
- */
- constructor(private imageCompress: NgxImageCompressService) { }
-
- /**
- * Invoked as user clicks the button to select an image.
- */
- public selectImage() {
-
- // Asking user for an image.
- this.imageCompress.uploadFile().then(({image, orientation}) => {
-
- // Verifying user provided a maximum height/width, and if not, using image as is.
- if (this.maxHeight || this.maxWidth) {
-
- // Figuring out original size of image.
- const img = new Image();
- img.onload = () => {
-
- // Figuring out aspect ratio between max height/width and actual height/width.
- let widthRatio: number = null;
- let heightRatio: number = null;
- if (img.width > this.maxWidth) {
- widthRatio = this.maxWidth / img.width;
- }
- if (img.height > this.maxHeight) {
- heightRatio = this.maxHeight / img.height;
- }
-
- // Checking if image was larger in any direction that what our max height/width was.
- if (widthRatio || heightRatio) {
-
- // We need to find our smallest ratio to make sure image never exceed the specified max height/width.
- const ratio = Math.min(widthRatio || 1, heightRatio || 1);
-
- // Resizing image.
- this.imageCompress.compressFile(image, orientation, ratio * 100, 100).then((resizedImage: string) => {
-
- // Uploading resized image.
- const result = resizedImage.substring(resizedImage.indexOf(',') + 1);
- this.model[this.field] = result;
-
- // Signaling image has changed.
- this.change?.emit();
- });
-
- } else {
-
- // Image is smaller in both axis than our maximum size, hence using it as is.
- const result = image.substring(image.indexOf(',') + 1);
- this.model[this.field] = result;
-
- // Signaling image has changed.
- this.change?.emit();
- }
- };
-
- img.src = image;
-
- } else {
-
- // No max width/height declared - Hence, using image as is.
- const result = image.substring(image.indexOf(',') + 1);
- this.model[this.field] = result;
-
- // Signaling image has changed.
- this.change?.emit();
- }
- });
- }
-
- /**
- * Removes the currently selected image.
- */
- remove() {
-
- // Removing image from entity.
- this.model[this.field] = null;
-
- // Signaling image has changed.
- this.change?.emit();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-view/magic-image-view.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-view/magic-image-view.component.html
deleted file mode 100644
index f5c8e6ca94..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-view/magic-image-view.component.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-view/magic-image-view.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-view/magic-image-view.component.scss
deleted file mode 100644
index a9e5f7293d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-view/magic-image-view.component.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.magic-image {
- width: 100%;
- img {
- width: auto;
- max-width: 100%;
- box-shadow: 3px 3px 7px rgba(0,0,0,.5);
- border-radius: 5px;
- margin-top: 1rem;
- margin-bottom: 3rem;
- }
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-view/magic-image-view.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-view/magic-image-view.component.ts
deleted file mode 100644
index 7271869349..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image-view/magic-image-view.component.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Angular and system imports.
-import { Component, Input } from '@angular/core';
-import { environment } from '@env/environment';
-
-/**
- * Image view component, allowing you to view an individual image referenced
- * as a field in a table. Below you can find example usage.
- *
-
-
- {{'filename' | translate}}
-
-
-
-
- */
-@Component({
- selector: 'app-magic-image-view',
- templateUrl: './magic-image-view.component.html',
- styleUrls: ['./magic-image-view.component.scss'],
-})
-export class MagicImageViewComponent {
-
- /**
- * Backend API URL.
- */
- public apiUrl: string = environment.apiUrl;
-
- /**
- * Relative filename of image to view.
- */
- @Input() public image: string;
-
- /**
- * Relative download URL to retrieve image.
- */
- @Input() public downloadUrl: string;
-
- /**
- * Encodes the specified param as q QUERY URI component.
- *
- * @param param Query parameter to encode
- */
- public encode(param: string) {
-
- // Simply encoding as QUERY parameter.
- return encodeURIComponent(param);
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image/magic-image.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image/magic-image.component.html
deleted file mode 100644
index 139a083f1d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image/magic-image.component.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
- camera_enhance
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image/magic-image.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image/magic-image.component.scss
deleted file mode 100644
index 99d6ac5d5c..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image/magic-image.component.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-
-div {
- width: 100%;
- position:relative;
- mat-form-field {
- width: 100%;
- }
- button {
- position: absolute;
- right: 0;
- top: 8px;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image/magic-image.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image/magic-image.component.ts
deleted file mode 100644
index dcdd3792b0..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-image/magic-image.component.ts
+++ /dev/null
@@ -1,202 +0,0 @@
-
-// Angular and system imports.
-import { MatSnackBar } from '@angular/material/snack-bar';
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-
-// Helper libraries.
-import { NgxImageCompressService } from 'ngx-image-compress';
-
-// Application specific imports.
-import { HttpService } from '@app/services/http-service';
-import { MessageService } from '@app/services/message.service';
-
-/**
- * Image uploader component, allowing you to browse for and upload an image.
- * This component automatically resize the image according to its configuration
- * if you set its maxWidth or maxHeight properties. Example usage can be found
- * below.
-
-
-
-
- * Notice, the [upload] callback needs to be a function taking two arguments;
- * - The image itself as a base64 encoded string
- * - The type of image being e.g. 'jpeg', 'png' etc.
- *
- * Typically you can simply use the HttpService.uploadImage method here, assuming
- * you have a backend endpoint capable of handling the invocation.
- */
-@Component({
- selector: 'app-magic-image',
- templateUrl: './magic-image.component.html',
- styleUrls: ['./magic-image.component.scss'],
-})
-export class MagicImageComponent {
- /**
- * Model you're databinding towards.
- */
- @Input() public model: any;
-
- /**
- * Field in the model that you want this particular object
- * to be databound towards.
- */
- @Input() public field: string;
-
- /**
- * Maximum width of image.
- */
- @Input() public maxWidth?: number;
-
- /**
- * Maximum height of image.
- */
- @Input() public maxHeight?: number;
-
- /**
- * Placeholder value (tooltip) of component.
- */
- @Input() public placeholder: string;
-
- /**
- * Upload URL to use when uploading images.
- */
- @Input() public uploadUrl: string;
-
- /**
- * Callback to invoke once item is changed.
- */
- @Output() public change: EventEmitter = new EventEmitter();
-
- /**
- * Creates an instance of your component.
- *
- * @param snack Needed to show errors to the user
- * @param httpService Needed to actually upload the image(s).
- * @param imageCompress Needed to resize images before we upload them to backend
- * @param messageService Needed to signal other components to wait for operation while uploading
- */
- constructor(
- private snack: MatSnackBar,
- private httpService: HttpService,
- private imageCompress: NgxImageCompressService,
- private messageService: MessageService) { }
-
- /**
- * Invoked as user clicks the button to select an image.
- */
- public selectImage() {
-
- // Asking user for an image.
- this.imageCompress.uploadFile().then(({image, orientation}) => {
-
- // Making sure we obscure UI while image is being uploaded.
- this.messageService.sendMessage({
- name: 'magic.app.obscurer.show'
- });
-
- // Verifying user provided a maximum height/width, and if not, uploading image as is.
- if (this.maxHeight || this.maxWidth) {
-
- // Figuring out original size of image.
- const img = new Image();
- img.onload = () => {
-
- // Figuring out aspect ratio between max height/width and actual height/width.
- let widthRatio: number = null;
- let heightRatio: number = null;
- if (img.width > this.maxWidth) {
- widthRatio = this.maxWidth / img.width;
- }
- if (img.height > this.maxHeight) {
- heightRatio = this.maxHeight / img.height;
- }
-
- // Checking if image was larger in any direction that what our max height/width was.
- if (widthRatio || heightRatio) {
-
- // We need to find our smallest ratio to make sure image never exceeds the specified max height/width.
- const ratio = Math.min(widthRatio || 1, heightRatio || 1);
-
- // Resizing image.
- this.imageCompress.compressFile(image, orientation, ratio * 100, 100).then((resizedImage: string) => {
-
- // Uploading resized image.
- this.uploadImage(resizedImage);
- });
-
- } else {
-
- // Image is smaller in both axis than our maximum size, hence uploading as is.
- this.uploadImage(image);
- }
- };
-
- // Assigning the src will trigger loading, resulting in our above onload callback will be invoked once done.
- img.src = image;
-
- } else {
-
- // No max width/height declared - Hence, uploading image as is.
- this.uploadImage(image);
- }
- });
- }
-
- /*
- * Private helpers.
- */
-
- /*
- * Actual implementation of upload image, invoking our callback.
- */
- private uploadImage(image: string) {
-
- // Removing 'data:image/jpeg;base64,' parts of image data
- const cutoff = image.indexOf(',');
- const type = image.substring(0, cutoff).replace('data:image/', '').split(';')[0];
- image = image.substring(cutoff + 1);
-
- // Uploading image as base64 encoded bytes.
- this.httpService.uploadImage(
- this.uploadUrl,
- image,
- type,
- this.model[this.field]).subscribe((uploadResult: any) => {
-
- // Making sure we hide obscurer.
- this.messageService.sendMessage({
- name: 'magic.app.obscurer.hide'
- });
-
- // Assigning model.
- this.model[this.field] = uploadResult.filename;
-
- // Signaling image has changed.
- this.change?.emit();
-
- }, (error: any) => {
-
- // Making sure we hide obscurer.
- this.messageService.sendMessage({
- name: 'magic.app.obscurer.hide'
- });
-
- // Oops, couldn't upload image ...
- this.snack.open(
- 'ERROR: ' + (error?.error?.message || error || 'Unspecified error when trying to upload file'),
- null, {
- duration: 5000
- });
- });
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-selector/magic-selector.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-selector/magic-selector.component.html
deleted file mode 100644
index c3468500df..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-selector/magic-selector.component.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
- {{placeholder}}
-
- {{idx[value]}}
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-selector/magic-selector.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-selector/magic-selector.component.scss
deleted file mode 100644
index ce45a4e640..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-selector/magic-selector.component.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-
-mat-form-field {
- width: 100%;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-selector/magic-selector.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-selector/magic-selector.component.ts
deleted file mode 100644
index f4526e7926..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-selector/magic-selector.component.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-
-// Angular imports.
-import { Observable } from 'rxjs';
-import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';
-
-/**
- * Selector component allowing you to have a selector dropdown list
- * during editing/creating of items, for items where you have a foreign key,
- * which is a lookup into another database table. Usage would be
- * something like the following in your HTML.
-
-
-
-
- * The above would create a select list for you, allowing you to
- * select from a list of items, declared in a database table, instead
- * of having user to manually type in the correct key.
- *
- * In the above example the main table has a field called 'locale_id',
- * which is a foreign key leading into the 'languages' 'id' column,
- * and you want to display the 'language' field to the end user.
- *
- * The (change) part is an output emitter, invoked as the currently selected
- * value has been changed.
- */
-@Component({
- selector: 'app-magic-selector',
- templateUrl: './magic-selector.component.html',
- styleUrls: ['./magic-selector.component.scss'],
-})
-export class MagicSelectorComponent implements OnInit {
- /**
- * Model you're databinding towards.
- */
- @Input() public model: any;
-
- /**
- * Field in the model that is databound towards the selected key.
- */
- @Input() public field: string;
-
- /**
- * Key in the referenced table that the field is changed to as
- * an item is selected.
- */
- @Input() public key: string;
-
- /**
- * Field in the referenced table that is displayed to the user
- * allowing him to select a specific item.
- */
- @Input() public value: string;
-
- /**
- * Placeholder value (tooltip) of selector component.
- */
- @Input() public placeholder: string;
-
- /**
- * Observable callback for component to retrieve items
- * to databound towards from backend HTTP service.
- */
- @Input() public getItems: Observable;
-
- /**
- * Callback to invoke once item is changed.
- */
- @Output() public change: EventEmitter = new EventEmitter();
-
- /**
- * Contains actual databound items, after having fetched
- * them from the backend.
- */
- public items: any[];
-
- /**
- * OnInit implementation.
- */
- public ngOnInit() {
- this.getItems.subscribe({
- next: (res: any[]) => {
- this.items = res || [];
- },
- error: (error) => console.error('Could not get items in MagicSelector')
- });
- }
-
- /**
- * Invoked when value is changed.
- */
- public valueChanged() {
- // Emitting changed event, if consumer provided a callback for it
- this.change?.emit();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-username-lookup/magic-username-lookup.component.html b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-username-lookup/magic-username-lookup.component.html
deleted file mode 100644
index 04765154c6..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-username-lookup/magic-username-lookup.component.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
- Username
-
- {{idx.username}}
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-username-lookup/magic-username-lookup.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-username-lookup/magic-username-lookup.component.scss
deleted file mode 100644
index ce45a4e640..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-username-lookup/magic-username-lookup.component.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-
-mat-form-field {
- width: 100%;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-username-lookup/magic-username-lookup.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-username-lookup/magic-username-lookup.component.ts
deleted file mode 100644
index 3528b4f610..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/helpers/magic-username-lookup/magic-username-lookup.component.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-
-// Angular imports.
-import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';
-import { UsersService, User } from '@app/services/users-service';
-
-/**
- * Selector component allowing you to have a selector dropdown list
- * during editing/creating of items, for items with a username reference,
- * which is a lookup into magic users database. Usage would be
- * something like the following in your HTML.
-
-
-
-
- * The above would create a select list for you, allowing you to
- * select users from a list of items, instead
- * of having user to manually type in the correct username.
- *
- * The (change) part is an output emitter, invoked as the currently selected
- * value has been changed.
- */
-@Component({
- selector: 'app-magic-username-lookup',
- templateUrl: './magic-username-lookup.component.html',
- styleUrls: ['./magic-username-lookup.component.scss'],
-})
-export class MagicUsernameLookupComponent implements OnInit {
- /**
- * Model you're databinding towards.
- */
- @Input() public model: any;
-
- /**
- * Field in the model that is databound towards the selected key.
- */
- @Input() public field: string;
-
- /**
- * Callback to invoke once item is changed.
- */
- @Output() public change: EventEmitter = new EventEmitter();
-
- /**
- * Contains actual databound items, after having fetched
- * them from the backend.
- */
- public items: User[];
-
- /**
- * Creates an instance of your component.
- *
- * @param usersService Needed to fetch users from backend
- */
- constructor(private usersService: UsersService) {}
-
- /**
- * OnInit implementation.
- */
- public ngOnInit() {
-
- // Retrieving users from backend.
- this.usersService.users('').subscribe({
- next: (res: User[]) => {
- this.items = res || [];
- },
- error: (error) => console.error('Could not get items in MagicSelector')
- });
- }
-
- /**
- * Invoked when value is changed.
- */
- public valueChanged() {
- // Emitting changed event, if consumer provided a callback for it
- this.change?.emit();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/home/home-routing.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/home/home-routing.module.ts
deleted file mode 100644
index 7be8759840..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/home/home-routing.module.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { NgModule } from '@angular/core';
-import { Routes, RouterModule } from '@angular/router';
-import { marker } from '@biesbjerg/ngx-translate-extract-marker';
-
-import { HomeComponent } from './home.component';
-import { Shell } from '@app/shell/shell.service';
-import { UserManagementComponent } from '@app/common/user-management/user-management.component';
-
-// Then importing all CRUD components.
-[[imports-only-main]]
-
-const routes: Routes = [
- Shell.childRoutes([
- { path: '', component: HomeComponent, data: { title: marker('Home') } },
- { path: 'users', component: UserManagementComponent, data: { title: marker('User management') } },
-
- // Then routes for all CRUD components.
-[[routes]]
- ]),
-];
-
-@NgModule({
- imports: [RouterModule.forChild(routes)],
- exports: [RouterModule],
- providers: [],
-})
-export class HomeRoutingModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/home/home.component.html b/backend/files/misc/templates/angular/templates/main/src/app/home/home.component.html
deleted file mode 100644
index 7988ab7df4..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/home/home.component.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- APP_NAME
-
- [[intro]]
-
- code
- Version {{ version }}
-
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/home/home.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/home/home.component.scss
deleted file mode 100644
index 619ac071b2..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/home/home.component.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-.container {
- text-align: center;
- padding: 1em;
- mat-card {
- padding-bottom: 3rem;
- .logo {
- background-color: rgb(255,255,255);
- float: right;
- margin-left: 1rem;
- margin-bottom: 1rem;
- border-radius: 5px;
- box-shadow: 3px 3px 5px rgba(0,0,0,.5);
- padding-left: 1rem;
- padding-right: 1rem;
- img {
- width: 100%;
- }
- }
- p {
- text-align: left;
- }
- }
- ul {
- li {
- text-align: left;
- }
- }
-}
-
-.mat-icon {
- vertical-align: middle;
-}
-
-.version {
- position: absolute;
- bottom: .5rem;
- right: 1rem;
- color: rgb(128, 128, 128);
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/home/home.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/home/home.component.ts
deleted file mode 100644
index b736c30e22..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/home/home.component.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { environment } from '@env/environment';
-import { finalize } from 'rxjs/operators';
-
-import { QuoteService } from './quote.service';
-
-@Component({
- selector: 'app-home',
- templateUrl: './home.component.html',
- styleUrls: ['./home.component.scss'],
-})
-export class HomeComponent {
- version: string = environment.version;
-
- constructor() {}
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/home/home.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/home/home.module.ts
deleted file mode 100644
index aeb2298478..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/home/home.module.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { TranslateModule } from '@ngx-translate/core';
-import { FlexLayoutModule } from '@angular/flex-layout';
-
-import { SharedModule } from '@shared';
-import { MaterialModule } from '@app/material.module';
-import { HomeRoutingModule } from './home-routing.module';
-import { HomeComponent } from './home.component';
-
-@NgModule({
- imports: [CommonModule, TranslateModule, SharedModule, FlexLayoutModule, MaterialModule, HomeRoutingModule],
- declarations: [HomeComponent],
-})
-export class HomeModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/home/quote.service.ts b/backend/files/misc/templates/angular/templates/main/src/app/home/quote.service.ts
deleted file mode 100644
index decc8aa451..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/home/quote.service.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable, of } from 'rxjs';
-import { map, catchError } from 'rxjs/operators';
-
-const routes = {
- quote: (c: RandomQuoteContext) => `/jokes/random?category=${c.category}`,
-};
-
-export interface RandomQuoteContext {
- // The quote's category: 'dev', 'explicit'...
- category: string;
-}
-
-@Injectable({
- providedIn: 'root',
-})
-export class QuoteService {
- constructor(private httpClient: HttpClient) {}
-
- getRandomQuote(context: RandomQuoteContext): Observable {
- return this.httpClient.get('https://api.chucknorris.io' + routes.quote(context)).pipe(
- map((body: any) => body.value),
- catchError(() => of('Error, joke not found! :/'))
- );
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/i18n/i18n.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/i18n/i18n.module.ts
deleted file mode 100644
index 6bd07bed11..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/i18n/i18n.module.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { TranslateModule } from '@ngx-translate/core';
-import { FlexLayoutModule } from '@angular/flex-layout';
-
-import { MaterialModule } from '@app/material.module';
-import { LanguageSelectorComponent } from './language-selector.component';
-
-@NgModule({
- imports: [CommonModule, TranslateModule, FlexLayoutModule, MaterialModule],
- declarations: [LanguageSelectorComponent],
- exports: [LanguageSelectorComponent],
-})
-export class I18nModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/i18n/i18n.service.ts b/backend/files/misc/templates/angular/templates/main/src/app/i18n/i18n.service.ts
deleted file mode 100644
index 60067aa08d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/i18n/i18n.service.ts
+++ /dev/null
@@ -1,106 +0,0 @@
-import { Injectable } from '@angular/core';
-import { TranslateService, LangChangeEvent } from '@ngx-translate/core';
-import { Subscription } from 'rxjs';
-
-import { Logger } from '@core/logger.service';
-import enUS from '../../translations/en-US.json';
-import no from '../../translations/no.json';
-import es from '../../translations/es.json';
-import fr from '../../translations/fr.json';
-import it from '../../translations/it.json';
-import de from '../../translations/de.json';
-import pt from '../../translations/pt.json';
-import hi from '../../translations/hi.json';
-import ar from '../../translations/ar.json';
-import iw from '../../translations/iw.json';
-import zh from '../../translations/zh.json';
-import el from '../../translations/el.json';
-
-const log = new Logger('I18nService');
-const languageKey = 'language';
-
-@Injectable({
- providedIn: 'root',
-})
-export class I18nService {
- defaultLanguage!: string;
- supportedLanguages!: string[];
-
- private langChangeSubscription!: Subscription;
-
- constructor(private translateService: TranslateService) {
- // Embed languages to avoid extra HTTP requests
- translateService.setTranslation('en-US', enUS);
- translateService.setTranslation('no', no);
- translateService.setTranslation('es', es);
- translateService.setTranslation('fr', fr);
- translateService.setTranslation('it', it);
- translateService.setTranslation('de', de);
- translateService.setTranslation('pt', pt);
- translateService.setTranslation('hi', hi);
- translateService.setTranslation('ar', ar);
- translateService.setTranslation('iw', iw);
- translateService.setTranslation('zh', zh);
- translateService.setTranslation('el', el);
- }
-
- /**
- * Initializes i18n for the application.
- * Loads language from local storage if present, or sets default language.
- * @param defaultLanguage The default language to use.
- * @param supportedLanguages The list of supported languages.
- */
- init(defaultLanguage: string, supportedLanguages: string[]) {
- this.defaultLanguage = defaultLanguage;
- this.supportedLanguages = supportedLanguages;
- this.language = '';
-
- // Warning: this subscription will always be alive for the app's lifetime
- this.langChangeSubscription = this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {
- localStorage.setItem(languageKey, event.lang);
- });
- }
-
- /**
- * Cleans up language change subscription.
- */
- destroy() {
- if (this.langChangeSubscription) {
- this.langChangeSubscription.unsubscribe();
- }
- }
-
- /**
- * Sets the current language.
- * Note: The current language is saved to the local storage.
- * If no parameter is specified, the language is loaded from local storage (if present).
- * @param language The IETF language code to set.
- */
- set language(language: string) {
- language = language || localStorage.getItem(languageKey) || this.translateService.getBrowserCultureLang();
- let isSupportedLanguage = this.supportedLanguages.includes(language);
-
- // If no exact match is found, search without the region
- if (language && !isSupportedLanguage) {
- language = language.split('-')[0];
- language = this.supportedLanguages.find((supportedLanguage) => supportedLanguage.startsWith(language)) || '';
- isSupportedLanguage = Boolean(language);
- }
-
- // Fallback if language is not supported
- if (!isSupportedLanguage) {
- language = this.defaultLanguage;
- }
-
- log.debug(`Language set to ${language}`);
- this.translateService.use(language);
- }
-
- /**
- * Gets the current language.
- * @return The current language code.
- */
- get language(): string {
- return this.translateService.currentLang;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/i18n/index.ts b/backend/files/misc/templates/angular/templates/main/src/app/i18n/index.ts
deleted file mode 100644
index 088bb0b164..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/i18n/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from './i18n.module';
-export * from './i18n.service';
-export * from './language-selector.component';
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.html b/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.html
deleted file mode 100644
index 2326d246c8..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
- language
-
-
-
- {{ currentLanguage }}
-
-
-
-
- {{ language }}
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.scss
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.spec.ts b/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.spec.ts
deleted file mode 100644
index c99b662660..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.spec.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
-import { TranslateModule } from '@ngx-translate/core';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { FlexLayoutModule } from '@angular/flex-layout';
-
-import { MaterialModule } from '@app/material.module';
-import { I18nService } from './i18n.service';
-import { LanguageSelectorComponent } from './language-selector.component';
-
-describe('LanguageSelectorComponent', () => {
- let component: LanguageSelectorComponent;
- let fixture: ComponentFixture;
-
- beforeEach(
- waitForAsync(() => {
- TestBed.configureTestingModule({
- imports: [BrowserAnimationsModule, FlexLayoutModule, MaterialModule, TranslateModule.forRoot()],
- declarations: [LanguageSelectorComponent],
- providers: [I18nService],
- }).compileComponents();
- })
- );
-
- beforeEach(() => {
- fixture = TestBed.createComponent(LanguageSelectorComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.ts
deleted file mode 100644
index 4cb968ded0..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/i18n/language-selector.component.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Component, OnInit, Input } from '@angular/core';
-
-import { I18nService } from './i18n.service';
-
-@Component({
- selector: 'app-language-selector',
- templateUrl: './language-selector.component.html',
- styleUrls: ['./language-selector.component.scss'],
-})
-export class LanguageSelectorComponent implements OnInit {
- @Input() icon = false;
-
- constructor(private i18nService: I18nService) {}
-
- ngOnInit() {}
-
- setLanguage(language: string) {
- this.i18nService.language = language;
- }
-
- get currentLanguage(): string {
- return this.i18nService.language;
- }
-
- get languages(): string[] {
- return this.i18nService.supportedLanguages;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/material.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/material.module.ts
deleted file mode 100644
index 877fe91f43..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/material.module.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * This module imports and re-exports all Angular Material modules for convenience,
- * so only 1 module import is needed in your feature modules.
- * See https://material.angular.io/guide/getting-started#step-3-import-the-component-modules.
- *
- * To optimize your production builds, you should only import the components used in your app.
- */
-
-import { NgModule } from '@angular/core';
-import {
- MatCommonModule,
- MatLineModule,
- MatNativeDateModule,
- MatOptionModule,
- MatPseudoCheckboxModule,
- MatRippleModule,
-} from '@angular/material/core';
-import { MatButtonModule } from '@angular/material/button';
-import { MatCardModule } from '@angular/material/card';
-import { MatCheckboxModule } from '@angular/material/checkbox';
-import { MatDatepickerModule } from '@angular/material/datepicker';
-import { MatDialogModule } from '@angular/material/dialog';
-import { MatFormFieldModule } from '@angular/material/form-field';
-import { MatIconModule } from '@angular/material/icon';
-import { MatInputModule } from '@angular/material/input';
-import { MatMenuModule } from '@angular/material/menu';
-import { MatPaginatorModule } from '@angular/material/paginator';
-import { MatSelectModule } from '@angular/material/select';
-import { MatSidenavModule } from '@angular/material/sidenav';
-import { MatSnackBarModule } from '@angular/material/snack-bar';
-import { MatTableModule } from '@angular/material/table';
-import { MatToolbarModule } from '@angular/material/toolbar';
-import { MatTooltipModule } from '@angular/material/tooltip';
-import { MatDividerModule } from '@angular/material/divider';
-import { MatListModule } from '@angular/material/list';
-import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
-import { MatSlideToggleModule } from '@angular/material/slide-toggle';
-import { MatAutocompleteModule } from '@angular/material/autocomplete';
-import { MatTabsModule } from '@angular/material/tabs';
-
-@NgModule({
- exports: [
- MatButtonModule,
- MatCardModule,
- MatCheckboxModule,
- MatCommonModule,
- MatDatepickerModule,
- MatDialogModule,
- MatFormFieldModule,
- MatIconModule,
- MatInputModule,
- MatLineModule,
- MatMenuModule,
- MatNativeDateModule,
- MatOptionModule,
- MatPaginatorModule,
- MatPseudoCheckboxModule,
- MatRippleModule,
- MatSelectModule,
- MatSidenavModule,
- MatSnackBarModule,
- MatTableModule,
- MatToolbarModule,
- MatTooltipModule,
- MatDividerModule,
- MatListModule,
- MatProgressSpinnerModule,
- MatSlideToggleModule,
- MatAutocompleteModule,
- MatTabsModule
- ],
-})
-export class MaterialModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/pipes/date-since.pipe.ts b/backend/files/misc/templates/angular/templates/main/src/app/pipes/date-since.pipe.ts
deleted file mode 100644
index 968802efdc..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/pipes/date-since.pipe.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) Thomas Hansen, 2021 - 2023 thomas@ainiro.io.
- */
-
-import { Pipe, PipeTransform } from '@angular/core';
-
-/**
- * Date since pipe, displaying how many seconds/minutes/hours/etc ago a past date was.
- */
-@Pipe({
- name: 'since',
-})
-export class DateSincePipe implements PipeTransform {
- /**
- * Transforms a past date time date to its "xxx units ago" representation.
- *
- * @param value Value to transform
- */
- transform(value: any) {
- if (!value) {
- return '';
- }
- if (typeof value === 'string') {
- if ((value).indexOf('+') === -1 && (value).indexOf('Z') === -1) {
- value += 'Z';
- }
- }
- const due = new Date(value).getTime();
- const now = new Date().getTime();
- const deltaSeconds = Math.round((now - due) / 1000);
- if (deltaSeconds < 180) {
- return `${deltaSeconds} seconds ago`;
- }
- const deltaMinutes = Math.round(deltaSeconds / 60);
- if (deltaMinutes < 60) {
- return `${deltaMinutes} minutes ago`;
- }
- const deltaHours = Math.round(deltaMinutes / 60);
- if (deltaHours < 24) {
- return `${deltaHours} hours ago`;
- }
- const deltaDays = Math.round(deltaHours / 24);
- if (deltaDays < 60) {
- return `${deltaDays} days ago`;
- }
- const deltaWeeks = Math.round(deltaDays / 7);
- if (deltaWeeks < 20) {
- return `${deltaWeeks} weeks ago`;
- }
- const deltaMonths = Math.round(deltaWeeks / 4.2);
- return `${deltaMonths} months ago`;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/pipes/format-date-pipe.ts b/backend/files/misc/templates/angular/templates/main/src/app/pipes/format-date-pipe.ts
deleted file mode 100644
index f5f4c017d3..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/pipes/format-date-pipe.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Pipe, PipeTransform } from '@angular/core';
-
-/**
- * Date formatting pipe, simply creating a locale string
- * from the specified date, assumed to be a string, as returned
- * from the backend.
- */
-@Pipe({
- name: 'formatDate'
-})
-export class FormatDatePipe implements PipeTransform {
- transform(value: any): any {
- if (!value) {
- return '';
- }
- if (typeof value === 'string') {
- if ((value).indexOf('+') === -1 && (value).indexOf('Z') === -1) {
- value += 'Z';
- }
- }
- const date = new Date(value);
- return date.toLocaleString();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/auth-service.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/auth-service.ts
deleted file mode 100644
index 7df52ba17d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/auth-service.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-import { JwtHelperService } from '@auth0/angular-jwt';
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { environment } from 'src/environments/environment';
-import { Endpoint } from './models/endpoint';
-import { IMe } from './interfaces/me-interface';
-import { CredentialsService } from '@app/auth';
-
-/**
- * Authentication and authorization service, allowing you to query your backend
- * for its users/roles/etc.
- */
-@Injectable({
- providedIn: 'root',
-})
-export class AuthService {
- private endpoints: Endpoint[] = [];
- private userRoles: string[] = [];
-
- /**
- * Creates an instance of our object.
- *
- * @param httpClient HTTP client to use for HTTP invocations
- * @param jwtHelper OAuth0 helper class to parse JWT tokens
- */
- constructor(
- private httpClient: HttpClient,
- private credentialsService: CredentialsService,
- private jwtHelper: JwtHelperService
- ) {
- this.initialize();
- }
-
- /**
- * Returns true if endpoints have been initialized.
- *
- * Do not initialize your app before this one returns true
- */
- public hasEndpoints() {
- return this.endpoints.length > 0;
- }
-
- /**
- * Returns method groups associated with the current user, allowing the user
- * to login, logout, change password, etc.
- */
- get me(): IMe {
- return {
- canInvoke: (url: string, verb: string) => {
- const endpoints = this.endpoints.filter(
- (x: Endpoint) => x.path === url && x.verb === verb
- );
-
- if (endpoints.length === 0) {
- return false; // No such endpoint
- }
- return (
- !endpoints[0].auth ||
- endpoints[0].auth.filter((x) => this.userRoles.includes(x)).length > 0
- );
- },
-
- inRole: (roles: string[]) => {
- return this.userRoles.filter((x) => roles.indexOf(x) !== -1).length > 0;
- },
-
- isLoggedIn: () => {
- const ticket = this.credentialsService.credentials;
- if (this.jwtHelper.isTokenExpired(ticket.token)) {
- this.credentialsService.setCredentials();
- return false;
- } else {
- return true;
- }
- },
- };
- }
-
- /*
- * Invoked as object is created, which only happens once, since
- * service is consumed as a Singleton due to Angular's way of reusing
- * service instantiations.
- */
- private initialize() {
- /*
- * Checking JWT token is persisted, and not expired, at which point
- * we use stored token to initialize roles.
- */
- const ticket = this.credentialsService.credentials;
- if (this.jwtHelper.isTokenExpired(ticket.token)) {
- localStorage.removeItem('jwt_token');
- } else {
- const roles = this.jwtHelper.decodeToken(ticket.token).role;
- if (roles.filter) {
- this.userRoles = roles;
- } else {
- this.userRoles = [roles];
- }
- }
-
- /*
- * Retrieving endpoints from backend, which is a URL/verb association,
- * coupled with all roles allowed to invoke URL/verb combination.
- */
- this.httpClient
- .get(
- environment.apiUrl + 'magic/system/auth/endpoints'
- )
- .subscribe(
- (res: Endpoint[]) => {
- this.endpoints = res;
- },
- (error: any) => {
- console.log(error);
- }
- );
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/http-service.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/http-service.ts
deleted file mode 100644
index 559d29c12d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/http-service.ts
+++ /dev/null
@@ -1,175 +0,0 @@
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { environment } from 'src/environments/environment';
-import { ICrudEntity, ICrdEntity, ICrEntity, IREntity, IRudEntity, IRuEntity, ICruEntity, IRdEntity } from './interfaces/crud-interfaces'
-import { ILog } from './interfaces/log-interface'
-import { StatusResponse } from './models/status-response';
-import { CreateResponse } from './models/create-response';
-import { CountResponse } from './models/count-response';
-import { UpdateResponse } from './models/update-response';
-import { DeleteResponse } from './models/delete-response';
-
-/**
- * Your main HTTP service for invoking CRUD methods in your backend.
- *
- * This class encapsulates the generated HTTP endpoints for your app.
- */
-@Injectable({
- providedIn: 'root'
-})
-export class HttpService {
-
- /**
- * Creates an instance of your service.
- *
- * @param httpClient What HTTP client to use for invocations towards your backend
- */
- constructor(private httpClient: HttpClient) { }
-
- /**
- * Returns the log instance, allowing you to create server-side
- * log entries.
- */
- get log() : ILog {
-
- return {
-
- debug: (content: string) => {
- this.httpClient.post(
- environment.apiUrl +
- 'magic/system/logging/log', {
- type: 'debug',
- content
- }).subscribe((res: StatusResponse) => {
- console.log('Info item successfully logged');
- }, (error: any) => {
- console.error(error.error.message);
- });
- },
-
- info: (content: string) => {
- this.httpClient.post(
- environment.apiUrl +
- 'magic/system/logging/log', {
- type: 'info',
- content
- }).subscribe((res: StatusResponse) => {
- console.log('Info item successfully logged');
- }, (error: any) => {
- console.error(error.error.message);
- });
- },
-
- error: (content: string) => {
- this.httpClient.post(
- environment.apiUrl +
- 'magic/system/logging/log', {
- type: 'error',
- content
- }).subscribe((res: StatusResponse) => {
- console.log('Info item successfully logged');
- }, (error: any) => {
- console.error(error.error.message);
- });
- },
-
- fatal: (content: string) => {
- this.httpClient.post(
- environment.apiUrl +
- 'magic/system/logging/log', {
- type: 'fatal',
- content
- }).subscribe((res: StatusResponse) => {
- console.log('Info item successfully logged');
- }, (error: any) => {
- console.error(error.error.message);
- });
- }
- }
- }
-
- /*
- * HTTP REST methods your backend exposes.
- *
- * These parts is exposed such that each table returns an ICrudEntity
- * or an ICrdEntity, depending upon whether or not the endpoint group
- * contains an update method or not.
- */
-[[http-client-service-method-implementations]]
-
- /**
- * Uploads an image to your backend.
- *
- * @param url Backend relative endpoint URL
- * @param content Base64 encoded image data
- * @param type Type of image, such as 'jpeg', 'png', etc
- * @param old_file Optional name of old file, which if existing and specified will be deleted
- */
- public uploadImage(
- url: string,
- content: string,
- type: string,
- old_file?: string) {
-
- // Invoking backend with the specified arguments.
- // NOTICE! If you want to handle image uploading, you'll need a backend endpoint.
- if (url.indexOf('/') !== 0) {
- url = '/' + url;
- }
- return this.httpClient.put(`magic/modules${url}`, {
- content,
- type,
- old_file,
- });
- }
-
- /**
- * Uploads a file to your backend.
- *
- * @param url Backend relative endpoint URL
- * @param file File you want to upload
- * @param old_file Optional name of old file, which if existing and specified will be deleted
- */
- public uploadFile(url: string, file: any, old_file: string) {
-
- // Invoking backend with a form data object containing file.
- // NOTICE! If you want to handle file uploading, you'll need a backend endpoint.
- if (url.indexOf('/') !== 0) {
- url = '/' + url;
- }
- const formData: FormData = new FormData();
- formData.append('file', file);
- if (old_file) {
- formData.append('old_file', old_file);
- }
- return this.httpClient.put(`magic/modules${url}`, formData);
- }
-
- /*
- * Creates QUERY parameters from the specified "args" argument given.
- *
- * Used by CRUD service methods to create the correct QUERY parameters
- * during invocations towards your backend.
- */
- private getQueryArgs(args: any) {
- let result = '';
- for(const idx in args) {
- if (Object.prototype.hasOwnProperty.call(args, idx)) {
- const idxFilter = args[idx];
- if (idxFilter !== null && idxFilter !== undefined && idxFilter !== '') {
- if (result === '') {
- result += '?';
- } else {
- result += '&';
- }
- if (idx.endsWith('.like')) {
- result += idx + '=' + encodeURIComponent(idxFilter + '%');
- } else {
- result += idx + '=' + encodeURIComponent(idxFilter);
- }
- }
- }
- }
- return result;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/interfaces/crud-interfaces.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/interfaces/crud-interfaces.ts
deleted file mode 100644
index 15ede45e63..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/interfaces/crud-interfaces.ts
+++ /dev/null
@@ -1,157 +0,0 @@
-import { Observable } from 'rxjs';
-import { CreateResponse } from '../models/create-response';
-import { CountResponse } from '../models/count-response';
-import { UpdateResponse } from '../models/update-response';
-import { DeleteResponse } from '../models/delete-response';
-
-/**
- * Entity method group containing only Read, but not Update, Create or Delete.
- *
- * This interface is implemented on method groups not containing update, create or delete,
- * which might happen if user explicitly chooses to not generate a frontend with these
- * endpoints included.
- */
-export interface IREntity {
-
- /**
- * Reads entities from your backend.
- *
- * @param filter Filter condition for items to retrieve
- */
- read(filter: any) : Observable;
-
- /**
- * Counts entities from your backend.
- *
- * @param filter Filter condition for items to count
- */
- count(filter: any) : Observable;
-}
-
-/**
- * Entity method group containing Create and Read, but not Update or Delete.
- *
- * This interface is implemented on method groups not containing update or delete,
- * which might happen if a table have no primary keys.
- */
-export interface ICrEntity extends IREntity {
-
- /**
- * Creates a new entity.
- *
- * @param args Initial values for your entity
- */
- create(args: any) : Observable;
-}
-
-/**
- * Entity method group containing Read, Update and Delete, but not Create.
- *
- * This interface is implemented on method groups not containing create.
- */
- export interface IRuEntity extends IREntity {
-
- /**
- * Updates one entity in your backend.
- *
- * @param args What item to update, and what values to update it with. Must at the very least contain your entity's primary key.
- */
- update(args: any) : Observable;
-}
-
-/**
- * Entity method group containing Read and Delete, but not Update or Create.
- *
- * This interface is implemented on method groups not containing update or create,
- * which might happen if a table have only automatic columns.
- */
- export interface IRdEntity extends IREntity {
-
- /**
- * Deletes one entity from your backend.
- *
- * @param args Filter condition for item to delete, implying primary key(s) for entity
- */
- delete(args: any) : Observable;
-}
-
-/**
- * Entity method group containing Create, Read and Delete, but not Update.
- *
- * This interface is implemented on method groups not containing update,
- * which might happen, if a table have no updateable columns, such as
- * link tables, with only primary keys, etc.
- */
-export interface ICrdEntity extends IREntity {
-
- /**
- * Creates a new entity.
- *
- * @param args Initial values for your entity
- */
- create(args: any) : Observable;
-
- /**
- * Deletes one entity from your backend.
- *
- * @param args Filter condition for item to delete, implying primary key(s) for entity
- */
- delete(args: any) : Observable;
-}
-
-/**
- * Entity method group containing Read, Update and Delete, but not Create.
- *
- * This interface is implemented on method groups not containing create.
- */
- export interface IRudEntity extends IREntity {
-
- /**
- * Updates one entity in your backend.
- *
- * @param args What item to update, and what values to update it with. Must at the very least contain your entity's primary key.
- */
- update(args: any) : Observable;
-
- /**
- * Deletes one entity from your backend.
- *
- * @param args Filter condition for item to delete, implying primary key(s) for entity
- */
- delete(args: any) : Observable;
-}
-
-/**
- * Entity method group containing Create, Read and Update, but not Delete.
- *
- * This interface is implemented on method groups not containing delete.
- */
-export interface ICruEntity extends IREntity {
-
- /**
- * Creates a new entity.
- *
- * @param args Initial values for your entity
- */
- create(args: any) : Observable;
-
- /**
- * Updates one entity in your backend.
- *
- * @param args What item to update, and what values to update it with. Must at the very least contain your entity's primary key.
- */
- update(args: any) : Observable;
-}
-
-/**
- * Entity method group containing all 4 CRUD operations.
- */
-export interface ICrudEntity extends ICrdEntity {
-
- /**
- * Updates one entity in your backend.
- *
- * @param args What item to update, and what values to update it with. Must at the very least contain your entity's primary key.
- */
- update(args: any) : Observable;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/interfaces/log-interface.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/interfaces/log-interface.ts
deleted file mode 100644
index 71680f1077..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/interfaces/log-interface.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Log interface, allowing you to create server side log entries.
- */
-export interface ILog {
-
- /**
- * Logs a debug entry.
- *
- * @param content What to log
- */
- debug(content: string) : void;
-
- /**
- * Logs an info entry.
- *
- * @param content What to log
- */
- info(content: string) : void;
-
- /**
- * Logs an error entry.
- *
- * @param content What to log
- */
- error(content: string) : void;
-
- /**
- * Logs a fatal entry.
- *
- * @param content What to log
- */
- fatal(content: string) : void;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/interfaces/me-interface.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/interfaces/me-interface.ts
deleted file mode 100644
index 8c7482af86..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/interfaces/me-interface.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Observable } from 'rxjs';
-import { AuthenticateToken } from '../models/authenticate-token';
-
- /**
- * Service interface for methods somehow related to the current user,
- * such as authenticate, change-password, etc.
- */
- export interface IMe {
-
- /**
- * Returns true if current user are allowed to invoke specified URL/verb combination,
- * otherwise returns false.
- *
- * @param url URL of endpoint
- * @param verb HTTP verb for endpoint
- */
- canInvoke(url: string, verb: string) : boolean;
-
- /**
- * Returns true if current user belongs to any of the specified roles,
- * otherwise it returns false.
- *
- * @param roles Roles to check
- */
- inRole(roles: string[]) : boolean;
-
- /**
- * Returns true if current user is authenticate, otherwise false.
- */
- isLoggedIn() : boolean;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/message.service.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/message.service.ts
deleted file mode 100644
index 6d934c835f..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/message.service.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { Subject} from 'rxjs';
-import { Injectable } from '@angular/core';
-import { Message } from './models/message.model';
-
-/**
- * Message send/receive class, allowing you to subscribe to events,
- * and/or raise events.
- */
-@Injectable({
- providedIn: 'root'
-})
-export class MessageService {
-
- private subject = new Subject();
-
- /**
- * Sends a message to all subscribers.
- *
- * @param message Message to transmit to subscribers
- */
- sendMessage(message: Message) {
- this.subject.next(message);
- }
-
- /**
- * Returns the observable allowing you to subscribe to messages
- * transmitted by other components.
- */
- subscriber() {
- return this.subject.asObservable();
- }
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/models/authenticate-token.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/models/authenticate-token.ts
deleted file mode 100644
index d119fb0a09..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/models/authenticate-token.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Authentication token, returned from backend as user authenticates.
- * Contains a JWT token in its ticket field.
- */
-export class AuthenticateToken {
-
- /**
- * Actual JWT token returned from backend.
- */
- ticket: string;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/models/count-response.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/models/count-response.ts
deleted file mode 100644
index ad2de7af5d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/models/count-response.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Common response class for invocations towards backend that counts items.
- */
-export class CountResponse {
-
- /**
- * Number of items in backend matching filtering condition.
- */
- count: number;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/models/create-response.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/models/create-response.ts
deleted file mode 100644
index c0ea0b36e5..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/models/create-response.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Common response class for invocations towards backend that creates
- * items. Notice, if the caller is responsible for supplying an explicit
- * id column for entity, the returned id from the backend will normally
- * be null.
- */
-export class CreateResponse {
-
- /**
- * Id of new item. Might be null if caller is assumed to specify an explicit id
- * for the new entity.
- */
- id: any;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/models/delete-response.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/models/delete-response.ts
deleted file mode 100644
index 15fbd73834..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/models/delete-response.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Common response class for invocations towards backend that deletes items.
- */
-export class DeleteResponse {
-
- /**
- * How many records was affected by delete invocation.
- */
- affected: number;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/models/endpoint.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/models/endpoint.ts
deleted file mode 100644
index bf3c9f95c0..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/models/endpoint.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Endpoint model, encapsulating a single endpoint/verb combination,
- * combined with what roles are allowed to access endpoint with the
- * specified verb.
- */
-export class Endpoint {
-
- /**
- * Relative URL to endpoint.
- */
- path: string;
-
- /**
- * HTTP verb for endpoint, normally either GET, PUT, POST, DELETE.
- */
- verb: string;
-
- /**
- * List of roles allowed to access path/verb combination.
- * If empty, everybody have access, including anonymous invocations.
- */
- auth: string[];
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/models/message.model.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/models/message.model.ts
deleted file mode 100644
index 760f831e00..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/models/message.model.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Message class, encapsulating a message sent from one component to another.
- */
-export class Message {
-
- /**
- * Name of message that was transmitted.
- */
- name: string;
-
- /**
- * Content/data the message either expects or returns after being handled.
- */
- content?: any = null;
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/models/status-response.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/models/status-response.ts
deleted file mode 100644
index 7d57731964..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/models/status-response.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Common response class for invocations towards backend not returning
- * any particular data, besides "success", "failure", etc.
- */
-export class StatusResponse {
-
- /**
- * Status as reported from backend. Normally "success".
- */
- result: string;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/models/update-response.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/models/update-response.ts
deleted file mode 100644
index 8f7e10de5f..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/models/update-response.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Common response class for invocations towards backend that updates items.
- */
-export class UpdateResponse {
-
- /**
- * How many records was affected by delete invocation.
- */
- affected: number;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/services/users-service.ts b/backend/files/misc/templates/angular/templates/main/src/app/services/users-service.ts
deleted file mode 100644
index 2dc843a33d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/services/users-service.ts
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { environment } from 'src/environments/environment';
-
-/**
- * User model encapsulating a user from backend.
- */
-export class User {
- username: string;
- locked?: boolean;
- created?: Date;
- role?: any; // In-app use only
- extra?: any; // In-app use only
-}
-
-export class UpdateUser {
- username: string;
- locked?: boolean;
-}
-
-/**
- * Role model encapsulating a user's role from backend.
- */
-export class Role {
- user: string;
- role: string
-}
-
-/**
- * Extra details model encapsulating a user's Extra details from backend.
- */
-export class Extra {
- type: string;
- value: string;
- user: string
-}
-
-/**
- * Extra details model encapsulating a user's Extra details from backend.
- */
-export class Roles {
- name: string;
- description: string;
-}
-
-/**
- * Create a new user's model.
- */
-export class NewUser {
- username: string;
- password: string;
-}
-
-/**
- * Authentication and authorization service, allowing you to query your backend
- * for its users/roles/etc.
- */
-@Injectable({
- providedIn: 'root',
-})
-export class UsersService {
-
- /**
- * Creates an instance of our object.
- *
- * @param httpClient HTTP client to use for HTTP invocations
- */
- constructor(private httpClient: HttpClient) { }
-
- /**
- * Invokes users's endpoint to fetch the list of users.
- * @param params QueryParameters.
- * @returns List of users.
- */
- users(params: string) {
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/users' + params);
- }
-
- /**
- * Invokes users's endpoint to update a user.
- * @param params data.
- * @returns Result of the operation.
- */
- updateUser(data: UpdateUser) {
- return this.httpClient.put(
- environment.apiUrl +
- 'magic/system/magic/users', data);
- }
-
- /**
- * Invokes users's endpoint to create a new user.
- * @param params data.
- * @returns Result of the operation.
- */
- createUser(data: NewUser) {
- return this.httpClient.post(
- environment.apiUrl +
- 'magic/system/magic/users', data);
- }
-
- /**
- * Invokes users_count's endpoint to get the total number of users.
- * @param params queryParameters.
- * @returns Count of the users.
- */
- usersCount(params: string) {
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/users-count' + params);
- }
-
- /**
- * Invokes users's endpoint to delete a user.
- * @param params queryParameters.
- * @returns Result of the operation.
- */
- deleteUser(params: string) {
- return this.httpClient.delete(
- environment.apiUrl +
- 'magic/system/magic/users' + params);
- }
-
- /**
- * Invokes users_roles' endpoint to get all roles assigned to the user.
- * @param params queryParameters.
- * @returns list of roles assigned to the user.
- */
- getUserRole(params: string) {
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/users_roles' + params);
- }
-
- /**
- * Invokes users_roles' endpoint to add a new role.
- * @param params data.
- * @returns Result of the operation.
- */
- addUserRole(data: Role) {
- return this.httpClient.post(
- environment.apiUrl +
- 'magic/system/magic/users_roles', data);
- }
-
- /**
- * Invokes users_roles' endpoint to remove a role from the user's roles.
- * @param params queryParameters.
- * @returns Result of the operation.
- */
- removeUserRole(params: string) {
- return this.httpClient.delete(
- environment.apiUrl +
- 'magic/system/magic/users_roles' + params);
- }
-
- /**
- * Invokes users_extra's endpoint to get all details stored in extra field.
- * @param params queryParameters.
- * @returns List of extra details.
- */
- getUserExtras(params: string) {
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/users_extra' + params);
- }
-
- /**
- * Invokes users_extra's endpoint to add a new field for the selected extra field.
- * @param data Request payload.
- * @returns Result of the operation.
- */
- addUserExtras(data: Extra) {
- return this.httpClient.post(
- environment.apiUrl +
- 'magic/system/magic/users_extra', data);
- }
-
- /**
- * Invokes users_extra's endpoint to update the selected extra field.
- * @param data Request payload.
- * @returns Result of the operation.
- */
- updateUserExtras(data: Extra) {
- return this.httpClient.put(
- environment.apiUrl +
- 'magic/system/magic/users_extra', data);
- }
-
- /**
- * Invokes users_extra's endpoint to delete the selected extra field.
- * @param params queryParameters.
- * @returns Result of the operation.
- */
- deleteUserExtras(params: string) {
- return this.httpClient.delete(
- environment.apiUrl +
- 'magic/system/magic/users_extra' + params);
- }
-
- /**
- * Invokes roles's endpoint to get the list of all available roles.
- * @returns List of roles.
- */
- getRoles() {
- return this.httpClient.get(
- environment.apiUrl +
- 'magic/system/magic/roles');
- }
-
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.component.html b/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.component.html
deleted file mode 100644
index 5626cd8104..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.component.html
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
-
-
- APP_NAME
-
-
-
- person
-
-
-
-
- Logged in as {{ username }}
-
-
-
- Logout
-
-
-
-
-
-
-
-
- Home
-
-
-
- Users
-
-[[router-links]]
-
-
-
-
-
-
-
- {{ title }}
-
-
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.component.scss b/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.component.scss
deleted file mode 100644
index 6e5f8e11fa..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.component.scss
+++ /dev/null
@@ -1,40 +0,0 @@
-:host {
- display: flex;
- flex: 1;
-}
-
-.mat-sidenav {
- min-width: 270px;
- max-width: 28%;
-}
-
-.has-border {
- border-right: 1px solid rgba(0, 0, 0, 0.12);
-}
-
-.mat-list {
- padding-top: 0;
-}
-
-.mat-list-item {
- text-decoration: none;
-}
-
-.menu-button {
- margin-right: 1rem;
-}
-
-.obscurer {
- position: fixed;
- z-index: 10000;
- top: 0;
- left: 0;
- width: 100vw;
- height: 100vh;
- background-color: rgb(0,0,0,.2);
- mat-spinner {
- position: absolute;
- top: calc(50% - 25px);
- left: calc(50% - 25px);
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.component.ts b/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.component.ts
deleted file mode 100644
index 6711abaeba..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.component.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import { Subscription } from 'rxjs';
-import { Title } from '@angular/platform-browser';
-import { Component, OnDestroy, OnInit } from '@angular/core';
-import { Router } from '@angular/router';
-import { MediaObserver } from '@angular/flex-layout';
-
-import { AuthenticationService, CredentialsService } from '@app/auth';
-import { AuthService } from '@app/services/auth-service';
-import { MessageService } from '@app/services/message.service';
-import { Message } from '@app/services/models/message.model';
-
-@Component({
- selector: 'app-shell',
- templateUrl: './shell.component.html',
- styleUrls: ['./shell.component.scss'],
-})
-export class ShellComponent implements OnInit, OnDestroy {
-
- // Needed to subscribe to relevant message from other components.
- private subscription: Subscription = null;
-
- /**
- * If true, we should obscure UI to avoid user from interacting with it.
- */
- public showObscurer = false;
-
- constructor(
- private router: Router,
- public authService: AuthService,
- private titleService: Title,
- private authenticationService: AuthenticationService,
- private messageService: MessageService,
- private credentialsService: CredentialsService,
- private media: MediaObserver
- ) { }
-
- ngOnInit() {
-
- // Making sure we subscribe to relevant messages published by other components.
- this.subscription = this.messageService.subscriber().subscribe((msg: Message) => {
- switch(msg.name) {
-
- case 'magic.app.obscurer.show':
- this.showObscurer = true;
- break;
-
- case 'magic.app.obscurer.hide':
- this.showObscurer = false;
- break;
- }
- })
- }
-
- ngOnDestroy() {
-
- // Cleaning up.
- if (this.subscription) {
- this.subscription.unsubscribe();
- }
- }
-
- logout() {
- this.authenticationService.logout().subscribe(() => this.router.navigate(['/login'], { replaceUrl: true }));
- }
-
- get username(): string | null {
- const credentials = this.credentialsService.credentials;
- return credentials ? credentials.username : null;
- }
-
- get isMobile(): boolean {
- return this.media.isActive('xs') || this.media.isActive('sm');
- }
-
- get title(): string {
- return this.titleService.getTitle();
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.module.ts b/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.module.ts
deleted file mode 100644
index 7cbb0c693b..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.module.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { TranslateModule } from '@ngx-translate/core';
-import { RouterModule } from '@angular/router';
-import { FlexLayoutModule } from '@angular/flex-layout';
-
-import { I18nModule } from '@app/i18n';
-import { MaterialModule } from '@app/material.module';
-import { AuthModule } from '@app/auth';
-import { ShellComponent } from './shell.component';
-
-@NgModule({
- imports: [CommonModule, TranslateModule, FlexLayoutModule, MaterialModule, AuthModule, I18nModule, RouterModule],
- declarations: [ShellComponent],
-})
-export class ShellModule {}
diff --git a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.service.ts b/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.service.ts
deleted file mode 100644
index e80078e4f5..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/app/shell/shell.service.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Routes, Route } from '@angular/router';
-
-import { AuthenticationGuard } from '@app/auth';
-import { ShellComponent } from './shell.component';
-
-/**
- * Provides helper methods to create routes.
- */
-export class Shell {
- /**
- * Creates routes using the shell component and authentication.
- * @param routes The routes to add.
- * @return The new route using shell as the base.
- */
- static childRoutes(routes: Routes): Route {
- return {
- path: '',
- component: ShellComponent,
- children: routes,
- canActivate: [AuthenticationGuard],
- };
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/aista-logo.svg b/backend/files/misc/templates/angular/templates/main/src/assets/aista-logo.svg
deleted file mode 100644
index 04de71a2f1..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/assets/aista-logo.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/android-icon-192x192.png b/backend/files/misc/templates/angular/templates/main/src/assets/android-icon-192x192.png
deleted file mode 100644
index 2ff337dd22..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/assets/android-icon-192x192.png and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-128x128.png b/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-128x128.png
deleted file mode 100644
index 781eb3b3e2..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-128x128.png and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-144x144.png b/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-144x144.png
deleted file mode 100644
index e7b910a041..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-144x144.png and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-152x152.png b/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-152x152.png
deleted file mode 100644
index da90b9c367..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-152x152.png and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-57x57.png b/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-57x57.png
deleted file mode 100644
index 7f76ec83aa..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-57x57.png and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-72x72.png b/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-72x72.png
deleted file mode 100644
index 3c68cfc511..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/assets/apple-icon-72x72.png and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/favicon-96x96.png b/backend/files/misc/templates/angular/templates/main/src/assets/favicon-96x96.png
deleted file mode 100644
index 774c30536a..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/assets/favicon-96x96.png and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/icon-384x384.png b/backend/files/misc/templates/angular/templates/main/src/assets/icon-384x384.png
deleted file mode 100644
index 039702ba8e..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/assets/icon-384x384.png and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/assets/logo-official.png b/backend/files/misc/templates/angular/templates/main/src/assets/logo-official.png
deleted file mode 100644
index 7ede1a8e10..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/assets/logo-official.png and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/environments/environment.json b/backend/files/misc/templates/angular/templates/main/src/environments/environment.json
deleted file mode 100644
index 87d9de90fe..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/environments/environment.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "apiUrl": "[[apiUrl]]",
- "apiDomain": "[[environmentDomain]]",
- "version": "1.0.0",
- "default_language": "en-US"
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/environments/environment.prod.json b/backend/files/misc/templates/angular/templates/main/src/environments/environment.prod.json
deleted file mode 100644
index 87d9de90fe..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/environments/environment.prod.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "apiUrl": "[[apiUrl]]",
- "apiDomain": "[[environmentDomain]]",
- "version": "1.0.0",
- "default_language": "en-US"
-}
\ No newline at end of file
diff --git a/backend/files/misc/templates/angular/templates/main/src/environments/environment.prod.ts b/backend/files/misc/templates/angular/templates/main/src/environments/environment.prod.ts
deleted file mode 100644
index e9c147a4dd..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/environments/environment.prod.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-// `.env.ts` is generated by the `npm run env` command
-// `npm run env` exposes environment variables as JSON for any usage you might
-// want, like displaying the version or getting extra config from your CI bot, etc.
-// This is useful for granularity you might need beyond just the environment.
-// Note that as usual, any environment variables you expose through it will end up in your
-// bundle, and you should not use it for any sensitive information like passwords or keys.
-// import { env } from './.env';
-import env from './environment.prod.json';
-
-export const environment = {
- production: true,
- version: env.version,
- apiUrl: env.apiUrl,
- apiDomain: env.apiDomain,
- defaultLanguage: env.default_language,
- supportedLanguages: ['en-US', 'no', 'fr', 'es', 'it', 'de', 'pt', 'hi', 'ar', 'iw', 'zh', 'el'],
-};
diff --git a/backend/files/misc/templates/angular/templates/main/src/environments/environment.ts b/backend/files/misc/templates/angular/templates/main/src/environments/environment.ts
deleted file mode 100644
index 993887157f..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/environments/environment.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-
-// This file can be replaced during build by using the `fileReplacements` array.
-// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
-// The list of file replacements can be found in `angular.json`.
-
-// `.env.ts` is generated by the `npm run env` command
-// `npm run env` exposes environment variables as JSON for any usage you might
-// want, like displaying the version or getting extra config from your CI bot, etc.
-// This is useful for granularity you might need beyond just the environment.
-// Note that as usual, any environment variables you expose through it will end up in your
-// bundle, and you should not use it for any sensitive information like passwords or keys.
-// import { env } from './.env';
-import env from './environment.json';
-
-export const environment = {
- production: false,
- version: env.version,
- apiUrl: env.apiUrl,
- apiDomain: env.apiDomain,
- defaultLanguage: env.default_language,
- supportedLanguages: ['en-US', 'no', 'fr', 'es', 'it', 'de', 'pt', 'hi', 'ar', 'iw', 'zh', 'el'],
-};
-
-/*
- * For easier debugging in development mode, you can import the following file
- * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
- *
- * This import should be commented out in production mode because it will have a negative impact
- * on performance if an error is thrown.
- */
-// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
diff --git a/backend/files/misc/templates/angular/templates/main/src/favicon.ico b/backend/files/misc/templates/angular/templates/main/src/favicon.ico
deleted file mode 100755
index 013fc4dc46..0000000000
Binary files a/backend/files/misc/templates/angular/templates/main/src/favicon.ico and /dev/null differ
diff --git a/backend/files/misc/templates/angular/templates/main/src/index.html b/backend/files/misc/templates/angular/templates/main/src/index.html
deleted file mode 100644
index efc170a20b..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
- [[name]]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This page requires JavaScript to work properly. Please enable JavaScript in your browser.
-
-
-
-
diff --git a/backend/files/misc/templates/angular/templates/main/src/main.scss b/backend/files/misc/templates/angular/templates/main/src/main.scss
deleted file mode 100644
index c2b986ae51..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/main.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Automatically generated by Magic
- */
-/*
- * Entry point of global application style.
- * Component-specific style should not go here and be included directly as part of the components.
- */
-
-// Theme variables, must be included before the libraries to allow overriding defaults
-@import "theme/theme-variables";
-
-// 3rd party libraries
-@import "material-design-icons-iconfont/src/material-design-icons";
-
-// Angular Material custom theme
-// The mixins below must be included once so we separated them from the variables
-@import "@angular/material/theming";
-
-// Include the common styles for Angular Material. We include this here so that you only
-// have to load a single css file for Angular Material in your app.
-// Be sure that you only ever include this mixin once!
-@include mat-core();
-
-// Include theme styles for core and each component used in your app.
-// Alternatively, you can import and @include the theme mixins for each component
-// that you are using.
-@include angular-material-theme($app-theme);
-
-// Theme customization
-@import "theme/theme";
-
-// Date and time picker
-@import "~@danielmoncada/angular-datetime-picker/assets/style/picker.min.css";
-
-// CRUD custom classes for components that are CRUD components
-@import "theme/crud";
-
-@media screen and (-webkit-min-device-pixel-ratio:0) {
- select,
- textarea,
- input {
- font-size: 16px;
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/main.ts b/backend/files/misc/templates/angular/templates/main/src/main.ts
deleted file mode 100644
index a699f943c6..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/main.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Entry point of the application.
- * Only platform bootstrapping code should be here.
- * For app-specific initialization, use `app/app.component.ts`.
- */
-
-import { enableProdMode } from '@angular/core';
-import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
-
-import { AppModule } from '@app/app.module';
-import { environment } from '@env/environment';
-
-if (environment.production) {
- enableProdMode();
-}
-
-platformBrowserDynamic()
- .bootstrapModule(AppModule)
- .catch((err) => console.error(err));
diff --git a/backend/files/misc/templates/angular/templates/main/src/polyfills.ts b/backend/files/misc/templates/angular/templates/main/src/polyfills.ts
deleted file mode 100644
index 0ba7eb44fe..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/polyfills.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-/***************************************************************************************************
- * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.
- */
-import '@angular/localize/init';
-
-/**
- * This file includes polyfills needed by Angular and is loaded before the app.
- * You can add your own extra polyfills to this file.
- *
- * This file is divided into 2 sections:
- * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
- * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
- * file.
- *
- * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
- * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
- * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
- *
- * Learn more in https://angular.io/guide/browser-support
- */
-
-/***************************************************************************************************
- * BROWSER POLYFILLS
- */
-
-/** IE10 and IE11 requires the following for NgClass support on SVG elements */
-// import 'classlist.js'; // Run `npm install --save classlist.js`.
-
-/**
- * Web Animations `@angular/platform-browser/animations`
- * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
- * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
- */
-// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
-
-/**
- * By default, zone.js will patch all possible macroTask and DomEvents
- * user can disable parts of macroTask/DomEvents patch by setting following flags
- * because those flags need to be set before `zone.js` being loaded, and webpack
- * will put import in the top of bundle, so user need to create a separate file
- * in this directory (for example: zone-flags.ts), and put the following flags
- * into that file, and then add the following code before importing zone.js.
- * import './zone-flags';
- *
- * The flags allowed in zone-flags.ts are listed here.
- *
- * The following flags will work for all browsers.
- *
- * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
- * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
- * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
- *
- * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
- * with the following flag, it will bypass `zone.js` patch for IE/Edge
- *
- * (window as any).__Zone_enable_cross_context_check = true;
- *
- */
-
-/***************************************************************************************************
- * Zone JS is required by default for Angular itself.
- */
-import 'zone.js/dist/zone'; // Included with Angular CLI.
-
-/***************************************************************************************************
- * APPLICATION IMPORTS
- */
diff --git a/backend/files/misc/templates/angular/templates/main/src/robots.txt b/backend/files/misc/templates/angular/templates/main/src/robots.txt
deleted file mode 100755
index d0e5f1be6b..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/robots.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# www.robotstxt.org/
-
-# Allow crawling of all content
-User-agent: *
-Disallow:
diff --git a/backend/files/misc/templates/angular/templates/main/src/test.ts b/backend/files/misc/templates/angular/templates/main/src/test.ts
deleted file mode 100644
index 33c16d3b95..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/test.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Prepare environment for unit tests.
- * This file is required by karma.conf.js and loads recursively all the .spec and framework files.
- */
-
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
-
-declare const require: {
- context(
- path: string,
- deep?: boolean,
- filter?: RegExp
- ): {
- keys(): string[];
- (id: string): T;
- };
-};
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/backend/files/misc/templates/angular/templates/main/src/theme/crud.scss b/backend/files/misc/templates/angular/templates/main/src/theme/crud.scss
deleted file mode 100644
index 829e7718da..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/theme/crud.scss
+++ /dev/null
@@ -1,417 +0,0 @@
-
-// Importing material theming such that we can de-reference variables in active theme.
-@import "@angular/material/theming";
-
-/*
- * Custom shared classes needed to wire up CRUD components correctly.
- */
-
-// Elements needing to absolutely position buttons and widgets.
-.relativized {
- position: relative;
-}
-
-// Elements wanting to right align their content.
-.right-aligned {
- text-align: right;
- width: 100%;
- display: block !important;
-}
-
-// Elements wanting to fill the entire available width.
-.fill-width {
- width: 100%;
-}
-
-.mat-list-item {
- transition-property: background-color;
- transition-duration: .3s;
-}
-
-.mat-list-item:hover {
- background-color: mat-color($app-primary, 100);
- transition-property: background-color;
- transition-duration: .3s;
-}
-
-.mat-list-item.active {
- background-color: mat-color($app-primary, 300);
- transition-property: background-color;
- transition-duration: .3s;
-}
-
-/*
- * Styles for CRUD components and more specifically its actual material table,
- * and its wrapper elements.
- */
-.component-wrapper {
- position: relative;
- padding-top: 1rem;
- margin-bottom: 1rem;
-
- .grid-wrapper {
- min-width: fit-content;
- margin-left: 1rem;
- margin-right: 1rem;
-
- .create-button {
- position: absolute !important;
- top: 0;
- right: 0;
- color: mat-color($app-primary, 500);
- }
-
- // Actual material data table for CRUD components.
- table {
- padding-top: 2.5rem;
- padding-left: 1rem;
- padding-right: 1rem;
- width: 100%;
-
- tr {
- transition-property: background-color;
- transition-duration: 0.2s;
-
- th, td {
- display: none;
- max-width: 80px;
- }
-
- th.text-header mat-label {
- display: block;
- margin-top: -1rem;
- }
-
- td {
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
- padding-right: 1.5rem;
-
- // View details parts of material table.
- .details-sheet {
- position: relative;
- display: flex;
- flex-wrap: wrap;
- padding-left: 2rem;
- padding-right: 2rem;
-
- a {
- text-decoration: none;
- }
-
- // Edit details button.
- .edit-button {
- position: absolute;
- bottom: 0;
- right: 0;
- padding-right: 0;
- border-radius: 15px 0 0 0;
- }
-
- // 'Card' that shows details of entities.
- .details {
- flex-grow: 1;
- width: calc(100% - 1rem);
- margin-right: 1rem;
-
- // Descriptive label for entity field.
- label {
- display: block;
- margin-top: 1rem;
- margin-bottom: 0.5rem;
- font-weight: bold;
- }
-
- // Content of entity field.
- span {
- white-space: normal;
- display: block;
- }
- }
- }
- }
-
- // Without this no columns will show when screen is very small
- th:nth-child(1),
- td:nth-child(1) {
- display: table-cell;
- }
-
- // Headers
- th.mat-header-cell {
- border-bottom: none;
- // Filtering text boxes
- .filter-textbox {
- float: left;
- font-size: 10px;
- width: calc(100% - 70px);
- border-bottom: none;
- }
-
- // Sort buttons
- .sort-button {
- margin-top: 2px;
- float: right;
- width: 70px;
- box-sizing: border-box;
- padding-left: 0;
- padding-right: 0;
- }
- }
-
- // Needed to make sure we always display delete row buttons.
- td.delete-column,
- th.delete-column {
- display: table-cell;
- width: 70px;
- text-align: right;
- padding-right: 0;
- color: mat-color($app-primary, 500);
- }
-
- // Necessary to make it possible to toggle rows such that they become visible once clicked.
- td.hidden,
- th.hidden {
- display: none !important;
- }
-
- // Needed to make sure details row always has no padding, to align details with the rest of the table.
- td.mat-column-details {
- padding-left: 0;
- padding-right: 0;
- }
- }
-
- // Class for when row has been toggled to display details.
- tr.visible-details {
- td {
- background-color: mat-color($app-primary, 700);
- }
- }
-
- tr.mat-row {
- height: 0;
- td {
- border-bottom: none;
- }
- }
-
- tr.row, tr.selected {
- transition-property: background-color;
- transition-duration: .3s;
- height: 37px;
- td {
- border-top: solid 1px rgba(0,0,0,.2);
- }
- }
- tr.selected {
- background-color: mat-color($app-primary, 300);
- }
-
- // Making sure we communicate that column is clickable and give some visual clues.
- tr.selected:hover,
- tr.row:hover {
- cursor: pointer;
- background-color: mat-color($app-primary, 100);
- transition-property: background-color;
- transition-duration: .3s;
- }
-
- // Row that displays details.
- tr.details-row {
- cursor: inherit;
- background-color: transparent !important;
- }
-
- // Important ro make sure details doesn't appear to be clickable.
- tr.details-row:hover {
- cursor: inherit;
- }
- tr.hidden {
- display: none;
- }
- }
- }
-}
-
-.button-icon {
- cursor: pointer;
-}
-
-/*
- * Overrides to make design responsive, as in working on smaller devices.
- */
-@media screen and (min-width: 590px) {
- .component-wrapper {
- table {
- tr {
- // Ensuring the first column is always visible.
- th:nth-child(1),
- td:nth-child(1) {
- display: table-cell;
- }
- }
- }
- }
-}
-
-@media screen and (min-width: 700px) {
- .component-wrapper {
- table {
- tr {
- // Ensuring the first column is always visible.
- th:nth-child(2),
- td:nth-child(2) {
- display: table-cell;
- }
- td {
- .details-sheet {
- .details {
- width: calc(50% - 1rem) !important;
- margin-right: 1rem;
- }
- }
- }
- }
- }
- }
-}
-
-@media screen and (min-width: 1080px) {
- .component-wrapper {
- table {
- tr {
- th:nth-child(3),
- td:nth-child(3) {
- display: table-cell;
- }
- }
- }
- }
-}
-
-@media screen and (min-width: 1420px) {
- .component-wrapper {
- table {
- tr {
- th:nth-child(4),
- td:nth-child(4) {
- display: table-cell;
- }
- }
- }
- }
-}
-
-@media screen and (min-width: 1620px) {
- .component-wrapper {
- table {
- tr {
- th:nth-child(5),
- td:nth-child(5) {
- display: table-cell;
- }
- }
- }
- }
-}
-
-@media screen and (min-width: 2048px) {
- .component-wrapper {
- table {
- tr {
- th:nth-child(6),
- td:nth-child(6) {
- display: table-cell;
- }
- }
- }
- }
-}
-
-.invisible {
- display: none;
-}
-
-mat-slide-toggle.entity-edit-field {
- margin-top: 19px;
-}
-
-.entity-edit-field {
- vertical-align: top;
- width: calc(100% - 1.2rem);
- margin-right: 1rem;
- display: inline-block;
- mat-icon {
- color: rgb(128, 128, 128);
- font-size: 1.1rem !important;
- }
-}
-
-.entity-edit-field-wide {
- width: calc(100% - 1.2rem);
- display: inline-block;
- mat-icon {
- color: rgb(128, 128, 128);
- font-size: 1.1rem !important;
- }
-}
-
-@media screen and (min-width: 800px) {
- .entity-edit-field {
- width: calc(50% - 1.2rem);
- margin-right: 1rem;
- text-transform: capitalize;
- display: inline-block;
- }
- .entity-edit-field:only-child {
- width: calc(100% - 1.2rem);
- }
- .mat-dialog-content {
- min-width: 500px;
- }
- .entity-edit-field-wide {
- width: calc(100% - 1.2rem);
- text-transform: capitalize;
- display: inline-block;
- }
-}
-
-.expandable-table {
- tr:last-child td.mat-cell { border: none; }
- tr.expanded-row {
- height: 0;
- background-color: transparentize($color: rgba(0,0,0), $amount: 0.9);
- }
- .expandable-row {
- cursor: pointer;
- td {
- .text-truncate:not(.large-col) {
- max-width: calc(100vw / 3.5);
- }
- .text-truncate.large-col {
- max-width: 70vw;
- }
- }
- }
- .details-row {
- overflow: hidden;
- display: flex;
- }
-}
-
-.youtube-container {
- position: relative;
- width: 100%;
- height: 0;
- padding-bottom: 56.25%;
-}
-
-.youtube-container iframe {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/theme/theme-variables.scss b/backend/files/misc/templates/angular/templates/main/src/theme/theme-variables.scss
deleted file mode 100644
index 7c6dc8de5d..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/theme/theme-variables.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Application global variables.
- */
-
-// Angular Material custom theme
-// See https://material.angular.io/guide/theming for more details.
-//
-// You can also read https://medium.com/@tomastrajan/the-complete-guide-to-angular-material-themes-4d165a9d24d1
-// for more insight about Angular Material theming.
-
-@import "@angular/material/theming";
-
-// Define the palettes for your theme using the Material Design palettes available in palette.scss
-// (imported above). For each palette, you can optionally specify a default, lighter, and darker
-// hue.
-$app-primary: mat-palette($[[palette]]);
-// stylelint-disable-next-line value-keyword-case
-$app-accent: mat-palette($mat-pink, A200, A100, A400);
-
-// The warn palette is optional (defaults to red).
-$app-warn: mat-palette($mat-red);
-
-// Create the theme object (a Sass map containing all of the palettes).
-$app-theme: [[theme]]($app-primary, $app-accent, $app-warn);
-
-// Material design icons font path
-$material-design-icons-font-directory-path: "~material-design-icons-iconfont/dist/fonts/";
diff --git a/backend/files/misc/templates/angular/templates/main/src/theme/theme.scss b/backend/files/misc/templates/angular/templates/main/src/theme/theme.scss
deleted file mode 100644
index 18bbe8872c..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/theme/theme.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Global application theme.
- * Framework overrides and customization goes here.
- */
-
-// stylelint-disable-next-line selector-max-universal
-* {
- box-sizing: border-box;
-}
-
-html,
-body {
- display: flex;
- flex-direction: column;
- margin: 0;
- height: 100%;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/ar.json b/backend/files/misc/templates/angular/templates/main/src/translations/ar.json
deleted file mode 100644
index ea85915d07..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/ar.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "عن",
- "Hello world!": "مرحبا بالعالم!",
- "Home": "وطن",
- "Logged in as": "تسجيل الدخول ك",
- "Login": "تسجيل الدخول",
- "Logout": "تسجيل الخروج",
- "Password": "شعار",
- "Password is required": "كلمة المرور مطلوبة",
- "Username": "اسم المستخدم",
- "Username is required": "مطلوب اسم مستخدم",
- "Username or password incorrect.": "اسم المستخدم أو كلمة المرور غير صحيحة.",
- "Remember me": "تذكرني",
- "Version": "الإصدار",
- "Save": "أنقذ",
- "Cancel": "إلغاء الأمر",
- "Edit": "حرر",
- "Create": "خلق",
- "Filter": "راووق",
- "Delete this record": "حذف هذا السجل",
- "Choose a ": "اختر "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/de.json b/backend/files/misc/templates/angular/templates/main/src/translations/de.json
deleted file mode 100644
index af322cb8b5..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/de.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "Über",
- "Hello world!": "Hallo Welt!",
- "Home": "Heim",
- "Logged in as": "Angemeldet als",
- "Login": "Login",
- "Logout": "Ausloggen",
- "Password": "Passwort",
- "Password is required": "Passwort ist erforderlich",
- "Username": "Nutzername",
- "Username is required": "Benutzername ist erforderlich",
- "Username or password incorrect.": "Benutzername oder Passwort falsch.",
- "Remember me": "Erinnern Sie sich an mich",
- "Version": "Version",
- "Save": "Retten",
- "Cancel": "Abbrechen",
- "Edit": "Redigieren",
- "Create": "Schaffen",
- "Filter": "Filter",
- "Delete this record": "Diesen Datensatz löschen",
- "Choose a ": "Wählen Sie eine "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/el.json b/backend/files/misc/templates/angular/templates/main/src/translations/el.json
deleted file mode 100644
index 6c6315960c..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/el.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "Περίπου",
- "Hello world!": "Γεια σου κόσμε!",
- "Home": "Σπίτι",
- "Logged in as": "Συνδεδεμένος ως",
- "Login": "Σύνδεση",
- "Logout": "Αποσύνδεση",
- "Password": "Κωδικός πρόσβασης",
- "Password is required": "Απαιτείται κωδικός πρόσβασης",
- "Username": "Όνομα χρήστη",
- "Username is required": "Απαιτείται όνομα χρήστη",
- "Username or password incorrect.": "Το όνομα χρήστη ή ο κωδικός πρόσβασης δεν είναι σωστά.",
- "Remember me": "Να με θυμάσαι",
- "Version": "Εκδοχή",
- "Save": "Σώζω",
- "Cancel": "Ακυρώνω",
- "Edit": "Επεξεργασία",
- "Create": "Δημιουργώ",
- "Filter": "Φίλτρο",
- "Delete this record": "Διαγραφή αυτής της εγγραφής",
- "Choose a ": "Επιλέξτε ένα "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/en-US.json b/backend/files/misc/templates/angular/templates/main/src/translations/en-US.json
deleted file mode 100644
index f11089b156..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/en-US.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "About",
- "Hello world!": "Jo dudes!",
- "Home": "Home",
- "Logged in as": "Logged in as",
- "Login": "Login",
- "Logout": "Logout",
- "Password": "Password",
- "Password is required": "Password is required",
- "Username": "Username",
- "Username is required": "Username is required",
- "Username or password incorrect.": "Username or password incorrect.",
- "Remember me": "Remember me",
- "Version": "Version",
- "Save": "Save",
- "Cancel": "Cancel",
- "Edit": "Edit",
- "Create": "Create",
- "Filter": "Filter",
- "Delete this record": "Delete this record",
- "Choose a ": "Choose a "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/es.json b/backend/files/misc/templates/angular/templates/main/src/translations/es.json
deleted file mode 100644
index 7dbf28e30a..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/es.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "Acerca de",
- "Hello world!": "¡Hola mundo!",
- "Home": "Hogar",
- "Logged in as": "Ha iniciado sesión como",
- "Login": "Iniciar sesión",
- "Logout": "Cerrar sesión",
- "Password": "Contraseña",
- "Password is required": "Se requiere contraseña",
- "Username": "Nombre de usuario",
- "Username is required": "Se requiere nombre de usuario",
- "Username or password incorrect.": "Nombre de usuario o contraseña incorrectos.",
- "Remember me": "Recuérdame",
- "Version": "Versión",
- "Save": "Salvar",
- "Cancel": "Cancelar",
- "Edit": "Editar",
- "Create": "Crear",
- "Filter": "Filtro",
- "Delete this record": "Eliminar este registro",
- "Choose a ": "Elija un "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/fr.json b/backend/files/misc/templates/angular/templates/main/src/translations/fr.json
deleted file mode 100644
index 56425f7206..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/fr.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "Environ",
- "Hello world!": "Salut tout le monde!",
- "Home": "Domicile",
- "Logged in as": "Connecté en tant que",
- "Login": "Connexion",
- "Logout": "Se déconnecter",
- "Password": "Mot de passe",
- "Password is required": "Le mot de passe est requis",
- "Username": "Nom d'utilisateur",
- "Username is required": "Le nom d'utilisateur est requis",
- "Username or password incorrect.": "Nom d'utilisateur ou mot de passe incorrect.",
- "Remember me": "Souvenez-vous de moi",
- "Version": "Version",
- "Save": "Sauvegarder",
- "Cancel": "Annuler",
- "Edit": "Éditer",
- "Create": "Créer",
- "Filter": "Filtre",
- "Delete this record": "Supprimer cet enregistrement",
- "Choose a ": "Choisissez un "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/hi.json b/backend/files/misc/templates/angular/templates/main/src/translations/hi.json
deleted file mode 100644
index 433128bf24..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/hi.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "करीबन",
- "Hello world!": "हैलो वर्ल्ड!",
- "Home": "घर",
- "Logged in as": "आसकां में लॉग इन किया गया",
- "Login": "लॉगिन",
- "Logout": "लॉग आउट करें",
- "Password": "पासवर्ड",
- "Password is required": "पासवर्ड की आवश्यकता है",
- "Username": "उपयोगकर्ता नाम",
- "Username is required": "उपयोगकर्ता नाम की आवश्यकता है",
- "Username or password incorrect.": "यूजरनेम या पासवर्ड गलत।",
- "Remember me": "मुझे याद रखें",
- "Version": "संस्करण",
- "Save": "रक्षा कर",
- "Cancel": "रद्द करना",
- "Edit": "संपादन करना",
- "Create": "बनाना",
- "Filter": "छानना",
- "Delete this record": "इस रिकॉर्ड को हटाएं",
- "Choose a ": "एक चुनें "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/it.json b/backend/files/misc/templates/angular/templates/main/src/translations/it.json
deleted file mode 100644
index 2bc156c088..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/it.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "Circa",
- "Hello world!": "Salve, mondo!",
- "Home": "Casa",
- "Logged in as": "Accesso come",
- "Login": "Accesso",
- "Logout": "Disconnettersi",
- "Password": "Parola d'ordine",
- "Password is required": "La password è obbligatoria",
- "Username": "Nome utente",
- "Username is required": "Il nome utente è obbligatorio",
- "Username or password incorrect.": "Nome utente o password non corretti.",
- "Remember me": "Ricordati di me",
- "Version": "Versione",
- "Save": "Salvare",
- "Cancel": "Annulla",
- "Edit": "Redigere",
- "Create": "Creare",
- "Filter": "Filtro",
- "Delete this record": "Eliminare questo record",
- "Choose a ": "Scegliere un "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/iw.json b/backend/files/misc/templates/angular/templates/main/src/translations/iw.json
deleted file mode 100644
index 52a69bb2e4..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/iw.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "על",
- "Hello world!": "שלום לך עולם!",
- "Home": "הביתה",
- "Logged in as": "מחובר כ",
- "Login": "כניסה",
- "Logout": "התנתק",
- "Password": "סיסמה",
- "Password is required": "דרושה סיסמה",
- "Username": "שם משתמש",
- "Username is required": "נדרש שם משתמש",
- "Username or password incorrect.": "שם משתמש או סיסמה שגויים.",
- "Remember me": "זכור אותי",
- "Version": "גירסה",
- "Save": "שמר",
- "Cancel": "ביטל",
- "Edit": "עריכה",
- "Create": "יצר",
- "Filter": "מסנן",
- "Delete this record": "מחק רשומה זו",
- "Choose a ": "בחר "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/no.json b/backend/files/misc/templates/angular/templates/main/src/translations/no.json
deleted file mode 100644
index 033f12aee0..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/no.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "Om",
- "Hello world!": "Halla kompis!",
- "Home": "Hjem",
- "Logged in as": "Innlogget som",
- "Login": "Logg inn",
- "Logout": "Logg ut",
- "Password": "Passord",
- "Password is required": "Passord er påkrevd",
- "Username": "Brukernavn",
- "Username is required": "Brukernavn er påkrevd",
- "Username or password incorrect.": "Brukernavnet eller passordet er feil.",
- "Remember me": "Husk meg",
- "Version": "Versjon",
- "Save": "Lagre",
- "Cancel": "Avbryt",
- "Edit": "Rediger",
- "Create": "Lag",
- "Filter": "Filtrer",
- "Delete this record": "Slett denne raden",
- "Choose a ": "Velg en "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/pt.json b/backend/files/misc/templates/angular/templates/main/src/translations/pt.json
deleted file mode 100644
index fe0b036853..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/pt.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "Sobre",
- "Hello world!": "Olá, mundo!",
- "Home": "Casa",
- "Logged in as": "Insessão como",
- "Login": "Login",
- "Logout": "Registar-se",
- "Password": "Senha",
- "Password is required": "A palavra-passe é necessária",
- "Username": "Nome de utilizador",
- "Username is required": "O nome de utilizador é necessário",
- "Username or password incorrect.": "Nome de utilizador ou palavra-passe incorreto.",
- "Remember me": "Lembre-se de mim",
- "Version": "Versão",
- "Save": "Salvar",
- "Cancel": "Cancelar",
- "Edit": "Editar",
- "Create": "Criar",
- "Filter": "Filtro",
- "Delete this record": "Apague este registo",
- "Choose a ": "Escolha um "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/translations/zh.json b/backend/files/misc/templates/angular/templates/main/src/translations/zh.json
deleted file mode 100644
index 21a484b771..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/translations/zh.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "APP_NAME": "[[name]]",
- "About": "大约",
- "Hello world!": "世界您好!",
- "Home": "家",
- "Logged in as": "登录时",
- "Login": "登录",
- "Logout": "注销",
- "Password": "密码",
- "Password is required": "需要密码",
- "Username": "用户名",
- "Username is required": "需要用户名",
- "Username or password incorrect.": "用户名或密码不正确。",
- "Remember me": "记住我",
- "Version": "版本",
- "Save": "救",
- "Cancel": "取消",
- "Edit": "编辑",
- "Create": "创造",
- "Filter": "滤波器",
- "Delete this record": "删除此记录",
- "Choose a ": "选择 "
-}
diff --git a/backend/files/misc/templates/angular/templates/main/src/typings.d.ts b/backend/files/misc/templates/angular/templates/main/src/typings.d.ts
deleted file mode 100644
index 7306c36f18..0000000000
--- a/backend/files/misc/templates/angular/templates/main/src/typings.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Extra typings definitions
- */
-
-// Allow .json files imports
-declare module '*.json';
-
-// SystemJS module definition
-declare var module: NodeModule;
-interface NodeModule {
- id: string;
-}
diff --git a/backend/files/misc/templates/angular/templates/main/tsconfig.app.json b/backend/files/misc/templates/angular/templates/main/tsconfig.app.json
deleted file mode 100644
index 82d91dc4a4..0000000000
--- a/backend/files/misc/templates/angular/templates/main/tsconfig.app.json
+++ /dev/null
@@ -1,15 +0,0 @@
-/* To learn more about this file see: https://angular.io/config/tsconfig. */
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "outDir": "./out-tsc/app",
- "types": []
- },
- "files": [
- "src/main.ts",
- "src/polyfills.ts"
- ],
- "include": [
- "src/**/*.d.ts"
- ]
-}
diff --git a/backend/files/misc/templates/angular/templates/main/tsconfig.json b/backend/files/misc/templates/angular/templates/main/tsconfig.json
deleted file mode 100644
index e4d2a63b0b..0000000000
--- a/backend/files/misc/templates/angular/templates/main/tsconfig.json
+++ /dev/null
@@ -1,38 +0,0 @@
-/* To learn more about this file see: https://angular.io/config/tsconfig. */
-{
- "compileOnSave": false,
- "compilerOptions": {
- "outDir": "./dist/out-tsc",
- "sourceMap": true,
- "declaration": false,
- "module": "es2020",
- "moduleResolution": "node",
- "emitDecoratorMetadata": true,
- "experimentalDecorators": true,
- "importHelpers": true,
- "noImplicitAny": true,
- "suppressImplicitAnyIndexErrors": true,
- "target": "es2015",
- "typeRoots": [
- "node_modules/@types"
- ],
- "lib": [
- "es2018",
- "dom"
- ],
- "baseUrl": "./",
- "paths": {
- "@app/*": ["src/app/*"],
- "@core": ["src/app/@core"],
- "@core/*": ["src/app/@core/*"],
- "@shared": ["src/app/@shared"],
- "@shared/*": ["src/app/@shared/*"],
- "@env/*": ["src/environments/*"]
- }
- },
- "angularCompilerOptions": {
- "fullTemplateTypeCheck": true,
- "strictInjectionParameters": true,
- "preserveWhitespaces": true
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/main/tsconfig.spec.json b/backend/files/misc/templates/angular/templates/main/tsconfig.spec.json
deleted file mode 100644
index 62f15bdea8..0000000000
--- a/backend/files/misc/templates/angular/templates/main/tsconfig.spec.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "outDir": "./out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
- },
- "files": [
- "src/test.ts",
- "src/polyfills.ts"
- ],
- "include": [
- "src/**/*.spec.ts",
- "src/**/*.mock.ts",
- "src/**/*.d.ts"
- ]
-}
diff --git a/backend/files/misc/templates/angular/templates/main/tslint.json b/backend/files/misc/templates/angular/templates/main/tslint.json
deleted file mode 100644
index c0eabfb3b5..0000000000
--- a/backend/files/misc/templates/angular/templates/main/tslint.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "extends": [
- "tslint:recommended",
- "tslint-config-prettier"
- ],
- "rulesDirectory": [
- "codelyzer"
- ],
- "rules": {
- "array-type": false,
- "arrow-parens": false,
- "deprecation": {
- "severity": "warning"
- },
- "import-blacklist": [
- true,
- "rxjs/Rx"
- ],
- "max-line-length": [
- true,
- 120
- ],
- "member-access": false,
- "member-ordering": [
- true,
- {
- "order": [
- "public-static-field",
- "protected-static-field",
- "private-static-field",
- "public-instance-field",
- "protected-instance-field",
- "private-instance-field",
- "public-static-method",
- "protected-static-method",
- "private-static-method",
- "constructor",
- "public-instance-method",
- "protected-instance-method",
- "private-instance-method"
- ]
- }
- ],
- "interface-name": false,
- "max-classes-per-file": false,
- "no-consecutive-blank-lines": false,
- "no-console": [
- true,
- "debug",
- "time",
- "timeEnd",
- "trace"
- ],
- "no-duplicate-variable": [
- true,
- "check-parameters"
- ],
- "no-empty": false,
- "no-inferrable-types": [
- true,
- "ignore-params"
- ],
- "no-non-null-assertion": true,
- "no-redundant-jsdoc": true,
- "no-switch-case-fall-through": true,
- "no-unnecessary-initializer": true,
- "object-literal-sort-keys": false,
- "quotemark": [
- true,
- "single"
- ],
- "typedef": [
- true,
- "parameter",
- "property-declaration"
- ],
- "variable-name": false,
- "no-var-requires": false,
- "object-literal-key-quotes": false,
- "ordered-imports": false,
- "trailing-comma": false,
- "no-conflicting-lifecycle": true,
- "no-output-native": true,
- "directive-selector": [
- true,
- "attribute",
- "app",
- "camelCase"
- ],
- "component-selector": [
- true,
- "element",
- "page",
- "app",
- "kebab-case"
- ],
- "template-banana-in-box": true,
- "template-no-negated-async": true,
- "no-output-on-prefix": true,
- "no-inputs-metadata-property": true,
- "no-outputs-metadata-property": true,
- "no-host-metadata-property": true,
- "no-input-rename": true,
- "no-output-rename": true,
- "use-lifecycle-interface": true,
- "use-pipe-transform-interface": true,
- "component-class-suffix": true,
- "contextual-lifecycle": true,
- "directive-class-suffix": true
- }
-}
diff --git a/backend/files/misc/templates/angular/templates/misc/form-control.ts b/backend/files/misc/templates/angular/templates/misc/form-control.ts
deleted file mode 100644
index ef98f91fe6..0000000000
--- a/backend/files/misc/templates/angular/templates/misc/form-control.ts
+++ /dev/null
@@ -1 +0,0 @@
- public _[[form-control-name]]: FormControl;
diff --git a/backend/files/misc/templates/angular/templates/misc/import-only-grid.ts b/backend/files/misc/templates/angular/templates/misc/import-only-grid.ts
deleted file mode 100644
index 6f44258f28..0000000000
--- a/backend/files/misc/templates/angular/templates/misc/import-only-grid.ts
+++ /dev/null
@@ -1 +0,0 @@
-import { [[component-name]] } from '../components/[[component-folder]]/[[component-filename]]';
diff --git a/backend/files/misc/templates/angular/templates/misc/import.ts b/backend/files/misc/templates/angular/templates/misc/import.ts
deleted file mode 100644
index eea5d5512c..0000000000
--- a/backend/files/misc/templates/angular/templates/misc/import.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { [[component-name]] } from './components/[[component-folder]]/[[component-filename]]';
-import { [[component-edit-name]] } from './components/[[component-folder]]/modals/[[component-edit-filename]]';
diff --git a/backend/files/misc/templates/angular/templates/misc/router-declaration.ts b/backend/files/misc/templates/angular/templates/misc/router-declaration.ts
deleted file mode 100644
index e3313099b9..0000000000
--- a/backend/files/misc/templates/angular/templates/misc/router-declaration.ts
+++ /dev/null
@@ -1 +0,0 @@
- { path: 'crud/[[router-url]]', component: [[component-name]], data: { title: marker('[[router-url]]') } },
diff --git a/backend/files/misc/templates/angular/templates/misc/router-link.html b/backend/files/misc/templates/angular/templates/misc/router-link.html
deleted file mode 100644
index ae4ee0579f..0000000000
--- a/backend/files/misc/templates/angular/templates/misc/router-link.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- [[name]]
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.bool.html b/backend/files/misc/templates/angular/templates/view-details/view-details.bool.html
deleted file mode 100644
index 7797398427..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.bool.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
- {{'[[column-name]]' | translate}}
- check_box
- check_box_outline_blank
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.date.html b/backend/files/misc/templates/angular/templates/view-details/view-details.date.html
deleted file mode 100644
index d2afeae74f..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.date.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
- {{'[[column-name]]' | translate}}
- {{el['[[column-name]]'] | formatDate}}
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.email.html b/backend/files/misc/templates/angular/templates/view-details/view-details.email.html
deleted file mode 100644
index 9ccafa9747..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.email.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
- {{'[[column-name]]' | translate}}
- {{el['[[column-name]]']}}
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.file.html b/backend/files/misc/templates/angular/templates/view-details/view-details.file.html
deleted file mode 100644
index 02b5c929e3..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.file.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
- {{'[[column-name]]' | translate}}
- {{el['[[column-name]]'] ? el['[[column-name]]'].substring(0, el['[[column-name]]'].indexOf(';')) : ''}}
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.html b/backend/files/misc/templates/angular/templates/view-details/view-details.html
deleted file mode 100644
index 4a69071645..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
- {{'[[column-name]]' | translate}}
- {{el['[[column-name]]']}}
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.image.html b/backend/files/misc/templates/angular/templates/view-details/view-details.image.html
deleted file mode 100644
index 3c3c0ac0fa..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.image.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
- {{'[[column-name]]' | translate}}
-
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.lookup.html b/backend/files/misc/templates/angular/templates/view-details/view-details.lookup.html
deleted file mode 100644
index 9a2791bc26..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.lookup.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
- {{'[[column-name]]' | translate}}
- {{ getCachedItem('[[lookup_table]]', el['[[column-name]]'], '[[lookup_key]].eq', httpService.[[lookup_table]], '[[lookup_name]]') }}
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.phone.html b/backend/files/misc/templates/angular/templates/view-details/view-details.phone.html
deleted file mode 100644
index d48e760a95..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.phone.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
- {{'[[column-name]]' | translate}}
- {{el['[[column-name]]']}}
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.url.html b/backend/files/misc/templates/angular/templates/view-details/view-details.url.html
deleted file mode 100644
index 28078f1a9e..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.url.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
- {{'[[column-name]]' | translate}}
- {{el['[[column-name]]']}}
-
diff --git a/backend/files/misc/templates/angular/templates/view-details/view-details.youtube.html b/backend/files/misc/templates/angular/templates/view-details/view-details.youtube.html
deleted file mode 100644
index e378643f9b..0000000000
--- a/backend/files/misc/templates/angular/templates/view-details/view-details.youtube.html
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
{{'[[column-name]]' | translate}}
-
-
-
-
diff --git a/backend/files/misc/templates/common/create-angular-service-methods.hl b/backend/files/misc/templates/common/create-angular-service-methods.hl
deleted file mode 100644
index ef1c181546..0000000000
--- a/backend/files/misc/templates/common/create-angular-service-methods.hl
+++ /dev/null
@@ -1,196 +0,0 @@
-
-/*
- * Internal helper file to create service method implementations (Angular style),
- * according to specified [.arguments].
- *
- * Notice, this file creates a service method for every single HTTP endpoint caller
- * has told us he wants to wrap. The files expects its [.arguments] to be in
- * structured format, as created by the structure-endpoint.hl file.
- */
-
-// Iterating through each service endpoint.
-.http-service-methods
-for-each:x:@.arguments/*
-
- // Creating main property for service class.
- .interface:ICrudEntity
- if
- and
- not
- exists:x:@.dp/#/*/verbs/*/put
- not
- exists:x:@.dp/#/*/verbs/*/post
- not
- exists:x:@.dp/#/*/verbs/*/delete
- .lambda
- set-value:x:@.interface
- .:IREntity
- else-if
- and
- not
- exists:x:@.dp/#/*/verbs/*/put
- not
- exists:x:@.dp/#/*/verbs/*/post
- .lambda
- set-value:x:@.interface
- .:IRdEntity
- else-if
- and
- not
- exists:x:@.dp/#/*/verbs/*/put
- not
- exists:x:@.dp/#/*/verbs/*/delete
- .lambda
- set-value:x:@.interface
- .:ICrEntity
- else-if
- and
- not
- exists:x:@.dp/#/*/verbs/*/post
- not
- exists:x:@.dp/#/*/verbs/*/delete
- .lambda
- set-value:x:@.interface
- .:IRuEntity
- else-if
- not
- exists:x:@.dp/#/*/verbs/*/delete
- .lambda
- set-value:x:@.interface
- .:ICruEntity
- else-if
- not
- exists:x:@.dp/#/*/verbs/*/post
- .lambda
- set-value:x:@.interface
- .:IRudEntity
- else-if
- not
- exists:x:@.dp/#/*/verbs/*/put
- .lambda
- set-value:x:@.interface
- .:ICrdEntity
- .method
- set-value:x:@.method
- strings.concat
- .:@"
- /**
- * HTTP CRUD service methods for your '"
- strings.replace:x:@.dp/#/*/component-folder
- .:/
- .:_
- .:@"' entities.
- */
- get "
- strings.replace:x:@.dp/#/*/component-folder
- .:/
- .:_
- .:"() : "
- get-value:x:@.interface
- .:@" {
- return {
-"
-
- // Iterating through each HTTP verb in method group.
- for-each:x:@.dp/#/*/verbs/*
- get-name:x:@.dp/#
- switch:x:-
- case:post
-
- // Adding 'create' method to method group.
- set-value:x:@.method
- strings.concat
- get-value:x:@.method
- .:@"
- create: (args: any) => {
- return this.httpClient.post(
- environment.apiUrl +
- '"
- get-value:x:@.dp/#/././*/url
- .:@"',
- args);
- },
-"
- case:get
-
- // Adding 'read' method to method group.
- set-value:x:@.method
- strings.concat
- get-value:x:@.method
- .:@"
- read: (filter: any) => {
- return this.httpClient.get(
- environment.apiUrl +
- '"
- get-value:x:@.dp/#/././*/url
- .:@"' +
- this.getQueryArgs(filter));
- },
-"
-
- // Adding 'count' method to method group.
- set-value:x:@.method
- strings.concat
- get-value:x:@.method
- .:@"
- count: (filter: any) => {
- return this.httpClient.get(
- environment.apiUrl +
- '"
- get-value:x:@.dp/#/././*/url
- .:@"-count' +
- this.getQueryArgs(filter));
- },
-"
- case:put
-
- // Adding 'update' method to method group.
- set-value:x:@.method
- strings.concat
- get-value:x:@.method
- .:@"
- update: (args: any) => {
- return this.httpClient.put(
- environment.apiUrl +
- '"
- get-value:x:@.dp/#/././*/url
- .:@"',
- args);
- },
-"
- case:delete
-
- // Adding 'delete' method to method group.
- set-value:x:@.method
- strings.concat
- get-value:x:@.method
- .:@"
- delete: (filter: any) => {
- return this.httpClient.delete(
- environment.apiUrl +
- '"
- get-value:x:@.dp/#/././*/url
- .:@"' +
- this.getQueryArgs(filter));
- },
-"
-
- // Closing main property for service class, and trimming superflous characters.
- set-value:x:@.method
- strings.concat
- strings.trim-end:x:@.method
- .:@"
-,"
- .:@"
- }
- }
-"
-
- // Appending currently iterated method groupd to returned value.
- set-value:x:@.http-service-methods
- strings.concat
- get-value:x:@.http-service-methods
- get-value:x:@.method
-
-// Returning TypeScript for method implementations to caller.
-return-value:x:@.http-service-methods
diff --git a/backend/files/misc/templates/common/structure-endpoints.hl b/backend/files/misc/templates/common/structure-endpoints.hl
deleted file mode 100644
index 6b749753e6..0000000000
--- a/backend/files/misc/templates/common/structure-endpoints.hl
+++ /dev/null
@@ -1,188 +0,0 @@
-
-/*
- * Internal helper file to retrieve all CRUD methods, structured format,
- * according to specified [.arguments].
- *
- * Notice, this file simply creates a slightly more organized graph object from
- * the HTTP methods that happens to be of HTTP CRUD type, and only if there
- * exists a "crud-read" type of endpoint, at the very least.
- */
-.result
-
-/*
- * Iterating through each CRUD endpoint.
- *
- * Notice, CRUD [type] of "crud-read" is the "driver", and decides whether
- * or not we should create a component in the first place at all.
- */
-for-each:x:@.arguments/*/endpoints/*/*/type/=crud-read/.
-
- // Figuring out a valid component name, component filename, etc.
- strings.split:x:@.dp/#/*/path
- .:/
- remove-nodes:x:@strings.split/0
- remove-nodes:x:@strings.split/0
- strings.join:x:@strings.split/*
- .:/
- strings.replace-not-of:x:@strings.join
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/_0987654321
- .:_
- strings.replace-not-of:x:@strings.join
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0987654321
- .:_
-
- // Component selector.
- strings.concat
- .:app-
- get-value:x:@strings.replace-not-of
-
- // Component name.
- strings.capitalize:x:@strings.replace-not-of
- strings.concat
- get-value:x:@strings.capitalize
- .:Component
-
- // Component filename.
- strings.concat
- get-value:x:@strings.replace-not-of
- .:.component
-
- // Its "edit" component name.
- strings.concat
- .:Edit
- get-value:x:@strings.capitalize
- .:Component
-
- // Its "edit" component filename.
- strings.concat
- .:edit.
- get-value:x:@strings.replace-not-of
- .:.component
-
- // The component's header
- strings.capitalize:x:@strings.split/0/-
-
- // Table name
- strings.replace:x:@strings.join
- .:/
- .:.
- remove-nodes:x:@strings.split/0
- strings.join:x:@strings.split/*
- .:/
- strings.replace:x:@strings.join
- .:/
- .:.
-
- // Buffer to hold our endpoints data.
- unwrap:x:+/*/*
- .endpoint
- .
- url:x:@.dp/#/*/path
- component-selector:x:@strings.concat/@strings.concat/@strings.concat/@strings.concat/@strings.concat
- component-name:x:@strings.concat/@strings.concat/@strings.concat/@strings.concat
- component-filename:x:@strings.concat/@strings.concat/@strings.concat
- component-folder:x:@strings.replace-not-of/@strings.replace-not-of
- table-name:x:@strings.replace/@strings.replace
- database-name:x:@strings.replace
- component-header:x:@strings.capitalize
- component-edit-name:x:@strings.concat/@strings.concat
- component-edit-filename:x:@strings.concat
- component-routing-url:x:@strings.replace-not-of/@strings.replace-not-of
- verbs
-
- // Finding all related endpoints.
- for-each:x:@.arguments/*/endpoints/*
- if
- eq
- get-value:x:@.dp/#/*/path
- get-value:x:@for-each/@.dp/#/*/path
- .lambda
-
- // Figuring out HTTP client service method name.
- .method
- switch:x:@.dp/#/*/verb
- case:delete
- set-value:x:@.method
- .:delete
- case:post
- set-value:x:@.method
- .:create
- case:put
- set-value:x:@.method
- .:update
- case:get
- set-value:x:@.method
- .:read
- strings.split:x:@.dp/#/*/path
- .:/
- remove-nodes:x:@strings.split/0
- remove-nodes:x:@strings.split/0
- strings.join:x:@strings.split/*
- .:_
- strings.concat
- strings.replace-not-of:x:@strings.join
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0987654321
- .:_
- .:.
- get-value:x:@.method
-
- // Adding input and output arguments to endpoint.
- add:x:./**/input
- get-nodes:x:@.dp/#/*/input/*
- add:x:./**/output
- get-nodes:x:@.dp/#/*/output/*
-
- /*
- * Setting correct verb, unwrapping service method name,
- * and adding currently iterated HTTP verb to temporary [.endpoint],
- * that we later return to caller.
- */
- set-name:x:+/+/*/*
- get-value:x:@.dp/#/*/verb
- unwrap:x:+/*/*/*/service-method-name
- add:x:@.endpoint/*/*/verbs
- .
- verb-name
- service-method-name:x:@strings.concat
- input
- output
- auth
-
- // Adding each role that are allowed to access URL/verb combination.
- for-each:x:@.dp/#/*/auth/*
- unwrap:x:+/*/*
- add:x:@.endpoint/*/*/verbs/0/-/*/auth
- .
- .:x:@.dp/#
- else-if
- and
- eq
- strings.concat
- get-value:x:@for-each/@.dp/#/*/path
- .:-count
- get-value:x:@.dp/#/*/path
- eq
- get-value:x:@.dp/#/*/type
- .:crud-count
- .lambda
-
- // Component's "count" method.
- strings.split:x:@for-each/@.dp/#/*/path
- .:/
- strings.replace-not-of:x:@strings.join/@strings.join
- .:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0987654321
- .:_
- strings.concat
- get-value:x:@strings.replace-not-of
- .:.count
- unwrap:x:+/*/*
- insert-before:x:@.endpoint/0/-/*/verbs
- .
- count-method:x:@strings.concat
-
- // Adding endpoint to temporary [.result] node above.
- add:x:@.result
- get-nodes:x:@.endpoint/*
-
-// Returning results to caller.
-return-nodes:x:@.result/*
diff --git a/backend/files/system/crudifier/generate-frontend.post.hl b/backend/files/system/crudifier/generate-frontend.post.hl
deleted file mode 100644
index afc1f871c6..0000000000
--- a/backend/files/system/crudifier/generate-frontend.post.hl
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Generates a frontend for you.
-.arguments
- templateName:string
- apiUrl:string
- name:string
- copyright:string
- endpoints:*
- deployLocally:bool
- args:*
-.description:Generates a frontend for you according to the given arguments
-.type:internal
-
-// Ensures user is authorized to access endpoint.
-auth.ticket.verify:root
-
-// Sanity checking invocation.
-validators.mandatory:x:@.arguments/*/apiUrl
-validators.url:x:@.arguments/*/apiUrl
-
-// Doing some basic logging.
-log.info:Generating CRUD frontend
- template:x:@.arguments/*/templateName
- apiUrl:x:@.arguments/*/apiUrl
- name:x:@.arguments/*/name
- copyright:x:@.arguments/*/copyright
- deployLocally:x:@.arguments/*/deployLocally
-
-// Figuring out which template/generator to use, and invoking it.
-strings.concat
- .:/misc/templates/
- .:x:@.arguments/*/templateName
- .:/generate.hl
-add:x:+/+/+
- get-nodes:x:@.arguments/*/endpoints
-add:x:+/+
- get-nodes:x:@.arguments/*/args
-unwrap:x:+/*
-io.file.execute:x:@strings.concat
- apiUrl:x:@.arguments/*/apiUrl
- name:x:@.arguments/*/name
- copyright:x:@.arguments/*/copyright
-
-// Creating a log entry with LOC that was generated.
-.no:int:0
-for-each:x:@io.file.execute/*
- strings.split:x:@.dp/#/*
- .:"\n"
- math.increment:x:@.no
- get-count:x:@strings.split/*
-log.info:LOC generated
- loc:x:@.no
- name:x:@.arguments/*/name
-
-/*
- * Creating a ZIP stream from return value of above [io.file.execute]
- * and returning it to client.
- */
-add:x:../*/io.content.zip-stream
- get-nodes:x:@io.file.execute/*
-io.content.zip-stream
-if
- not
- get-value:x:@.arguments/*/deployLocally
- .lambda
-
- /*
- * Caller wants a ZIP file returned, making sure we get HTTP headers correctly applied.
- */
- strings.concat
- .:"attachment; filename=\""
- get-value:x:@.arguments/*/name
- .:".zip\""
- response.headers.set
- Content-Type:application/zip
- Content-Disposition:x:@strings.concat
- Access-Control-Expose-Headers:Content-Disposition
- return-value:x:@io.content.zip-stream
-
-/*
- * Caller wants to deploy frontend locally on server.
- * First deleting folder entirely and re-creating it for simplicity, to
- * make sure folder is empty.
- */
-strings.concat
- .:/etc/frontends/
- get-value:x:@.arguments/*/name
- .:/
-if
- io.folder.exists:x:@strings.concat
- .lambda
-
- // Deleting "frontend" folder.
- io.folder.delete:x:@strings.concat
-
-io.folder.create:x:@strings.concat
-
-// Then figuring out full path for file.
-strings.concat
- .:/etc/frontends/
- get-value:x:@.arguments/*/name
- .:.zip
-
-// Saving ZIP stream.
-io.stream.save-file:x:@strings.concat
- get-value:x:@io.content.zip-stream
-
-// Unzipping file in its current folder and deleting it afterwards.
-io.file.unzip:x:@strings.concat
-io.file.delete:x:@strings.concat
-
-// Returning success to caller.
-return
- result:success
diff --git a/backend/files/system/crudifier/template-args.get.hl b/backend/files/system/crudifier/template-args.get.hl
deleted file mode 100644
index d37396d4f9..0000000000
--- a/backend/files/system/crudifier/template-args.get.hl
+++ /dev/null
@@ -1,20 +0,0 @@
-
-// Returns custom arguments for the specified template.
-.arguments
- name:string
-.description:Returns custom arguments for the specified template
-.type:internal
-
-// Ensures user is authorized to access endpoint.
-auth.ticket.verify:root
-
-// Loads template's README.md file, and returns to caller.
-strings.concat
- .:/misc/templates/
- get-value:x:@.arguments/*/name
- .:/generate.hl
-io.file.load:x:-
-hyper2lambda:x:@io.file.load
-add:x:../*/return-nodes
- get-nodes:x:@hyper2lambda/*/.custom/*
-return-nodes
diff --git a/backend/files/system/crudifier/template.get.hl b/backend/files/system/crudifier/template.get.hl
deleted file mode 100644
index c34b1b79c3..0000000000
--- a/backend/files/system/crudifier/template.get.hl
+++ /dev/null
@@ -1,19 +0,0 @@
-
-// Returns Markdown description for specified [name] template.
-.arguments
- name:string
-.description:Returns Markdown description for the specified template
-.type:internal
-
-// Ensures user is authorized to access endpoint.
-auth.ticket.verify:root
-
-// Loads template's README.md file, and returns to caller.
-strings.concat
- .:/misc/templates/
- get-value:x:@.arguments/*/name
- .:/README.md
-io.file.load:x:-
-unwrap:x:+/*
-return-nodes
- markdown:x:@io.file.load
diff --git a/backend/files/system/crudifier/templates.get.hl b/backend/files/system/crudifier/templates.get.hl
deleted file mode 100644
index 7b2cb30d44..0000000000
--- a/backend/files/system/crudifier/templates.get.hl
+++ /dev/null
@@ -1,23 +0,0 @@
-
-// Returns all templates for generating "stuff" from endpoints.
-.description:Returns all scaffolding templates registered in the system
-.type:internal
-
-// Ensures user is authorized to access endpoint.
-auth.ticket.verify:root
-
-// Returns all templates to caller.
-io.folder.list:/misc/templates/
-for-each:x:-/*
- if
- not
- strings.ends-with:x:@.dp/#
- .:/common/
- .lambda
- strings.split:x:@.dp/#
- .:/
- unwrap:x:+/*/*
- add:x:../*/return-nodes
- .
- :x:@strings.split/0/-
-return-nodes
diff --git a/frontend/src/app/_layout/header/header.component.ts b/frontend/src/app/_layout/header/header.component.ts
index c57acdacfb..0acc6c52cc 100644
--- a/frontend/src/app/_layout/header/header.component.ts
+++ b/frontend/src/app/_layout/header/header.component.ts
@@ -175,12 +175,6 @@ your database of choice, in addition to creating SQL based endpoints. It give yo
settings, such as turning on or off logging, publishing socket messages upon invocation to write endpoints,
authentication and authorisation configuration options, etc.`;
- case 'frontend-generator':
- return `The frontend generator is where you generate your frontends. A frontend is incrementally built
-on top of a backend, so you'll first need to generate a backend before you can generate your frontend.
-Magic comes with a very good angular template our of the box, allowing you to generate a fully fledged
-Angular frontend, providing you with a UI for your database tables with all 4 CRUD operations.`;
-
case 'hyper-ide':
return `Hyper IDE is Magic's integrated IDE, and is particularly good for editing Hyperlambda files.
It also gives you macros, machine learning and AI capabilities, in addition to a whole range of other
@@ -245,23 +239,12 @@ server inaccessible.`;
a diagnostic tool to ensure it is functioning correctly. Automated tests can be created with the "Endpoints"
menu item or manually written in Hyperlambda. You can then run all tests automatically and view any errors that arise.`;
- case 'cryptography':
- return `The cryptography component allows you to manage and administrate your server's
-public and private keys, as well as public keys belonging to others. This allows you to securely
-communicate with other Magic servers and/or clients using cryptographic signatures and encryption.
-Additionally, it allows you to verify cryptographic signatures and payloads received from others.`;
-
case 'log':
return `The Log component in Magic allows you to browse your server's log and filter for specific items.
There are 4 types of log entries you can create: debug, info, error, and fatal. You can configure the log
level to adjust how much is logged. Refer to magic.lambda.logging to understand how you can create
log items from your own Hyperlambda code.`;
- case 'help-center':
- return `The help center component is where you would go to learn, and get access to resources required
-to learning more about Aista Magic Cloud, such as teaching yourself Hyperlambda, and/or learning other things
-related to Aista Magic Cloud.`;
-
case 'user-profile':
return `The Profile component of Magic allows you to customize you profile by changing your password,
theme, and name. However, you cannot change your username or email address due to the need for double
@@ -324,9 +307,6 @@ optin verification and potential referential integrity issues.`;
case 'health-check':
return 'https://polterguy.github.io/documentation/magic/components/assumptions/';
- case 'cryptography':
- return 'https://polterguy.github.io/documentation/magic/components/crypto/';
-
case 'log':
return 'https://polterguy.github.io/documentation/magic/components/log/';
@@ -380,11 +360,6 @@ optin verification and potential referential integrity issues.`;
url: '/endpoint-generator',
exact: false,
},
- {
- name: 'Frontend Generator',
- url: '/frontend-generator',
- exact: false,
- },
{
name: 'Hyper IDE',
url: '/hyper-ide',
@@ -456,21 +431,11 @@ optin verification and potential referential integrity issues.`;
url: '/health-check',
exact: false,
},
- {
- name: 'Cryptography',
- url: '/cryptography',
- exact: false,
- },
{
name: 'Log',
url: '/log',
exact: false,
},
- {
- name: 'Help Center',
- url: '/help-center',
- exact: false,
- },
],
},
{
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/_module/frontend-generator.module.ts b/frontend/src/app/_protected/pages/create/frontend-generator/_module/frontend-generator.module.ts
deleted file mode 100644
index 83187cbbfc..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/_module/frontend-generator.module.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FrontendGeneratorComponent } from '../frontend-generator.component';
-import { FrontendGeneratorRoutingModule } from './frontend-generator.routing.module';
-import { ComponentsModule } from 'src/app/_general/components/components.module';
-import { MaterialModule } from 'src/app/material.module';
-import { AutoGenerateComponent } from '../auto-generate/auto-generate.component';
-import { UploadExistingComponent } from '../upload-existing/upload-existing.component';
-import { FormsModule } from '@angular/forms';
-import { CodemirrorModule } from '@ctrl/ngx-codemirror';
-
-@NgModule({
- declarations: [
- FrontendGeneratorComponent,
- AutoGenerateComponent,
- UploadExistingComponent
- ],
- imports: [
- CommonModule,
- FrontendGeneratorRoutingModule,
- ComponentsModule,
- MaterialModule,
- FormsModule,
- CodemirrorModule
- ]
-})
-export class FrontendGeneratorModule { }
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/_module/frontend-generator.routing.module.ts b/frontend/src/app/_protected/pages/create/frontend-generator/_module/frontend-generator.routing.module.ts
deleted file mode 100644
index f678ea25d1..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/_module/frontend-generator.routing.module.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { NgModule } from '@angular/core';
-import { FrontendGeneratorComponent } from '../frontend-generator.component';
-import { Routes, RouterModule } from '@angular/router';
-
-const routes: Routes = [
- {
- path: '',
- component: FrontendGeneratorComponent
- }
-];
-
-@NgModule({
- imports: [RouterModule.forChild(routes)],
- exports: [RouterModule]
-})
-export class FrontendGeneratorRoutingModule { }
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/auto-generate/auto-generate.component.html b/frontend/src/app/_protected/pages/create/frontend-generator/auto-generate/auto-generate.component.html
deleted file mode 100644
index e5044c2999..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/auto-generate/auto-generate.component.html
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
-
Step 1 - App type & name
-
-
-
-
-
- apps
- |
-
-
- {{item.name}}
-
-
-
-
-
-
-
-
- edit
- |
-
-
- {{CommonErrorMessages.appNameWithUppercaseHyphen}}
-
-
-
-
-
-
-
-
Step 2 - App appearance
-
-
-
-
-
- palette
- |
-
-
- {{item.name}}
-
-
-
-
-
-
-
-
- invert_colors
- |
-
-
- {{item.name}}
-
-
-
-
-
-
-
-
-
-
-
- {{item.name}}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{item.name}}
-
-
-
-
-
-
-
-
-
-
-
-
Step 5 - App endpoints
-
-
-
-
-
-
-
-
- You have no endpoints, create endpoints here
-
-
-
-
-
- {{item?.verb}} {{item.path}}
-
-
-
-
-
-
-
-
-
-
Step 6 - Homepage
-
-
-
-
-
Step 7 - Copyright
-
-
-
- copyright
- |
-
-
-
-
-
-
-
-
-
-
- Download
-
-
-
- Generate
-
-
-
-
-
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/auto-generate/auto-generate.component.scss b/frontend/src/app/_protected/pages/create/frontend-generator/auto-generate/auto-generate.component.scss
deleted file mode 100644
index 76c9ae33af..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/auto-generate/auto-generate.component.scss
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-@import "../../../../../../assets/styles/_variables/colors.scss";
-@import "../../../../../../assets/styles/_variables/mixin.scss";
-
-.frontend-generator ::ng-deep {
- .mat-chip {
- font-size: 12px;
- min-height: 25px;
- }
-
- .mat-checkbox-label {
- margin-left: 12px;
- white-space: pre-wrap;
- word-break: break-word;
- }
-
- .CodeMirror {
- height: 100%;
- max-height: 300px;
- }
-}
-
-.fake-container {
- height: 400px;
-}
-
-.endpoints-list {
- max-height: 408px;
- overflow: hidden auto;
- @include scrollbar($aista_default_alt, $aista_default_grey4, 5px);
-}
-
-.link {
- text-decoration: none;
-}
-
-.methods {
- min-width: 50px;
- min-height: 20px;
- width: 50px;
- height: 20px;
- font-size: 10px;
- border-radius: 45px;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- text-transform: uppercase;
- color: $aista_default;
-
- &.get {
- background-color: $aista_info;
- }
-
- &.post {
- background-color: $aista_success;
- }
-
- &.put,
- &.patch {
- background-color: $aista_warning;
- }
-
- &.delete {
- background-color: $aista_error;
- }
-}
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/auto-generate/auto-generate.component.ts b/frontend/src/app/_protected/pages/create/frontend-generator/auto-generate/auto-generate.component.ts
deleted file mode 100644
index 84bd26678e..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/auto-generate/auto-generate.component.ts
+++ /dev/null
@@ -1,458 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { Component, OnInit } from '@angular/core';
-import { GeneralService } from 'src/app/_general/services/general.service';
-import { Endpoint } from 'src/app/_protected/models/common/endpoint.model';
-import { BackendService } from 'src/app/_general/services/backend.service';
-import { EndpointService } from '../../../../../_general/services/endpoint.service';
-import { CrudifyService } from '../../../../../_general/services/crudify.service';
-import { CodemirrorActionsService } from '../../../../../_general/services/codemirror-actions.service';
-import { CommonErrorMessages } from 'src/app/_general/classes/common-error-messages';
-import { CommonRegEx } from 'src/app/_general/classes/common-regex';
-
-/**
- * Endpoint model class, for allowing user to select which endpoints
- * he or she wants to include in the generated frontend.
- */
-class EndpointEx extends Endpoint {
-
- /**
- * Whether or not endpoint has been selected.
- */
- selected: boolean;
-}
-
-@Component({
- selector: 'app-auto-generate',
- templateUrl: './auto-generate.component.html',
- styleUrls: ['./auto-generate.component.scss']
-})
-export class AutoGenerateComponent implements OnInit {
-
- frontendTypes: any = FrontendTypes;
- frontendType: string = '';
- frontendName: string = '';
- isApp: boolean = true;
- colorPalettes: any = [];
- colorPalette: string = '';
- themes: any = [];
- theme: string = '';
- endpoints: EndpointEx[];
- databases: string[] = [];
- tables: any = [];
- template: string = '';
- copyRight: string = 'Automatically generated by Magic';
- codemirrorOptions: any;
-
- CommonRegEx = CommonRegEx;
- CommonErrorMessages = CommonErrorMessages;
-
- constructor(
- private crudifyService: CrudifyService,
- private generalService: GeneralService,
- private backendService: BackendService,
- private endpointsService: EndpointService,
- private codemirrorActionsService: CodemirrorActionsService) { }
-
- ngOnInit() {
-
- this.frontendType = this.frontendTypes[1].value;
- this.generalService.showLoading();
- this.getEndpoints();
- this.codemirrorOptions = this.codemirrorActionsService.getActions('html');
- }
-
- public changeFrontendType() {
-
- this.isApp = (this.frontendType === this.frontendTypes[1].value);
-
- if (!this.isApp) {
- this.theme = '';
- this.colorPalette = '';
- } else {
- this.colorPalette = this.colorPalettes[0].value;
- this.theme = this.themes[0].value;
- }
- }
-
- selectedEndpoints() {
-
- return this.endpoints.filter(x => x.selected).length;
- }
-
- moduleClicked(module: string) {
-
- const moduleEndpoints = this.endpoints.filter(x => x.path.startsWith('magic/modules/' + module + '/'));
- if (moduleEndpoints.filter(x => x.selected).length === moduleEndpoints.length) {
- for (const idx of moduleEndpoints) {
- idx.selected = false;
- }
- } else {
- for (const idx of moduleEndpoints) {
- let toBeSelected = true;
- for (var idx2 of moduleEndpoints.filter(x => x.selected && x.verb === idx.verb)) {
- const split1 = idx2.path.split('/');
- const split2 = idx.path.split('/');
- if (split1[split1.length - 1] === split2[split2.length - 1]) {
- toBeSelected = false;
- }
- }
- idx.selected = toBeSelected;
- }
- }
- }
-
- componentClicked(component: string) {
-
- const components = this.endpoints
- .filter(x => x.path.endsWith('/' + component) || x.path.endsWith('/' + component + '-count'));
- const shouldSelect = components.filter(x => !x.selected).length > 0;
- for (const idx of components) {
- idx.selected = shouldSelect;
- }
- }
-
- moduleSelected(module: string) {
-
- const moduleEndpoints = this.endpoints.filter(x => x.path.startsWith('magic/modules/' + module + '/'));
- if (moduleEndpoints.filter(x => x.selected).length === moduleEndpoints.length) {
- return true;
- } else {
- return false;
- }
- }
-
- componentSelected(component: string) {
-
- return this.endpoints
- .filter(x => x.selected)
- .filter(x => {
- return x.verb === 'get' && x.type === 'crud-count' && (x.path == 'magic/modules/' + component + '-count');
- }).length === 1;
- }
-
- generate(deployLocally: boolean = true) {
-
- if (this.frontendName === '') {
- this.generalService.showFeedback('Please give your fontend a name', 'errorMessage');
- return;
- }
- if (this.endpoints.length === 0) {
- this.generalService.showFeedback('No endpoints selected', 'errorMessage');
- return;
- }
- let apiUrl = this.backendService.active.url;
- while (apiUrl.endsWith('/')) {
- apiUrl = apiUrl.substring(0, apiUrl.length - 1);
- }
-
- let args: any = {}
- if (this.isApp) {
- args = {
- intro: this.template,
- palette: this.colorPalette,
- theme: this.theme
- }
- }
-
- const svcModel = this.createServiceModel(this.endpoints.filter(x => x.selected));
- this.generalService.showLoading();
- this.crudifyService.generate(
- this.frontendType,
- apiUrl + '/',
- this.frontendName,
- this.copyRight === '' ? 'Automatically generated by Magic' : this.copyRight,
- svcModel,
- deployLocally,
- args,
- () => {
- this.generalService.hideLoading();
- this.generalService.showFeedback(deployLocally ? 'Success, edit the generated code in Frontend IDE' : 'Successfully generated', 'successMessage', 'Ok', 5000);
- },
- () => {
- this.generalService.showFeedback('Something went wrong as we tried to generate your frontend', 'errorMessage', 'Ok', 5000);
- this.generalService.hideLoading();
- });
- }
-
- /*
- * Private helper methods.
- */
-
- private createServiceModel(endpoints: any) {
-
- const result: any[] = [];
- for (const idx of endpoints) {
- const tmp = {
- auth: idx.auth,
- description: idx.description,
- path: idx.path,
- type: idx.type,
- verb: idx.verb,
- input: [],
- output: [],
- };
- if (idx.input && idx.input.length > 0) {
- idx.input.sort((lhs, rhs) => {
- if (lhs.name.toLowerCase() === 'name' && rhs.name.toLowerCase() !== 'name') {
- return -1;
- }
- if (lhs.name.toLowerCase() !== 'name' && rhs.name.toLowerCase() === 'name') {
- return 1;
- }
- if (lhs.name.toLowerCase() === 'name' && rhs.name.toLowerCase() === 'name') {
- return 0;
- }
- if (lhs.name.toLowerCase().indexOf('name') >= 0 && lhs.name.indexOf('.') === -1 &&
- (rhs.name.toLowerCase().indexOf('name') === -1 || rhs.name.indexOf('.') >= 0)) {
- return -1;
- }
- if (rhs.name.toLowerCase().indexOf('name') >= 0 && rhs.name.indexOf('.') === -1 &&
- (lhs.name.toLowerCase().indexOf('name') === -1 || lhs.name.indexOf('.') >= 0)) {
- return 1;
- }
- if (lhs.lookup && !rhs.lookup) {
- return -1;
- }
- if (!lhs.lookup && rhs.lookup) {
- return 1;
- }
- if (lhs.lookup && rhs.lookup) {
- return 0;
- }
- if (lhs.type === 'string' && rhs.type !== 'string') {
- return -1;
- }
- if (lhs.type !== 'string' && rhs.type === 'string') {
- return 1;
- }
- if (lhs.type === 'string' && rhs.type === 'string') {
- return 0;
- }
- if (lhs.type === 'date' && rhs.type !== 'date') {
- return -1;
- }
- if (lhs.type !== 'date' && rhs.type === 'date') {
- return 1;
- }
- if (lhs.type === 'date' && rhs.type === 'date') {
- return 0;
- }
- return 0;
- });
-
- for (const idxInput of idx.input) {
- const cur: any = {
- name: idxInput.name,
- type: idxInput.type,
- };
- if (idxInput.lookup) {
- cur.lookup = idxInput.lookup;
- cur.lookup.service = idx.path.substring(14);
- cur.lookup.service = cur.lookup.service.substring(0, cur.lookup.service.indexOf('/')) + '.' + cur.lookup.table;
- while (cur.lookup.service.indexOf('-') > 0) {
- cur.lookup.service = cur.lookup.service.replace('-', '_');
- }
- while (cur.lookup.service.indexOf('.') > 0) {
- cur.lookup.service = cur.lookup.service.replace('.', '_');
- }
- }
- if (idxInput.handling) {
- cur.handling = idxInput.handling;
- }
- tmp.input.push(cur);
- }
- }
- if (idx.output && idx.output.length > 0) {
- idx.output.sort((lhs, rhs) => {
- if (lhs.name.toLowerCase() === 'name' && rhs.name.toLowerCase() !== 'name') {
- return -1;
- }
- if (lhs.name.toLowerCase() !== 'name' && rhs.name.toLowerCase() === 'name') {
- return 1;
- }
- if (lhs.name.toLowerCase() === 'name' && rhs.name.toLowerCase() === 'name') {
- return 0;
- }
- if (lhs.name.toLowerCase().indexOf('name') >= 0 && lhs.name.indexOf('.') === -1 &&
- (rhs.name.toLowerCase().indexOf('name') === -1 || rhs.name.indexOf('.') >= 0)) {
- return -1;
- }
- if (rhs.name.toLowerCase().indexOf('name') >= 0 && rhs.name.indexOf('.') === -1 &&
- (lhs.name.toLowerCase().indexOf('name') === -1 || lhs.name.indexOf('.') >= 0)) {
- return 1;
- }
- if (lhs.lookup && !rhs.lookup) {
- return -1;
- }
- if (!lhs.lookup && rhs.lookup) {
- return 1;
- }
- if (lhs.lookup && rhs.lookup) {
- return 0;
- }
- if (idx.type === 'crud-read') {
- let lhsIsLinked = false;
- if (lhs.name.indexOf('.') > 0) {
- const firstSplit = lhs.name.split('.')[0];
- const urlSplit = idx.path.split('/');
- if (firstSplit !== urlSplit[urlSplit.length]) {
- lhsIsLinked = true;
- }
- }
- let rhsIsLinked = false;
- if (rhs.name.indexOf('.') > 0) {
- const firstSplit = rhs.name.split('.')[0];
- const urlSplit = idx.path.split('/');
- if (firstSplit !== urlSplit[urlSplit.length]) {
- rhsIsLinked = true;
- }
- }
- if (lhsIsLinked && !rhsIsLinked) {
- return -1;
- }
- if (!lhsIsLinked && rhsIsLinked) {
- return 1;
- }
- if (lhsIsLinked && rhsIsLinked) {
- return 0;
- }
- }
- if (lhs.type === 'string' && rhs.type !== 'string') {
- return -1;
- }
- if (lhs.type !== 'string' && rhs.type === 'string') {
- return 1;
- }
- if (lhs.type === 'string' && rhs.type === 'string') {
- return 0;
- }
- if (lhs.type === 'date' && rhs.type !== 'date') {
- return -1;
- }
- if (lhs.type !== 'date' && rhs.type === 'date') {
- return 1;
- }
- if (lhs.type === 'date' && rhs.type === 'date') {
- return 0;
- }
- return 0;
- });
- for (const idxOutput of idx.output) {
- const cur: any = {
- name: idxOutput.name,
- type: idxOutput.type || tmp.input[idxOutput.name + '.eq'],
- };
- if (idxOutput.handling) {
- cur.handling = idxOutput.handling;
- }
- if (idxOutput.lookup) {
- cur.lookup = idxOutput.lookup;
- cur.lookup.service = idx.path.substring(14);
- cur.lookup.service = cur.lookup.service.substring(0, cur.lookup.service.indexOf('/')) + '.' + cur.lookup.table;
- while (cur.lookup.service.indexOf('.') > 0) {
- cur.lookup.service = cur.lookup.service.replace('.', '_');
- }
- }
- tmp.output.push(cur);
- }
- }
- result.push(tmp);
- }
- return result;
- }
-
- private getComponents() {
-
- this.tables = this.endpoints
- .filter(x => x.type === 'crud-count')
- .map(x => {
- const componentName = x.path.substring(14);
- return {
- name: componentName.substring(0, componentName.length - 6),
- selected: true
- };
- });
- }
-
- private getEndpoints() {
-
- this.endpointsService.endpoints().subscribe({
- next: (endpoints: Endpoint[]) => {
-
- if (endpoints) {
- this.endpoints = endpoints
- .filter((x: any) => !x.path.startsWith('magic/system/') && !x.path.startsWith('magic/modules/magic/'))
- .filter((x: any) => x.type === 'crud-count' || x.type === 'crud-delete' || x.type === 'crud-read' || x.type === 'crud-create' || x.type === 'crud-update')
- .map((x: any) => {
- return {
- path: x.path,
- verb: x.verb,
- consumes: x.consumes,
- produces: x.produces,
- input: x.input,
- output: x.output,
- array: x.array,
- auth: x.auth,
- type: x.type,
- description: x.description,
- selected: true,
- };
- });
-
- const modules: any = [];
- for (const idx of this.endpoints) {
- let moduleName = idx.path.substring('magic/modules/'.length);
- moduleName = moduleName.substring(0, moduleName.indexOf('/'));
- if (modules.findIndex((item: any) => item.name === moduleName) === -1) {
- modules.push({ name: moduleName, selected: true });
- }
- }
- this.databases = modules;
- this.getComponents();
- this.getPalette();
- }
- },
- error: (error: any) => {
-
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage');
- }
- });
- }
-
- private getPalette() {
-
- this.crudifyService.templateCustomArgs(this.frontendType).subscribe({
- next: (res: any) => {
-
- this.generalService.hideLoading();
- if (res) {
- this.colorPalettes = res?.palette || [];
- this.colorPalette = this.colorPalettes[0].value;
- this.themes = res?.theme || [];
- this.theme = this.themes[0].value;
- this.template = res?.intro;
- }
- },
- error: (error: any) => {
-
- this.generalService.hideLoading();
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage');
- }
- });
- }
-}
-
-const FrontendTypes: any = [
- {
- name: 'Angular service',
- value: 'angular-service'
- },
- {
- name: 'Angular application',
- value: 'angular'
- }
-]
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/frontend-generator.component.html b/frontend/src/app/_protected/pages/create/frontend-generator/frontend-generator.component.html
deleted file mode 100644
index 1b6884e232..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/frontend-generator.component.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- Auto frontend generator
-
-
-
-
-
-
-
-
-
- Upload existing frontend
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/frontend-generator.component.ts b/frontend/src/app/_protected/pages/create/frontend-generator/frontend-generator.component.ts
deleted file mode 100644
index 45260b996a..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/frontend-generator.component.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { Component } from '@angular/core';
-
-/**
- * Common component for both frontend generator and upload existing frontend.
- */
-@Component({
- selector: 'app-frontend-generator',
- templateUrl: './frontend-generator.component.html'
-})
-export class FrontendGeneratorComponent {
-}
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/upload-existing/upload-existing.component.html b/frontend/src/app/_protected/pages/create/frontend-generator/upload-existing/upload-existing.component.html
deleted file mode 100644
index 8b79ed2bc3..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/upload-existing/upload-existing.component.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
Upload your website template
-
And serve it over the root URL of your cloudlet
-
-
-
-
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/upload-existing/upload-existing.component.scss b/frontend/src/app/_protected/pages/create/frontend-generator/upload-existing/upload-existing.component.scss
deleted file mode 100644
index 271ac25905..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/upload-existing/upload-existing.component.scss
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-@import "../../../../../../assets/styles/_variables/colors.scss";
-@import "../../../../../../assets/styles/_variables/sizing.scss";
-
-.drop-container {
- position: relative;
- height: 200px;
- border-style: dashed;
- border-width: 1px;
- border-radius: $aista_radius;
- border-color: $aista_primary;
- background-color: $aista_default_alt;
- display: flex;
- align-items: center;
- justify-content: center;
- flex-direction: column;
-}
-
-.hide {
- opacity: 0;
- position: absolute;
- left: 0;
- right: 0;
- z-index: 1;
-}
diff --git a/frontend/src/app/_protected/pages/create/frontend-generator/upload-existing/upload-existing.component.ts b/frontend/src/app/_protected/pages/create/frontend-generator/upload-existing/upload-existing.component.ts
deleted file mode 100644
index 590e6f5315..0000000000
--- a/frontend/src/app/_protected/pages/create/frontend-generator/upload-existing/upload-existing.component.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { Component } from '@angular/core';
-import { GeneralService } from 'src/app/_general/services/general.service';
-import { FileService } from '../../../../../_general/services/file.service';
-
-/**
- * Helper component to upload an existing website as a ZIP file.
- */
-@Component({
- selector: 'app-upload-existing',
- templateUrl: './upload-existing.component.html',
- styleUrls: ['./upload-existing.component.scss']
-})
-export class UploadExistingComponent {
-
- file: any;
- uploading: boolean = false;
-
- constructor(
- private generalService: GeneralService,
- private fileService: FileService) { }
-
- getFile(event: any) {
-
- this.uploading = true;
- this.file = event.target.files[0];
-
- const formData = new FormData();
- formData.append("file", this.file, this.file.name);
- formData.append("folder", '/etc/www/');
-
- this.generalService.showLoading();
- this.fileService.uploadStaticWebsite(formData).subscribe({
- next: () => {
-
- this.uploading = false;
- this.generalService.hideLoading();
- this.generalService.showFeedback('Website successfully uploaded to /etc/www/', 'successMessage');
- },
- error: (error: any) => {
-
- this.uploading = false;
- this.generalService.hideLoading();
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage');
- }
- });
- }
-}
diff --git a/frontend/src/app/_protected/pages/dashboard/components/splash/splash.component.html b/frontend/src/app/_protected/pages/dashboard/components/splash/splash.component.html
index b04ce7280d..6ab452dd72 100644
--- a/frontend/src/app/_protected/pages/dashboard/components/splash/splash.component.html
+++ b/frontend/src/app/_protected/pages/dashboard/components/splash/splash.component.html
@@ -44,10 +44,6 @@ Welcome, we are happy to see you 🎉
Install plugins
here
-
- Get help
- here
-
Get started with Machine Learning
here
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/_models/crypto-invocations.model.ts b/frontend/src/app/_protected/pages/misc/cryptography/_models/crypto-invocations.model.ts
deleted file mode 100644
index c414590748..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/_models/crypto-invocations.model.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-/**
- * Model for cryptographically signed invocations towards your backend.
- */
-export class CryptoInvocation {
-
- /**
- * Unique ID of invocation.
- */
- id: number;
-
- /**
- * What key was used to cryptographically sign the invocation.
- */
- crypto_key: number;
-
- /**
- * Date and time of invocation.
- */
- created: Date;
-
- /**
- * Hyperlambda content of request.
- */
- request: string;
-
- /**
- * Raw request, including signature of request
- */
- request_raw: Date;
-
- /**
- * Response server generated and returned to caller.
- */
- response: Date;
-}
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/_models/key-pair.model.ts b/frontend/src/app/_protected/pages/misc/cryptography/_models/key-pair.model.ts
deleted file mode 100644
index f31a577458..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/_models/key-pair.model.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-/**
- * Key pair model for cryptography key pairs.
- */
-export class KeyPair {
-
- /**
- * Fingerprint of public key in SHA256 format, with separators between each 256 bit.
- */
- fingerprint: string;
-
- /**
- * Public key, typically in base64 encoded DER format.
- */
- public_key: string;
-
- /**
- * Private key, typically in base64 encoded DER format.
- */
- private_key?: string;
-}
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/_models/public-key-full.model.ts b/frontend/src/app/_protected/pages/misc/cryptography/_models/public-key-full.model.ts
deleted file mode 100644
index 50f9a85db4..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/_models/public-key-full.model.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-/**
- * Model for a public cryptography key, with all fields.
- */
-export class PublicKeyFull {
-
- /**
- * Fingerprint of key.
- */
- fingerprint: string;
-
- /**
- * What format fingerprint is in.
- */
- fingerprintFormat: string;
-
- /**
- * Format key is encoded in.
- */
- keyFormat: string;
-
- /**
- * Type of cryptography key.
- */
- keyType: string;
-
- /**
- * Content of public key.
- */
- publicKey: string;
-}
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/_models/public-key.model.ts b/frontend/src/app/_protected/pages/misc/cryptography/_models/public-key.model.ts
deleted file mode 100644
index 97841adbbf..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/_models/public-key.model.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-/**
- * Model for a public cryptography key.
- */
-export class PublicKey {
-
- /**
- * Unique ID of key.
- */
- id?: number;
-
- /**
- * Content of public key.
- */
- content: string;
-
- /**
- * Domain that public key is associated with.
- */
- domain: string;
-
- /**
- * Email address key is associated with.
- */
- email: string;
-
- /**
- * Subject for key, typically full name of owner.
- */
- subject: string;
-
- /**
- * Optional username to associate key with.
- */
- username?: string;
-
- /**
- * Whether or not key is enabled for cryptography operations or not.
- */
- enabled: boolean;
-
- /**
- * Fingerprint of key.
- */
- fingerprint: string;
-
- /**
- * Date and time for when key was imported.
- */
- imported?: Date;
-
- /**
- * Type of key.
- */
- type: string;
-
- /**
- * Vocabulary key is allowed to execute on server.
- *
- * These are the slots the key is allowed to invoke if owner sends Hyperlambda to the server.
- */
- vocabulary: string;
-}
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/_module/cryptography.module.ts b/frontend/src/app/_protected/pages/misc/cryptography/_module/cryptography.module.ts
deleted file mode 100644
index 9ae577a41b..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/_module/cryptography.module.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { CryptographyComponent } from '../cryptography.component';
-import { CryptographyRoutingModule } from './cryptography.routing.module';
-import { ComponentsModule } from 'src/app/_general/components/components.module';
-import { MaterialModule } from 'src/app/material.module';
-import { CryptographyPublicKeysComponent } from '../cryptography-public-keys/cryptography-public-keys.component';
-import { SharedModule } from 'src/app/shared.module';
-import { CryptographyReceiptsComponent } from '../cryptography-receipts/cryptography-receipts.component';
-import { PublicKeyDetailsComponent } from '../components/public-key-details/public-key-details.component';
-import { FormsModule } from '@angular/forms';
-import { CmModule } from 'src/app/codemirror/_module/cm.module';
-import { CodemirrorModule } from '@ctrl/ngx-codemirror';
-import { NewServerKeyComponent } from '../components/new-server-key/new-server-key.component';
-
-@NgModule({
- declarations: [
- CryptographyComponent,
- CryptographyPublicKeysComponent,
- CryptographyReceiptsComponent,
- PublicKeyDetailsComponent,
- NewServerKeyComponent
- ],
- imports: [
- CommonModule,
- CryptographyRoutingModule,
- ComponentsModule,
- MaterialModule,
- SharedModule,
- FormsModule,
- CmModule,
- CodemirrorModule
- ]
-})
-export class CryptographyModule { }
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/_module/cryptography.routing.module.ts b/frontend/src/app/_protected/pages/misc/cryptography/_module/cryptography.routing.module.ts
deleted file mode 100644
index b47275487c..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/_module/cryptography.routing.module.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { NgModule } from '@angular/core';
-import { CryptographyComponent } from '../cryptography.component';
-import { Routes, RouterModule } from '@angular/router';
-
-const routes: Routes = [
- {
- path: '',
- component: CryptographyComponent
- }
-];
-
-@NgModule({
- imports: [RouterModule.forChild(routes)],
- exports: [RouterModule]
-})
-export class CryptographyRoutingModule { }
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/_services/crypto.service.ts b/frontend/src/app/_protected/pages/misc/cryptography/_services/crypto.service.ts
index 8b0c24aa79..2ea6360d7a 100644
--- a/frontend/src/app/_protected/pages/misc/cryptography/_services/crypto.service.ts
+++ b/frontend/src/app/_protected/pages/misc/cryptography/_services/crypto.service.ts
@@ -7,14 +7,7 @@
import { Injectable } from '@angular/core';
// Application specific imports.
-import { KeyPair } from '../_models/key-pair.model';
-import { Count } from '../../../../../models/count.model';
-import { PublicKey } from '../_models/public-key.model';
-import { Affected } from '../../../../../models/affected.model';
-import { PublicKeyFull } from '../_models/public-key-full.model';
-import { CryptoInvocation } from '../_models/crypto-invocations.model';
import { HttpService } from 'src/app/_general/services/http.service';
-import { MagicResponse } from 'src/app/_general/models/magic-response.model';
/**
* Crypto service, allowing you to administrate your cryptography keys.
@@ -31,249 +24,6 @@ export class CryptoService {
*/
constructor(private httpService: HttpService) { }
- /**
- * Retrieves the public key from server and returns to caller.
- */
- serverPublicKey() {
- return this.httpService.get('/magic/system/crypto/public-key');
- }
-
- /**
- * Returns public keys from your backend.
- *
- * @param filter Filter for which keys to return
- */
- publicKeys(filter: any) {
- let query = '';
- if (filter !== null) {
- if (filter.key_id) {
- query += '?id.eq=' + encodeURIComponent(filter.key_id);
- } else {
- query += '?limit=' + filter.limit;
- query += '&offset=' + filter.offset;
- query += '&order=imported';
- query += '&direction=desc';
- if (filter.filter && filter.filter !== '') {
- query += '&operator=or';
- query += '&email.like=' + encodeURIComponent('%' + filter.filter + '%');
- query += '&subject.like=' + encodeURIComponent('%' + filter.filter + '%');
- query += '&fingerprint.eq=' + encodeURIComponent(filter.filter);
- }
- }
- }
- return this.httpService.get('/magic/system/magic/crypto_keys' + query);
- }
-
- /**
- * Returns public keys from your backend.
- *
- * @param filter Filter for which keys to return
- */
- countPublicKeys(filter: any) {
- let query = '';
- if (filter !== null && filter.filter && filter.filter !== '') {
- query += '?operator=or';
- query += '&email.like=' + encodeURIComponent('%' + filter.filter + '%');
- query += '&subject.like=' + encodeURIComponent('%' + filter.filter + '%');
- query += '&fingerprint.eq=' + encodeURIComponent(filter.filter);
- }
- return this.httpService.get('/magic/system/magic/crypto_keys-count' + query);
- }
-
- /**
- * Deletes a public key from your backend.
- *
- * @param id Unique ID of public key to delete
- */
- deletePublicKey(id: number) {
- return this.httpService.delete('/magic/system/magic/crypto_keys?id=' + id);
- }
-
- /**
- * Changes the enabled state of the specified key.
- *
- * @param id Key caller wants to change enabled state of
- * @param enabled Whether or not caller wants to enable or disable key
- */
- setEnabled(id: number, enabled: boolean) {
- return this.httpService.put('/magic/system/magic/crypto_keys', {
- id,
- enabled
- });
- }
-
- /**
- * Saves the public key declaration by invoking backend.
- *
- * @param key Key caller wants to save
- */
- updatePublicKey(key: PublicKey) {
- const payload: any = {
- id: key.id,
- subject: key.subject,
- email: key.email,
- fingerprint: key.fingerprint,
- content: key.content,
- vocabulary: key.vocabulary,
- enabled: key.enabled,
- };
- if (key.domain && key.domain !== '') {
- payload.domain = key.domain;
- } else {
- payload.domain = null;
- }
- return this.httpService.put('/magic/system/magic/crypto_keys', payload);
- }
-
- /**
- * Associates the specified public key with a user.
- *
- * @param keyId Key caller wants to associate with user.
- * @param username Username caller wants to associate with key.
- */
- associateWithUser(keyId: number, username: string) {
- return this.httpService.put('/magic/system/crypto/associate-user', {
- keyId,
- username
- });
- }
-
- /**
- * Returns the username of the user key is associated with, if any.
- *
- * @param keyId Key caller wants to retrieve association for.
- */
- getUserAssociation(keyId: number) {
- return this.httpService.get('/magic/system/crypto/user-association?keyId=' + keyId);
- }
-
- /**
- * Deletes any existing associations between a user and a public key.
- *
- * @param keyId Key caller wants to associate with user.
- */
- deleteUserAssociation(keyId: number) {
- return this.httpService.put('/magic/system/crypto/deassociate-user', {
- keyId,
- });
- }
-
- /**
- * Generates a cryptography key pair for your server.
- *
- * @param strength Strength of key pair to generate, typically 2048, 4096, or some other exponent of 2
- * @param seed Used to seed the CSRNG object
- * @param subject Identity to use for key, typically owner's full name
- * @param email Email address of key's owner
- * @param domain URL to associate the key with, typically the backend's root URL
- */
- generateKeyPair(
- strength: number,
- seed: string,
- subject: string,
- email: string,
- domain: string,
- username: string) {
- return this.httpService.post('/magic/system/crypto/generate-keypair', {
- strength,
- seed,
- subject,
- email,
- domain,
- username,
- });
- }
-
- /**
- * Imports a public key.
- *
- * @param key Key caller wants to import
- */
- createPublicKey(key: PublicKey) {
- return this.httpService.post('/magic/system/magic/crypto_keys', {
- type: key.type,
- subject: key.subject,
- email: key.email,
- domain: key.domain,
- fingerprint: key.fingerprint,
- content: key.content,
- vocabulary: key.vocabulary,
- enabled: key.enabled,
- });
- }
-
- /**
- * Imports a public key into the system.
- *
- * @param subject Name of key owner
- * @param email Email of owner
- * @param domain Root domain of key's owner
- * @param content Actual public key content
- */
- importPublicKey(
- subject: string,
- email: string,
- domain: string,
- content: string) {
- return this.httpService.post('/magic/system/crypto/import', {
- subject,
- email,
- domain,
- content
- });
- }
-
- /**
- * Invokes server to find the fingerprint of a public key.
- *
- * @param key Key to retrieve fingerprint for
- */
- getFingerprint(key: string) {
- return this.httpService.get('/magic/system/crypto/get-fingerprint?key=' + encodeURIComponent(key));
- }
-
- /**
- * Returns cryptographically signed invocations from backend to caller.
- *
- * @param filter Filter for filtering which invocations to return
- */
- invocations(filter: any = null) {
- let query = '';
- if (filter !== null) {
- query += '?limit=' + filter.limit;
- query += '&offset=' + filter.offset;
- query += '&order=created';
- query += '&direction=desc';
- if (filter.filter) {
- if (filter.filter.filter && filter.filter.filter !== '') {
- query += '&request_id.like=' + encodeURIComponent('%' + filter.filter.filter + '%');
- }
- if (filter.filter.crypto_key && filter.filter.crypto_key !== -1) {
- query += '&crypto_key.eq=' + encodeURIComponent(filter.filter.crypto_key);
- }
- }
- }
- return this.httpService.get('/magic/system/magic/crypto_invocations' + query);
- }
-
- /**
- * Returns public keys from your backend.
- *
- * @param filter Filter for which keys to return
- */
- countInvocations(filter: any) {
- let query = '';
- if (filter.filter) {
- if (filter.filter.filter && filter.filter.filter !== '') {
- query += '?request_id.like=' + encodeURIComponent('%' + filter.filter.filter + '%');
- }
- if (filter.filter.crypto_key && filter.filter.crypto_key !== -1) {
- query += '?crypto_key.eq=' + encodeURIComponent(filter.filter.crypto_key);
- }
- }
- return this.httpService.get('/magic/system/magic/crypto_invocations-count' + query);
- }
-
/**
* Retrieves the long lasting JWT token and returns to caller.
*/
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/components/new-server-key/new-server-key.component.html b/frontend/src/app/_protected/pages/misc/cryptography/components/new-server-key/new-server-key.component.html
deleted file mode 100644
index a2c7a423bc..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/components/new-server-key/new-server-key.component.html
+++ /dev/null
@@ -1,151 +0,0 @@
-
-
-
- Create new server key pair
-
- Import new key
-
-
-
-
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/components/new-server-key/new-server-key.component.ts b/frontend/src/app/_protected/pages/misc/cryptography/components/new-server-key/new-server-key.component.ts
deleted file mode 100644
index 8948d8ca65..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/components/new-server-key/new-server-key.component.ts
+++ /dev/null
@@ -1,212 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { Component, Inject, OnInit } from '@angular/core';
-import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
-import { CommonErrorMessages } from 'src/app/_general/classes/common-error-messages';
-import { CommonRegEx } from 'src/app/_general/classes/common-regex';
-import { GeneralService } from 'src/app/_general/services/general.service';
-import { CryptoService } from '../../_services/crypto.service';
-import { MagicResponse } from 'src/app/_general/models/magic-response.model';
-import { ConfigService } from '../../../../../../_general/services/config.service';
-import { BackendService } from 'src/app/_general/services/backend.service';
-
-/**
- * Helper component allowing user to create new server key pair, and/or import public keys.
- */
-@Component({
- selector: 'app-new-server-key',
- templateUrl: './new-server-key.component.html'
-})
-export class NewServerKeyComponent implements OnInit {
-
- newKey: NewKey = new NewKey;
- isWaiting: boolean = false;
- strengthArray: number[] = [
- 1024,
- 2048,
- 4096,
- 8192
- ];
-
- CommonRegEx = CommonRegEx;
- CommonErrorMessages = CommonErrorMessages;
-
- constructor(
- private configService: ConfigService,
- private cryptoService: CryptoService,
- private generalService: GeneralService,
- private backendService: BackendService,
- private dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data: { type: string }) { }
-
- ngOnInit() {
-
- if (this.data.type === 'create') {
-
- this.getContent();
- this.newKey.strength = this.strengthArray[2];
-
- } else {
-
- this.newKey.type = 'RSA';
- this.newKey.enabled = false;
- }
- }
-
- save() {
-
- if (this.newKey.subject === '') {
-
- this.generalService.showFeedback('All fields are required', 'errorMessage');
- return;
- }
- if (!this.validateEmail()) {
-
- this.generalService.showFeedback('Please provide a valid email address', 'errorMessage');
- return;
- }
- if (!this.validateDomain()) {
-
- this.generalService.showFeedback('Please provide a valid domain', 'errorMessage');
- return;
- }
-
- if (this.data.type === 'import') {
-
- if (this.newKey.fingerprint === '') {
-
- this.generalService.showFeedback('Public key is not valid', 'errorMessage');
- return;
- }
- this.import();
-
- } else {
-
- if (this.newKey.content === '') {
-
- this.generalService.showFeedback('Seed is missing', 'errorMessage');
- return;
- }
- this.create();
- }
- }
-
- validateDomain() {
-
- return this.CommonRegEx.backend.test(this.newKey.domain.replace(/\/$/, ''));
- }
-
- publicKeyChanged() {
-
- if (this.data.type === 'create') {
- return;
- }
-
- this.cryptoService.getFingerprint(this.newKey.content).subscribe({
- next: (result: MagicResponse) => {
-
- this.newKey.fingerprint = result.result;
- },
- error: (error: any) => this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- });
- }
-
- /*
- * Private helper methods.
- */
-
- private validateEmail() {
-
- return this.CommonRegEx.email.test(this.newKey.email);
- }
-
- private getContent() {
-
- this.configService.getGibberish(100, 200).subscribe({
- next: (result: MagicResponse) => {
-
- this.newKey.content = result.result;
- },
- error: (error: any) => this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- });
- }
-
- private import() {
-
- this.isWaiting = true;
- const data: NewKey = {
- subject: this.newKey.subject,
- email: this.newKey.email,
- domain: this.newKey.domain.replace(/\/$/, ''),
- content: this.newKey.content,
- enabled: this.newKey.enabled,
- fingerprint: this.newKey.fingerprint,
- type: this.newKey.type,
- vocabulary: this.newKey.vocabulary,
- };
- this.cryptoService.createPublicKey(data).subscribe({
- next: () => {
-
- this.generalService.showFeedback('Key successfully imported, please edit its vocabulary and enable it.', 'successMessage', 'Ok', 5000);
- this.isWaiting = false;
- this.dialogRef.close(true);
- },
- error: (error: any) => {
-
- this.isWaiting = false;
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- }
- });
- }
-
- private create() {
-
- this.isWaiting = true;
- this.cryptoService.generateKeyPair(
- this.newKey.strength,
- this.newKey.content,
- this.newKey.subject,
- this.newKey.email,
- this.newKey.domain.replace(/\/$/, ''),
- this.backendService.active.username).subscribe({
- next: () => {
-
- this.isWaiting = false;
- this.generalService.showFeedback('New key pair created successfully and the old key is backed up.', 'successMessage', 'Ok', 4000);
- this.dialogRef.close(true);
- },
- error: (error: any) => {
-
- this.isWaiting = false;
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- }
- });
- }
-}
-
-class NewKey {
- subject: string = '';
- email: string = '';
- domain: string = '';
- content: string = '';
- strength?: number;
- fingerprint: string;
- enabled: boolean;
- type: string;
- vocabulary: string = `/*
- * This declares which vocabulary cryptographically signed invocations
- * originating from the key is allowed to use when communicating with
- * your server. Please edit it as you see fit. This default value only
- * allows clients to query for which vocabulary to use, and nothing else
- * really.
- */
- add
- return
- get-nodes
- vocabulary
- slots.vocabulary
- `;
-};
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/components/public-key-details/public-key-details.component.html b/frontend/src/app/_protected/pages/misc/cryptography/components/public-key-details/public-key-details.component.html
deleted file mode 100644
index b49b27fc41..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/components/public-key-details/public-key-details.component.html
+++ /dev/null
@@ -1,201 +0,0 @@
-
-Details of {{data.key?.subject}} key
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Fingerprint
-
-
- Copy
-
-
-
-
-
-
- touch_app
- |
-
-
-
-
-
-
-
-
-
-
Public key
-
-
- Copy
-
-
-
-
-
-
- key
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Cancel
-
-
-
- Save
-
-
-
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/components/public-key-details/public-key-details.component.scss b/frontend/src/app/_protected/pages/misc/cryptography/components/public-key-details/public-key-details.component.scss
deleted file mode 100644
index 7b5d8591e2..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/components/public-key-details/public-key-details.component.scss
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-@import '../../../../../../../assets/styles/_variables/colors.scss';
-
-#custom-input ::ng-deep {
- .mat-input-element:disabled {
- color: $aista_dark;
- font-size: 11px;
- }
-}
-
-.modal-custom-codemirror ::ng-deep {
- .CodeMirror {
- padding-top: 10px;
- min-height: 94%;
- }
-}
-
-.custom-copy-btn {
- font-size: 13px;
- line-height: 1.4;
-}
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/components/public-key-details/public-key-details.component.ts b/frontend/src/app/_protected/pages/misc/cryptography/components/public-key-details/public-key-details.component.ts
deleted file mode 100644
index ed7c04d1ff..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/components/public-key-details/public-key-details.component.ts
+++ /dev/null
@@ -1,215 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { Component, Inject, OnInit } from '@angular/core';
-import { Clipboard } from '@angular/cdk/clipboard';
-import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
-import { GeneralService } from 'src/app/_general/services/general.service';
-import { CryptoService } from '../../_services/crypto.service';
-import { CodemirrorActionsService } from 'src/app/_general/services/codemirror-actions.service';
-import { MagicResponse } from 'src/app/_general/models/magic-response.model';
-import { PublicKey } from '../../_models/public-key.model';
-import { Model } from 'src/app/codemirror/codemirror-hyperlambda/codemirror-hyperlambda.component';
-import { ConfirmationDialogComponent } from 'src/app/_general/components/confirmation-dialog/confirmation-dialog.component';
-
-/*
- * Helper class to encapsulate all public keys and their CodeMirror vocabulary options.
- */
-class PublicKeyEx {
-
- /**
- * Helper field to combine subject and email into one field.
- */
- identity: string;
-
- /*
- * Public key as returned from server.
- */
- key: PublicKey;
-
- /*
- * Original key content. Stored in case user updates a key, such that we can log the old key's content.
- */
- original_content: string;
-
- /*
- * CodeMirror options for editing vocabulary.
- */
- options: Model;
-}
-
-/**
- * Helper component displaying details about the currently activated server key pair.
- */
-@Component({
- selector: 'app-public-key-details',
- templateUrl: './public-key-details.component.html',
- styleUrls: ['./public-key-details.component.scss']
-})
-export class PublicKeyDetailsComponent implements OnInit {
-
- public username: string = '';
-
- public codemirrorReady: boolean = false;
-
- public waiting: boolean = false;
-
- constructor(
- private dialog: MatDialog,
- private clipboard: Clipboard,
- private cryptoService: CryptoService,
- private generalService: GeneralService,
- private codemirrorActionsService: CodemirrorActionsService,
- private dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data: { key: any, savePermission: boolean }) { }
-
- ngOnInit(): void {
- this.getUserAssociation();
- this.getCodeMirrorOptions();
- }
-
- private getUserAssociation() {
- if (!this.data.key.username) {
- this.cryptoService.getUserAssociation(this.data.key.id).subscribe({
- next: (result: any) => this.data.key.username = result.result,
- error: (error: any) => this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- });
- }
- }
-
- public copyFingerprint(text: string) {
- this.clipboard.copy(text);
- this.generalService.showFeedback('Fingerprint can be found on your clipboard');
- }
-
- public copyContent(text: string) {
- this.clipboard.copy(text);
- this.generalService.showFeedback('Public key can be found on your clipboard');
- }
-
- private getCodeMirrorOptions() {
- const options = this.codemirrorActionsService.getActions(null, 'hl');
- const hlOptions: any = {
- hyperlambda: this.data.key.vocabulary,
- options: options
- }
- hlOptions.options.autofocus = false;
- this.data.key.options = hlOptions;
-
- setTimeout(() => {
- this.codemirrorReady = true;
- }, 300);
- }
-
- save() {
- this.waiting = true;
- const key: PublicKeyEx = {
- identity: '',
- original_content: this.data.key.original_content,
- key: {
- id: this.data.key.id,
- content: this.data.key.content,
- domain: this.data.key.domain,
- email: this.data.key.email,
- subject: this.data.key.subject,
- username: this.data.key.username,
- enabled: this.data.key.enabled,
- fingerprint: this.data.key.fingerprint,
- imported: this.data.key.imported,
- type: this.data.key.type,
- vocabulary: this.data.key.vocabulary,
- },
- options: this.data.key.options
- }
-
- key.key.vocabulary = key.options.hyperlambda;
- this.cryptoService.getFingerprint(key.key.content).subscribe({
- next: (response: MagicResponse) => {
- const fingerprintUpdated = key.key.fingerprint !== response.result;
- key.key.fingerprint = response.result;
- if (fingerprintUpdated) {
- this.dialog.open(ConfirmationDialogComponent, {
- width: '500px',
- data: {
- title: `Changing key for ${key.key.subject}`,
- description: 'Warning!',
- description_extra: 'Changing the actual key content will make it impossible to easily verify historic cryptographic invocations. Are you sure you wish to proceed?',
- action_btn: 'Proceed',
- action_btn_color: 'warn',
- bold_description: true
- }
- }).afterClosed().subscribe((result: string) => {
- if (result === 'confirm') {
- let oldKey = '';
- for (var idx of key.original_content) {
- if (oldKey.length % 80 === 0 && oldKey.length !== 0) {
- oldKey += '\r\n';
- }
- oldKey += idx;
- }
-
- this.saveKeyImplementation(key);
- }
- })
- } else {
- this.saveKeyImplementation(key);
- }
- },
- error: (error: any) => {
- this.waiting = false;
- this.generalService.showFeedback('Key content is not valid.', 'errorMessage')
- }
- });
- }
-
- private saveKeyImplementation(key: PublicKeyEx, extraInfo?: string) {
- this.cryptoService.updatePublicKey(key.key).subscribe({
- next: () => {
- let info = 'Key was successfully saved';
- if (extraInfo) {
- info += '. ' + extraInfo;
- }
- key.identity = key.key.subject + ' <' + key.key.email + '>';
- if (key.key.username && key.key.username !== '') {
- this.cryptoService.associateWithUser(key.key.id, key.key.username).subscribe({
- next: () => {
- if (extraInfo) {
- this.generalService.showFeedback(info, 'successMessage');
- } else {
- this.generalService.showFeedback(info, 'successMessage');
- }
- this.waiting = false;
- this.dialogRef.close(true);
- },
- error: (error: any) => {
- this.waiting = false;
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- }
- });
- } else {
- this.cryptoService.deleteUserAssociation(key.key.id).subscribe({
- next: () => {
- if (extraInfo) {
- this.generalService.showFeedback(info, 'successMessage');
- } else {
- this.generalService.showFeedback(info, 'successMessage');
- }
- this.waiting = false;
- this.dialogRef.close(true);
- },
- error: (error: any) => {
- this.waiting = false;
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- }
- });
- }
- },
- error: (error: any) => {
- this.waiting = false;
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- }
- });
- }
-}
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-public-keys/cryptography-public-keys.component.html b/frontend/src/app/_protected/pages/misc/cryptography/cryptography-public-keys/cryptography-public-keys.component.html
deleted file mode 100644
index bcbb6c42ff..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-public-keys/cryptography-public-keys.component.html
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Name
-
-
- {{element?.subject}}
-
-
-
-
-
-
- Domain
-
-
- {{element?.domain}}
-
-
-
-
-
-
- Email
-
-
- {{element?.email}}
-
-
-
-
-
-
- Created
-
-
- {{element?.imported | since}}
-
-
-
-
-
-
- Enabled
-
-
-
-
-
-
-
-
-
-
- Actions
-
-
-
-
-
-
- View details
-
-
-
- Delete
-
-
-
- Receipts
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- You have no public keys
-
-
-
-
-
-
-
- pageSize"
- [length]="totalItems"
- [pageSize]="pageSize"
- [pageIndex]="pageIndex"
- (page)="changePage($event)">
-
-
-
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-public-keys/cryptography-public-keys.component.scss b/frontend/src/app/_protected/pages/misc/cryptography/cryptography-public-keys/cryptography-public-keys.component.scss
deleted file mode 100644
index 69ab3578ef..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-public-keys/cryptography-public-keys.component.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-@import '../../../../../../assets/styles/_variables/colors.scss';
-@import '../../../../../../assets/styles/_variables/mixin.scss';
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-public-keys/cryptography-public-keys.component.ts b/frontend/src/app/_protected/pages/misc/cryptography/cryptography-public-keys/cryptography-public-keys.component.ts
deleted file mode 100644
index 21d2dd96f6..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-public-keys/cryptography-public-keys.component.ts
+++ /dev/null
@@ -1,169 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { Component, EventEmitter, OnInit, Output } from '@angular/core';
-import { MatDialog } from '@angular/material/dialog';
-import { PageEvent } from '@angular/material/paginator';
-import { ConfirmationDialogComponent } from 'src/app/_general/components/confirmation-dialog/confirmation-dialog.component';
-import { GeneralService } from 'src/app/_general/services/general.service';
-import { PublicKeyDetailsComponent } from '../components/public-key-details/public-key-details.component';
-import { PublicKey } from '../_models/public-key.model';
-import { CryptoService } from '../_services/crypto.service';
-
-/**
- * Helper component for displaying public keys cloudlet has stored.
- */
-@Component({
- selector: 'app-cryptography-public-keys',
- templateUrl: './cryptography-public-keys.component.html',
- styleUrls: ['./cryptography-public-keys.component.scss']
-})
-export class CryptographyPublicKeysComponent implements OnInit {
-
- @Output() invokeViewReceipts: EventEmitter = new EventEmitter();
-
- isLoading: boolean = true;
- dataSource: any = [];
- pageIndex: number = 0;
- pageSize: number = 5;
- totalItems: number = 0;
- displayedColumns: string[] = [
- 'name',
- 'domain',
- 'email',
- 'created',
- 'enabled',
- 'actions'
- ];
-
- constructor(
- private dialog: MatDialog,
- private cryptoService: CryptoService,
- private generalService: GeneralService) { }
-
- ngOnInit() {
-
- this.getKeys();
- }
-
- deleteKey(key: PublicKey) {
-
- this.dialog.open(ConfirmationDialogComponent, {
- width: '500px',
- data: {
- title: `Delete ${key.subject}`,
- description_extra: `You are deleting the public key belonging to ${key.subject} - ${key.email} Do you want to continue?`,
- action_btn: 'Delete',
- action_btn_color: 'warn',
- bold_description: true
- }
- }).afterClosed().subscribe((result: string) => {
- if (result === 'confirm') {
- this.cryptoService.deletePublicKey(key.id).subscribe({
- next: () => {
- this.generalService.showFeedback('Public key successfully deleted', 'successMessage');
- this.getKeys();
- this.getCount();
- },
- error: (error: any) => this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- });
- }
- });
- }
-
- enabledChanged(event: any, key: PublicKey) {
-
- this.cryptoService.setEnabled(key.id, event.checked).subscribe({
- next: () => {
-
- this.generalService.showFeedback(`Key was successfully ${event.checked ? 'enabled' : 'disabled'}`, 'successMessage')
- this.getKeys();
- },
- error: (error: any) => this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage')
- });
- }
-
- viewDetails(key: PublicKey) {
-
- const keyData: any = { ...key };
- keyData.original_content = key.content;
- this.dialog.open(PublicKeyDetailsComponent, {
- width: '80vw',
- panelClass: ['light'],
- data: {
- key: keyData,
- }
- }).afterClosed().subscribe((res: any) => {
- if (res === true) {
- this.getKeys();
- }
- })
- }
-
- viewReceipts(key: PublicKey) {
-
- const event: any = {
- key: key,
- index: 1
- };
- this.invokeViewReceipts.emit(event);
- }
-
- changePage(e: PageEvent) {
-
- this.pageSize = e.pageSize;
- this.pageIndex = e.pageIndex;
- this.getKeys(false);
- }
-
- /*
- * Private helper methods
- */
-
- private getKeys(countItems: boolean = true) {
-
- this.generalService.showLoading();
- this.cryptoService.publicKeys({
- filter: '',
- offset: this.pageIndex * this.pageSize,
- limit: this.pageSize
- }).subscribe({
- next: (keys: PublicKey[]) => {
-
- this.dataSource = keys || [];
- if (!countItems) {
- this.generalService.hideLoading();
- this.isLoading = false;
- return;
- }
- this.getCount();
- },
- error: (error: any) => {
-
- this.generalService.hideLoading();
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage');
- }
- });
- }
-
- private getCount() {
-
- const filter: string = '';
- this.cryptoService.countPublicKeys({ filter: filter }).subscribe({
- next: (res) => {
-
- this.generalService.hideLoading();
- this.totalItems = res.count;
- this.isLoading = false;
- },
-
- error: (error: any) => {
-
- this.generalService.hideLoading();
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage');
- }
- });
- }
-}
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-receipts/cryptography-receipts.component.html b/frontend/src/app/_protected/pages/misc/cryptography/cryptography-receipts/cryptography-receipts.component.html
deleted file mode 100644
index 93999a0879..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-receipts/cryptography-receipts.component.html
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Request
-
-
- {{element.request}}
-
-
-
-
-
-
- Response
-
-
- {{element.response}}
-
-
-
-
-
-
- Created
-
-
- {{element?.created | since}}
-
-
-
-
-
-
-
-
-
-
-
-
- No receipts
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-receipts/cryptography-receipts.component.ts b/frontend/src/app/_protected/pages/misc/cryptography/cryptography-receipts/cryptography-receipts.component.ts
deleted file mode 100644
index 0eae882839..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/cryptography-receipts/cryptography-receipts.component.ts
+++ /dev/null
@@ -1,109 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { Component, Input, OnInit } from '@angular/core';
-import { PageEvent } from '@angular/material/paginator';
-import { GeneralService } from 'src/app/_general/services/general.service';
-import { CryptoInvocation } from '../_models/crypto-invocations.model';
-import { PublicKey } from '../_models/public-key.model';
-import { CryptoService } from '../_services/crypto.service';
-
-/**
- * Helper component displaying receipts for crypto invocations towards the server.
- */
-@Component({
- selector: 'app-cryptography-receipts',
- templateUrl: './cryptography-receipts.component.html'
-})
-export class CryptographyReceiptsComponent implements OnInit {
-
- @Input() selectedServerKey: PublicKey;
-
- dataSource: any = [];
- isLoading: boolean = true;
- pageIndex: number = 0;
- pageSize: number = 5;
- totalItems: number = 0;
- displayedColumns: string[] = [
- 'request',
- 'response',
- 'created',
- ];
-
- constructor(
- private cryptoService: CryptoService,
- private generalService: GeneralService) { }
-
- ngOnInit() {
-
- this.getInvocations();
- }
-
- changePage(e: PageEvent) {
-
- this.pageSize = e.pageSize;
- this.pageIndex = e.pageIndex;
- this.getInvocations(false);
- }
-
- /*
- * Private helper methods
- */
-
- private getInvocations(countItems: boolean = true) {
-
- this.generalService.showLoading();
-
- const filter: any = {};
- if (this.selectedServerKey) {
- filter.crypto_key = this.selectedServerKey.id;
- }
-
- this.cryptoService.invocations({
- filter,
- offset: this.pageIndex * this.pageSize,
- limit: this.pageSize
- }).subscribe({
- next: (invocations: CryptoInvocation[]) => {
-
- this.dataSource = invocations || [];
-
- if (!countItems) {
-
- this.generalService.hideLoading();
- return;
- }
- this.getCount();
- },
- error: (error: any) =>{
-
- this.generalService.hideLoading();
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage');
- }
- });
- }
-
- private getCount() {
-
- const filter: any = {};
- if (this.selectedServerKey) {
- filter.crypto_key = this.selectedServerKey.id;
- }
-
- this.cryptoService.countInvocations({ filter: filter }).subscribe({
- next: (res) => {
-
- this.generalService.hideLoading();
- this.isLoading = false;
- this.totalItems = res.count
- },
- error: (error: any) =>{
-
- this.generalService.hideLoading();
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage');
- }
- });
- }
-}
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/cryptography.component.html b/frontend/src/app/_protected/pages/misc/cryptography/cryptography.component.html
deleted file mode 100644
index 652b48ff89..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/cryptography.component.html
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
-
-
-
-
-
-
-
-
Server key
-
-
-
- Import key
-
-
-
- New key
-
-
-
-
-
-
-
-
-
-
Fingerprint
-
{{publicKeyFull?.fingerprint}}
-
-
-
-
Fingerprint format
-
{{publicKeyFull?.fingerprintFormat}}
-
-
-
-
Key format
-
{{publicKeyFull?.keyFormat}}
-
-
-
-
Key type
-
{{publicKeyFull?.keyType}}
-
-
-
-
-
-
-
-
Public key
-
-
- Copy key
-
-
-
-
-
{{publicKeyFull?.publicKey}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/cryptography.component.scss b/frontend/src/app/_protected/pages/misc/cryptography/cryptography.component.scss
deleted file mode 100644
index de8ade05df..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/cryptography.component.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
- .word-break {
- line-height: 1;
-}
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/misc/cryptography/cryptography.component.ts b/frontend/src/app/_protected/pages/misc/cryptography/cryptography.component.ts
deleted file mode 100644
index 3c9ba88ef3..0000000000
--- a/frontend/src/app/_protected/pages/misc/cryptography/cryptography.component.ts
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { Component, OnInit, ViewChild } from '@angular/core';
-import { GeneralService } from 'src/app/_general/services/general.service';
-import { PublicKeyFull } from './_models/public-key-full.model';
-import { CryptoService } from './_services/crypto.service';
-import { Clipboard } from '@angular/cdk/clipboard';
-import { PublicKey } from './_models/public-key.model';
-import { MatDialog } from '@angular/material/dialog';
-import { NewServerKeyComponent } from './components/new-server-key/new-server-key.component';
-
-/**
- * Helper component for viewing cryptography keys, both public keys and server keys,
- * in addition to receipts associated with keys.
- */
-@Component({
- selector: 'app-cryptography',
- templateUrl: './cryptography.component.html',
- styleUrls: ['./cryptography.component.scss']
-})
-export class CryptographyComponent implements OnInit {
-
- @ViewChild('tableComponent') tableComponent: any;
- publicKeyFull: PublicKeyFull = null;
- selectedTabIndex: number = 0;
- selectedServerKey: PublicKey;
-
- constructor(
- private dialog: MatDialog,
- private clipboard: Clipboard,
- private cryptoService: CryptoService,
- private generalService: GeneralService) { }
-
- ngOnInit() {
-
- this.getServerPublicKey();
- }
-
- copy(text: string) {
-
- this.clipboard.copy(text);
- this.generalService.showFeedback('Public key can be found on your clipboard', 'successMessage');
- }
-
- tabChanged(event: any) {
-
- this.selectedTabIndex = event;
- if (this.selectedTabIndex === 0) {
- this.selectedServerKey = null;
- }
- }
-
- invokeViewReceipts(event: any) {
-
- this.selectedServerKey = event.key;
- this.selectedTabIndex = event.index;
- }
-
- newKey(type: string) {
-
- this.dialog.open(NewServerKeyComponent, {
- width: '800px',
- data: {
- type: type
- }
- }).afterClosed().subscribe((result: any) => {
-
- if (result === true) {
-
- this.tableComponent.getKeys();
- if (type === 'create') {
-
- this.getServerPublicKey();
- }
- }
- });
- }
-
- /*
- * Private helper methods.
- */
-
- private getServerPublicKey() {
-
- this.generalService.showLoading();
- this.cryptoService.serverPublicKey().subscribe({
- next: (key: any) => {
- if (key.result === 'FAILURE') {
-
- this.generalService.showFeedback('No server key pair found, please create one', 'errorMessage');
- return;
- }
- this.publicKeyFull = key;
- },
- error: (error: any) => {
-
- this.generalService.hideLoading();
- this.generalService.showFeedback(error?.error?.message ?? error, 'errorMessage');
- }
- });
- }
-}
diff --git a/frontend/src/app/_protected/pages/misc/help-center/_module/help-center.module.ts b/frontend/src/app/_protected/pages/misc/help-center/_module/help-center.module.ts
deleted file mode 100644
index cdc5588a47..0000000000
--- a/frontend/src/app/_protected/pages/misc/help-center/_module/help-center.module.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { HelpCenterRoutingModule } from './help-center.routing.module';
-import { MaterialModule } from 'src/app/material.module';
-import { FormsModule } from '@angular/forms';
-import { HelpCenterComponent } from '../help-center.component';
-import { ComponentsModule } from 'src/app/_general/components/components.module';
-
-@NgModule({
- declarations: [
- HelpCenterComponent,
- ],
- imports: [
- CommonModule,
- HelpCenterRoutingModule,
- MaterialModule,
- FormsModule,
- ComponentsModule,
- ]
-})
-export class HelpCenterModule { }
diff --git a/frontend/src/app/_protected/pages/misc/help-center/_module/help-center.routing.module.ts b/frontend/src/app/_protected/pages/misc/help-center/_module/help-center.routing.module.ts
deleted file mode 100644
index a9c79f0ecc..0000000000
--- a/frontend/src/app/_protected/pages/misc/help-center/_module/help-center.routing.module.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { NgModule } from '@angular/core';
-import { Routes, RouterModule } from '@angular/router';
-import { HelpCenterComponent } from '../help-center.component';
-
-const routes: Routes = [
- {
- path: '',
- component: HelpCenterComponent
- }
-];
-
-@NgModule({
- imports: [RouterModule.forChild(routes)],
- exports: [RouterModule]
-})
-export class HelpCenterRoutingModule { }
diff --git a/frontend/src/app/_protected/pages/misc/help-center/help-center.component.html b/frontend/src/app/_protected/pages/misc/help-center/help-center.component.html
deleted file mode 100644
index 3dac3f3c56..0000000000
--- a/frontend/src/app/_protected/pages/misc/help-center/help-center.component.html
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
-
-
-
-
-
Getting started with Magic
-
- Here is a video teaching you how to get started with Magic, showing you all the essential components,
- such as SQL Studio, how to connect to your database, Hyper IDE, etc. Constructs demonstrated in the
- video are.
-
-
- Connecting to your existing database
- Installing a plugin database
- Designing a database from scratch
- Generating a CRUD API wrapping your database
- Generating and deploying a frontend using GitHub actions
- Editing your code using Hyper IDE
- Managing users and roles
- Invoking and testing your endpoints
- Scheduling and managing tasks
- Hyperlambda playground
- Working with sockets
-
-
-
-
-
-
-
-
-
-
-
-
-
- AI based Hyperlambda FAQ
-
-
- Ask me any Hyperlambda question and I will try to answer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Online documentation and courses
-
- Below you can find learning resources related to Aista Magic Cloud and Hyperlambda.
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/misc/help-center/help-center.component.scss b/frontend/src/app/_protected/pages/misc/help-center/help-center.component.scss
deleted file mode 100644
index de6c77271e..0000000000
--- a/frontend/src/app/_protected/pages/misc/help-center/help-center.component.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-.help-center {
- ul {
- li {
- margin-bottom: .25rem;
- a {
- text-decoration: none;
- }
- }
- }
-}
-
-.video-wrapper {
- position: relative;
- padding-bottom: 56.25%;
- height: 0;
- min-height: 100%;
-
- iframe {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border-radius: 5px;
- z-index: 1;
- }
-}
\ No newline at end of file
diff --git a/frontend/src/app/_protected/pages/misc/help-center/help-center.component.ts b/frontend/src/app/_protected/pages/misc/help-center/help-center.component.ts
deleted file mode 100644
index 467ed09118..0000000000
--- a/frontend/src/app/_protected/pages/misc/help-center/help-center.component.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-
-/*
- * Copyright (c) 2023 Thomas Hansen - For license inquiries you can contact thomas@ainiro.io.
- */
-
-import { Component } from '@angular/core';
-
-/**
- * Help center, showing user some resources where he can find additional information, and/or
- * teach himself specifics about the system.
- */
-@Component({
- selector: 'app-help-center',
- templateUrl: './help-center.component.html',
- styleUrls: ['./help-center.component.scss']
-})
-export class HelpCenterComponent {
-}
diff --git a/frontend/src/app/app-routing.module.ts b/frontend/src/app/app-routing.module.ts
index 85f0949848..ace1de666a 100644
--- a/frontend/src/app/app-routing.module.ts
+++ b/frontend/src/app/app-routing.module.ts
@@ -47,10 +47,6 @@ const routes: Routes = [
path: 'endpoint-generator',
loadChildren: () => import('./_protected/pages/create/endpoint-generator/_module/endpoint.module').then(m => m.EndpointModule)
},
- {
- path: 'frontend-generator',
- loadChildren: () => import('./_protected/pages/create/frontend-generator/_module/frontend-generator.module').then(m => m.FrontendGeneratorModule)
- },
{
path: 'plugins',
loadChildren: () => import('./_protected/pages/manage/plugins/_module/plugins.module').then(m => m.PluginsModule)
@@ -83,18 +79,10 @@ const routes: Routes = [
path: 'log',
loadChildren: () => import('./_protected/pages/misc/log/_module/log.module').then(m => m.LogModule)
},
- {
- path: 'cryptography',
- loadChildren: () => import('./_protected/pages/misc/cryptography/_module/cryptography.module').then(m => m.CryptographyModule)
- },
{
path: 'user-profile',
loadChildren: () => import('./_protected/pages/user/profile/_module/profile.module').then(m => m.ProfileModule)
},
- {
- path: 'help-center',
- loadChildren: () => import('./_protected/pages/misc/help-center/_module/help-center.module').then(m => m.HelpCenterModule)
- },
{
path: 'machine-learning',
loadChildren: () => import('./_protected/pages/manage/machine-learning/_module/machine-learning.module').then(m => m.MachineLearningTrainingModule)