From 62e2adba6d9c058db5087e15e1ff6d0f12c7ad59 Mon Sep 17 00:00:00 2001 From: Jonathan Hervieux <jonathan.hervieux@cartier.com> Date: Mon, 20 Mar 2023 16:58:47 +0100 Subject: [PATCH] feat: add webxr test app --- takima-AR/.editorconfig => .editorconfig | 0 .firebaserc | 5 + takima-AR/.gitignore => .gitignore | 0 README.md | 93 +- .../environment.development.ts | 0 .../environment.ts | 0 firebase.json | 10 + takima-AR/package.json => package.json | 0 takima-AR/.firebaserc | 14 - takima-AR/.vscode/extensions.json | 4 - takima-AR/.vscode/launch.json | 20 - takima-AR/.vscode/tasks.json | 42 - takima-AR/404.html | 33 + takima-AR/README.md | 27 - takima-AR/angular.json | 123 - takima-AR/firebase.json | 35 - takima-AR/index.html | 89 + takima-AR/package-lock.json | 21812 ---------------- takima-AR/src/app/app-routing.module.ts | 10 - takima-AR/src/app/app.component.html | 484 - takima-AR/src/app/app.component.scss | 0 takima-AR/src/app/app.component.spec.ts | 35 - takima-AR/src/app/app.component.ts | 10 - takima-AR/src/app/app.module.ts | 25 - takima-AR/src/assets/.gitkeep | 0 takima-AR/src/favicon.ico | Bin 948 -> 0 bytes takima-AR/src/index.html | 13 - takima-AR/src/main.ts | 7 - takima-AR/src/styles.scss | 1 - takima-AR/tsconfig.app.json | 14 - takima-AR/tsconfig.json | 33 - takima-AR/tsconfig.spec.json | 14 - webxr/app.js | 178 + webxr/assets/stabilization.gif | Bin 0 -> 850020 bytes webxr/index.html | 63 + webxr/scene.bin | Bin 0 -> 5240 bytes webxr/scene.gltf | 458 + webxr/shared/app.css | 107 + webxr/shared/utils.js | 133 + webxr/shared/webxr-polyfill.js | 12684 +++++++++ webxr/textures/vending_m_baseColor.jpeg | Bin 0 -> 6492 bytes 41 files changed, 13774 insertions(+), 22802 deletions(-) rename takima-AR/.editorconfig => .editorconfig (100%) create mode 100644 .firebaserc rename takima-AR/.gitignore => .gitignore (100%) rename {takima-AR/src/environments => environments}/environment.development.ts (100%) rename {takima-AR/src/environments => environments}/environment.ts (100%) create mode 100644 firebase.json rename takima-AR/package.json => package.json (100%) delete mode 100644 takima-AR/.firebaserc delete mode 100644 takima-AR/.vscode/extensions.json delete mode 100644 takima-AR/.vscode/launch.json delete mode 100644 takima-AR/.vscode/tasks.json create mode 100644 takima-AR/404.html delete mode 100644 takima-AR/README.md delete mode 100644 takima-AR/angular.json delete mode 100644 takima-AR/firebase.json create mode 100644 takima-AR/index.html delete mode 100644 takima-AR/package-lock.json delete mode 100644 takima-AR/src/app/app-routing.module.ts delete mode 100644 takima-AR/src/app/app.component.html delete mode 100644 takima-AR/src/app/app.component.scss delete mode 100644 takima-AR/src/app/app.component.spec.ts delete mode 100644 takima-AR/src/app/app.component.ts delete mode 100644 takima-AR/src/app/app.module.ts delete mode 100644 takima-AR/src/assets/.gitkeep delete mode 100644 takima-AR/src/favicon.ico delete mode 100644 takima-AR/src/index.html delete mode 100644 takima-AR/src/main.ts delete mode 100644 takima-AR/src/styles.scss delete mode 100644 takima-AR/tsconfig.app.json delete mode 100644 takima-AR/tsconfig.json delete mode 100644 takima-AR/tsconfig.spec.json create mode 100644 webxr/app.js create mode 100644 webxr/assets/stabilization.gif create mode 100644 webxr/index.html create mode 100644 webxr/scene.bin create mode 100644 webxr/scene.gltf create mode 100644 webxr/shared/app.css create mode 100644 webxr/shared/utils.js create mode 100644 webxr/shared/webxr-polyfill.js create mode 100644 webxr/textures/vending_m_baseColor.jpeg diff --git a/takima-AR/.editorconfig b/.editorconfig similarity index 100% rename from takima-AR/.editorconfig rename to .editorconfig diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 00000000..aa622095 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "takima-ar-eee39" + } +} diff --git a/takima-AR/.gitignore b/.gitignore similarity index 100% rename from takima-AR/.gitignore rename to .gitignore diff --git a/README.md b/README.md index 9c64ccd3..3c444ffb 100644 --- a/README.md +++ b/README.md @@ -1,92 +1,27 @@ -# Takima AR +# TakimaAR +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.2.4. +## Development server -## Getting started +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. -To make it easy for you to get started with GitLab, here's a list of recommended next steps. +## Code scaffolding -Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. -## Add your files +## Build -- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files -- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. -``` -cd existing_repo -git remote add origin https://gitlab.takima.io/zboukercha/takima-AR.git -git branch -M main -git push -uf origin main -``` +## Running unit tests -## Integrate with your tools +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). -- [ ] [Set up project integrations](https://gitlab.takima.io/zboukercha/takima-AR/-/settings/integrations) +## Running end-to-end tests -## Collaborate with your team +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. -- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) -- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) -- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) -- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) -- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html) +## Further help -## Test and Deploy - -Use the built-in continuous integration in GitLab. - -- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) -- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) -- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) -- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) -- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) - -*** - -# Editing this README - -When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template. - -## Suggestions for a good README -Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. - -## Name -Choose a self-explaining name for your project. - -## Description -Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. - -## Badges -On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. - -## Visuals -Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. - -## Installation -Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. - -## Usage -Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. - -## Support -Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. - -## Roadmap -If you have ideas for releases in the future, it is a good idea to list them in the README. - -## Contributing -State if you are open to contributions and what your requirements are for accepting them. - -For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. - -You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. - -## Authors and acknowledgment -Show your appreciation to those who have contributed to the project. - -## License -For open source projects, say how it is licensed. - -## Project status -If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/takima-AR/src/environments/environment.development.ts b/environments/environment.development.ts similarity index 100% rename from takima-AR/src/environments/environment.development.ts rename to environments/environment.development.ts diff --git a/takima-AR/src/environments/environment.ts b/environments/environment.ts similarity index 100% rename from takima-AR/src/environments/environment.ts rename to environments/environment.ts diff --git a/firebase.json b/firebase.json new file mode 100644 index 00000000..c9bd4946 --- /dev/null +++ b/firebase.json @@ -0,0 +1,10 @@ +{ + "hosting": { + "public": ".", + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ] + } +} diff --git a/takima-AR/package.json b/package.json similarity index 100% rename from takima-AR/package.json rename to package.json diff --git a/takima-AR/.firebaserc b/takima-AR/.firebaserc deleted file mode 100644 index 93949f96..00000000 --- a/takima-AR/.firebaserc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "targets": { - "takima-ar-eee39": { - "hosting": { - "takima-AR": [ - "takima" - ] - } - } - }, - "projects": { - "default": "takima-ar-eee39" - } -} \ No newline at end of file diff --git a/takima-AR/.vscode/extensions.json b/takima-AR/.vscode/extensions.json deleted file mode 100644 index 77b37457..00000000 --- a/takima-AR/.vscode/extensions.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 - "recommendations": ["angular.ng-template"] -} diff --git a/takima-AR/.vscode/launch.json b/takima-AR/.vscode/launch.json deleted file mode 100644 index 740e35a0..00000000 --- a/takima-AR/.vscode/launch.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "ng serve", - "type": "pwa-chrome", - "request": "launch", - "preLaunchTask": "npm: start", - "url": "http://localhost:4200/" - }, - { - "name": "ng test", - "type": "chrome", - "request": "launch", - "preLaunchTask": "npm: test", - "url": "http://localhost:9876/debug.html" - } - ] -} diff --git a/takima-AR/.vscode/tasks.json b/takima-AR/.vscode/tasks.json deleted file mode 100644 index a298b5bd..00000000 --- a/takima-AR/.vscode/tasks.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 - "version": "2.0.0", - "tasks": [ - { - "type": "npm", - "script": "start", - "isBackground": true, - "problemMatcher": { - "owner": "typescript", - "pattern": "$tsc", - "background": { - "activeOnStart": true, - "beginsPattern": { - "regexp": "(.*?)" - }, - "endsPattern": { - "regexp": "bundle generation complete" - } - } - } - }, - { - "type": "npm", - "script": "test", - "isBackground": true, - "problemMatcher": { - "owner": "typescript", - "pattern": "$tsc", - "background": { - "activeOnStart": true, - "beginsPattern": { - "regexp": "(.*?)" - }, - "endsPattern": { - "regexp": "bundle generation complete" - } - } - } - } - ] -} diff --git a/takima-AR/404.html b/takima-AR/404.html new file mode 100644 index 00000000..829eda8f --- /dev/null +++ b/takima-AR/404.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Page Not Found</title> + + <style media="screen"> + body { background: #ECEFF1; color: rgba(0,0,0,0.87); font-family: Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 0; } + #message { background: white; max-width: 360px; margin: 100px auto 16px; padding: 32px 24px 16px; border-radius: 3px; } + #message h3 { color: #888; font-weight: normal; font-size: 16px; margin: 16px 0 12px; } + #message h2 { color: #ffa100; font-weight: bold; font-size: 16px; margin: 0 0 8px; } + #message h1 { font-size: 22px; font-weight: 300; color: rgba(0,0,0,0.6); margin: 0 0 16px;} + #message p { line-height: 140%; margin: 16px 0 24px; font-size: 14px; } + #message a { display: block; text-align: center; background: #039be5; text-transform: uppercase; text-decoration: none; color: white; padding: 16px; border-radius: 4px; } + #message, #message a { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); } + #load { color: rgba(0,0,0,0.4); text-align: center; font-size: 13px; } + @media (max-width: 600px) { + body, #message { margin-top: 0; background: white; box-shadow: none; } + body { border-top: 16px solid #ffa100; } + } + </style> + </head> + <body> + <div id="message"> + <h2>404</h2> + <h1>Page Not Found</h1> + <p>The specified file was not found on this website. Please check the URL for mistakes and try again.</p> + <h3>Why am I seeing this?</h3> + <p>This page was generated by the Firebase Command-Line Interface. To modify it, edit the <code>404.html</code> file in your project's configured <code>public</code> directory.</p> + </div> + </body> +</html> diff --git a/takima-AR/README.md b/takima-AR/README.md deleted file mode 100644 index 3c444ffb..00000000 --- a/takima-AR/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# TakimaAR - -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.2.4. - -## Development server - -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. - -## Code scaffolding - -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. - -## Build - -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Running unit tests - -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/takima-AR/angular.json b/takima-AR/angular.json deleted file mode 100644 index eaaac9d8..00000000 --- a/takima-AR/angular.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "takima-AR": { - "projectType": "application", - "schematics": { - "@schematics/angular:component": { - "style": "scss" - } - }, - "root": "", - "sourceRoot": "src", - "prefix": "app", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:browser", - "options": { - "outputPath": "dist/takima-ar", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": [ - "zone.js" - ], - "tsConfig": "tsconfig.app.json", - "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "src/styles.scss" - ], - "scripts": [] - }, - "configurations": { - "production": { - "budgets": [ - { - "type": "initial", - "maximumWarning": "500kb", - "maximumError": "1mb" - }, - { - "type": "anyComponentStyle", - "maximumWarning": "2kb", - "maximumError": "4kb" - } - ], - "outputHashing": "all" - }, - "development": { - "buildOptimizer": false, - "optimization": false, - "vendorChunk": true, - "extractLicenses": false, - "sourceMap": true, - "namedChunks": true, - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.development.ts" - } - ] - } - }, - "defaultConfiguration": "production" - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "configurations": { - "production": { - "browserTarget": "takima-AR:build:production" - }, - "development": { - "browserTarget": "takima-AR:build:development" - } - }, - "defaultConfiguration": "development" - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "browserTarget": "takima-AR:build" - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "polyfills": [ - "zone.js", - "zone.js/testing" - ], - "tsConfig": "tsconfig.spec.json", - "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "src/styles.scss" - ], - "scripts": [] - } - }, - "deploy": { - "builder": "@angular/fire:deploy", - "options": { - "prerender": false, - "ssr": false, - "browserTarget": "takima-AR:build:production", - "firebaseProject": "takima-ar-eee39", - "firebaseHostingSite": "takima" - } - } - } - } - }, - "cli": { - "analytics": "7b1cdb18-b4ac-458f-acd0-0d0ce2274a07" - } -} \ No newline at end of file diff --git a/takima-AR/firebase.json b/takima-AR/firebase.json deleted file mode 100644 index 2a029746..00000000 --- a/takima-AR/firebase.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "hosting": { - "target": "takima-AR", - "public": "dist/takima-ar", - "ignore": [ - "**/.*" - ], - "headers": [ - { - "source": "*.[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f].+(css|js)", - "headers": [ - { - "key": "Cache-Control", - "value": "public,max-age=31536000,immutable" - } - ] - }, - { - "source": "/@(ngsw-worker.js|ngsw.json)", - "headers": [ - { - "key": "Cache-Control", - "value": "no-cache" - } - ] - } - ], - "rewrites": [ - { - "source": "**", - "destination": "/index.html" - } - ] - } -} \ No newline at end of file diff --git a/takima-AR/index.html b/takima-AR/index.html new file mode 100644 index 00000000..75bcde37 --- /dev/null +++ b/takima-AR/index.html @@ -0,0 +1,89 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Welcome to Firebase Hosting</title> + + <!-- update the version number as needed --> + <script defer src="/__/firebase/9.18.0/firebase-app-compat.js"></script> + <!-- include only the Firebase features as you need --> + <script defer src="/__/firebase/9.18.0/firebase-auth-compat.js"></script> + <script defer src="/__/firebase/9.18.0/firebase-database-compat.js"></script> + <script defer src="/__/firebase/9.18.0/firebase-firestore-compat.js"></script> + <script defer src="/__/firebase/9.18.0/firebase-functions-compat.js"></script> + <script defer src="/__/firebase/9.18.0/firebase-messaging-compat.js"></script> + <script defer src="/__/firebase/9.18.0/firebase-storage-compat.js"></script> + <script defer src="/__/firebase/9.18.0/firebase-analytics-compat.js"></script> + <script defer src="/__/firebase/9.18.0/firebase-remote-config-compat.js"></script> + <script defer src="/__/firebase/9.18.0/firebase-performance-compat.js"></script> + <!-- + initialize the SDK after all desired features are loaded, set useEmulator to false + to avoid connecting the SDK to running emulators. + --> + <script defer src="/__/firebase/init.js?useEmulator=true"></script> + + <style media="screen"> + body { background: #ECEFF1; color: rgba(0,0,0,0.87); font-family: Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 0; } + #message { background: white; max-width: 360px; margin: 100px auto 16px; padding: 32px 24px; border-radius: 3px; } + #message h2 { color: #ffa100; font-weight: bold; font-size: 16px; margin: 0 0 8px; } + #message h1 { font-size: 22px; font-weight: 300; color: rgba(0,0,0,0.6); margin: 0 0 16px;} + #message p { line-height: 140%; margin: 16px 0 24px; font-size: 14px; } + #message a { display: block; text-align: center; background: #039be5; text-transform: uppercase; text-decoration: none; color: white; padding: 16px; border-radius: 4px; } + #message, #message a { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); } + #load { color: rgba(0,0,0,0.4); text-align: center; font-size: 13px; } + @media (max-width: 600px) { + body, #message { margin-top: 0; background: white; box-shadow: none; } + body { border-top: 16px solid #ffa100; } + } + </style> + </head> + <body> + <div id="message"> + <h2>Welcome</h2> + <h1>Firebase Hosting Setup Complete</h1> + <p>You're seeing this because you've successfully setup Firebase Hosting. Now it's time to go build something extraordinary!</p> + <a target="_blank" href="https://firebase.google.com/docs/hosting/">Open Hosting Documentation</a> + </div> + <p id="load">Firebase SDK Loading…</p> + + <script> + document.addEventListener('DOMContentLoaded', function() { + const loadEl = document.querySelector('#load'); + // // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 + // // The Firebase SDK is initialized and available here! + // + // firebase.auth().onAuthStateChanged(user => { }); + // firebase.database().ref('/path/to/ref').on('value', snapshot => { }); + // firebase.firestore().doc('/foo/bar').get().then(() => { }); + // firebase.functions().httpsCallable('yourFunction')().then(() => { }); + // firebase.messaging().requestPermission().then(() => { }); + // firebase.storage().ref('/path/to/ref').getDownloadURL().then(() => { }); + // firebase.analytics(); // call to activate + // firebase.analytics().logEvent('tutorial_completed'); + // firebase.performance(); // call to activate + // + // // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 + + try { + let app = firebase.app(); + let features = [ + 'auth', + 'database', + 'firestore', + 'functions', + 'messaging', + 'storage', + 'analytics', + 'remoteConfig', + 'performance', + ].filter(feature => typeof app[feature] === 'function'); + loadEl.textContent = `Firebase SDK loaded with ${features.join(', ')}`; + } catch (e) { + console.error(e); + loadEl.textContent = 'Error loading the Firebase SDK, check the console.'; + } + }); + </script> + </body> +</html> diff --git a/takima-AR/package-lock.json b/takima-AR/package-lock.json deleted file mode 100644 index 0c03f643..00000000 --- a/takima-AR/package-lock.json +++ /dev/null @@ -1,21812 +0,0 @@ -{ - "name": "takima-ar", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "takima-ar", - "version": "0.0.0", - "dependencies": { - "@angular/animations": "^15.2.0", - "@angular/common": "^15.2.0", - "@angular/compiler": "^15.2.0", - "@angular/core": "^15.2.0", - "@angular/fire": "^7.5.0", - "@angular/forms": "^15.2.0", - "@angular/platform-browser": "^15.2.0", - "@angular/platform-browser-dynamic": "^15.2.0", - "@angular/router": "^15.2.0", - "firebase": "^9.18.0", - "rxjs": "~7.8.0", - "tslib": "^2.3.0", - "zone.js": "~0.12.0" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^15.2.4", - "@angular/cli": "~15.2.4", - "@angular/compiler-cli": "^15.2.0", - "@types/jasmine": "~4.3.0", - "jasmine-core": "~4.5.0", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage": "~2.2.0", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "~2.0.0", - "typescript": "~4.9.4" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "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.1502.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.4.tgz", - "integrity": "sha512-bDBcaRMBfXFfK9MpvfNO926F1rL0PEw+mveXxq3/SSql+1XP/hrc5TVGwnoim4g6DqsGmu9upS5DyJ6PnL/hHA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "15.2.4", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.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": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.2.4.tgz", - "integrity": "sha512-wt0S4oz0vxuW0/Ak5X0vQ7s7TSPynmktVNJblu9SFRgwCD3kplV2B693F+M6t8eLzSy0UCSbZp9h3Ae8gLEiEw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1502.4", - "@angular-devkit/build-webpack": "0.1502.4", - "@angular-devkit/core": "15.2.4", - "@babel/core": "7.20.12", - "@babel/generator": "7.20.14", - "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/helper-split-export-declaration": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.20.7", - "@babel/plugin-transform-async-to-generator": "7.20.7", - "@babel/plugin-transform-runtime": "7.19.6", - "@babel/preset-env": "7.20.2", - "@babel/runtime": "7.20.13", - "@babel/template": "7.20.7", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.2.4", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.13", - "babel-loader": "9.1.2", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.5", - "cacache": "17.0.4", - "chokidar": "3.5.3", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.16", - "css-loader": "6.7.3", - "esbuild-wasm": "0.17.8", - "glob": "8.1.0", - "https-proxy-agent": "5.0.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "karma-source-map-support": "1.4.0", - "less": "4.1.3", - "less-loader": "11.1.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.29.0", - "mini-css-extract-plugin": "2.7.2", - "open": "8.4.1", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "piscina": "3.2.0", - "postcss": "8.4.21", - "postcss-loader": "7.0.2", - "resolve-url-loader": "5.0.0", - "rxjs": "6.6.7", - "sass": "1.58.1", - "sass-loader": "13.2.0", - "semver": "7.3.8", - "source-map-loader": "4.0.1", - "source-map-support": "0.5.21", - "terser": "5.16.3", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "tslib": "2.5.0", - "webpack": "5.76.1", - "webpack-dev-middleware": "6.0.1", - "webpack-dev-server": "4.11.1", - "webpack-merge": "5.8.0", - "webpack-subresource-integrity": "5.1.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "optionalDependencies": { - "esbuild": "0.17.8" - }, - "peerDependencies": { - "@angular/compiler-cli": "^15.0.0", - "@angular/localize": "^15.0.0", - "@angular/platform-server": "^15.0.0", - "@angular/service-worker": "^15.0.0", - "karma": "^6.3.0", - "ng-packagr": "^15.0.0", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.8.2 <5.0" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/platform-server": { - "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.1502.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1502.4.tgz", - "integrity": "sha512-Bs/pxcY3517QAVyAalDxJgjc93KWQos+dFdgEQrKxj/VTs1BTYnLbb2M8Y7MoxVnfH4S+qqxGe5B57T+TlB3Eg==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1502.4", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.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": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.4.tgz", - "integrity": "sha512-yl+0j1bMwJLKShsyCXw77tbJG8Sd21+itisPLL2MgEpLNAO252kr9zG4TLlFRJyKVftm2l1h78KjqvM5nbOXNg==", - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.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==", - "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==" - }, - "node_modules/@angular-devkit/schematics": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.4.tgz", - "integrity": "sha512-/W7/vvn59PAVLzhcvD4/N/E8RDhub8ny1A7I96LTRjC5o+yvVV16YJ4YJzolrRrIEN01KmLVQJ9A58VCaweMgw==", - "dependencies": { - "@angular-devkit/core": "15.2.4", - "jsonc-parser": "3.2.0", - "magic-string": "0.29.0", - "ora": "5.4.1", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.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==", - "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==" - }, - "node_modules/@angular/animations": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.2.3.tgz", - "integrity": "sha512-65MTsTGAoJXtfSek6Scc3g9ZD6abs+QzcWjgFek0hFX2Lgc144lhEBBmTolFEjPFAS23hjdPQHztegIT92WPAA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/core": "15.2.3" - } - }, - "node_modules/@angular/cli": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.4.tgz", - "integrity": "sha512-nQFnrt9aWwqkyhJMaZvjHXXuxeR1pZNcpZEzTA5nXtpVeNs8U7EBFCyJ+cYecFX0LHe36SoxXcbfnNEKHt3NVQ==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1502.4", - "@angular-devkit/core": "15.2.4", - "@angular-devkit/schematics": "15.2.4", - "@schematics/angular": "15.2.4", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "3.0.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "npm-package-arg": "10.1.0", - "npm-pick-manifest": "8.0.1", - "open": "8.4.1", - "ora": "5.4.1", - "pacote": "15.1.0", - "resolve": "1.22.1", - "semver": "7.3.8", - "symbol-observable": "4.0.0", - "yargs": "17.6.2" - }, - "bin": { - "ng": "bin/ng.js" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/common": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.3.tgz", - "integrity": "sha512-J68CSb57XadC2weHw7kmHjCdrHNgxPv8ZW6KlnmYvIRJrkKsZuCl+PvFe90VMDvHtlBnSnz8sjAPqoUxesMRNg==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/core": "15.2.3", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/compiler": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.2.3.tgz", - "integrity": "sha512-KdEb5vWptRON6lXhhu93DLog4ekfrlHD74bOWbGQ2F40mycXqLNigOxbDCYifIAeE0xmRxbyV9KBvS6LKLC9uA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/core": "15.2.3" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } - } - }, - "node_modules/@angular/compiler-cli": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.2.3.tgz", - "integrity": "sha512-n52yntOPnVeQdNq612YyQ1KW27+BZq1YIxtkST6Xmrv6rFuduLVtBLMl+CpZ3vONBzMI1fY6svck6fPb0x4kbQ==", - "dev": true, - "dependencies": { - "@babel/core": "7.19.3", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.11.0", - "magic-string": "^0.27.0", - "reflect-metadata": "^0.1.2", - "semver": "^7.0.0", - "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.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/compiler": "15.2.3", - "typescript": ">=4.8.2 <5.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", - "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/compiler-cli/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular/compiler-cli/node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular/core": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.2.3.tgz", - "integrity": "sha512-e+d6upOqAyqE7MxxRthd1ZJILSKX+hXHCmujc48id8G3zhP0tD59iZ03KgUe8RMvXMlSBUhwOwDX39tr701eig==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4 || ~0.12.0 || ~0.13.0" - } - }, - "node_modules/@angular/fire": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@angular/fire/-/fire-7.5.0.tgz", - "integrity": "sha512-M/JJ5SKnpfNZFLKl0Awjn3r2NhURy2Mx+E8EzSDWSg1sHD7IThrynZYPUSZR+cd3KGsGoEacIP2x8Ra+0a+CVg==", - "dependencies": { - "@angular-devkit/schematics": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "@schematics/angular": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "file-loader": "^6.2.0", - "firebase": "^9.8.0", - "fs-extra": "^8.0.1", - "fuzzy": "^0.1.3", - "inquirer": "^8.1.1", - "inquirer-autocomplete-prompt": "^1.0.1", - "jsonc-parser": "^3.0.0", - "node-fetch": "^2.6.1", - "open": "^8.0.0", - "ora": "^5.3.0", - "rxfire": "^6.0.0", - "semver": "^7.1.3", - "triple-beam": "^1.3.0", - "tslib": "^2.0.0", - "winston": "^3.0.0" - }, - "peerDependencies": { - "@angular/common": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "@angular/core": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "@angular/platform-browser": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "@angular/platform-browser-dynamic": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "firebase-tools": "^9.9.0 || ^10.0.0 || ^11.0.0", - "rxjs": "~6.6.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "firebase-tools": { - "optional": true - } - } - }, - "node_modules/@angular/forms": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.2.3.tgz", - "integrity": "sha512-+ZcmpmIah87JsPF2Nvh2QoklgW9hWXp4azMPrXsuxackZXKTl/xl8NY32WABQndbhVjtSj08SHCuKd0rPHvpGw==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/common": "15.2.3", - "@angular/core": "15.2.3", - "@angular/platform-browser": "15.2.3", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/platform-browser": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.2.3.tgz", - "integrity": "sha512-73EdTiw9jR/l/t9MBKD5slWcIiaE3bHQY4oCKzywMYu6ANci+WkCu7Ek2SGGq69M4+bKRo1/e/5XF4vvmNOBYQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/animations": "15.2.3", - "@angular/common": "15.2.3", - "@angular/core": "15.2.3" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.2.3.tgz", - "integrity": "sha512-HQ+xJzSa1O75s8Trcem8TnFu1rjbrzyRXfus/9Dpxam46ywIt1VuowSegz8K4hBaXnNFn53mZVpyK1hBtPq/bg==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/common": "15.2.3", - "@angular/compiler": "15.2.3", - "@angular/core": "15.2.3", - "@angular/platform-browser": "15.2.3" - } - }, - "node_modules/@angular/router": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.2.3.tgz", - "integrity": "sha512-rbgAANRKsx6KPg/oTubyMjGfvSTh+42vj2/fUsARtIqi+kwr1FK/NM/64b1cv+oGYdxZsUkSxNPv4lONjh/DZg==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/common": "15.2.3", - "@angular/core": "15.2.3", - "@angular/platform-browser": "15.2.3", - "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/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7", - "@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==", - "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/@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", - "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@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.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", - "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" - }, - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "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.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.0" - }, - "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==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" - }, - "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.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "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.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", - "dev": true, - "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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@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.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "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-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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - }, - "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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "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.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" - }, - "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.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - }, - "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.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "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.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" - }, - "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.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", - "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - }, - "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.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@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.20.1", - "@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.20.2", - "@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.20.0", - "@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.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@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.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@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.19.0", - "@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.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@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/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.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.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/@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.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/android-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", - "integrity": "sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz", - "integrity": "sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.8.tgz", - "integrity": "sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz", - "integrity": "sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz", - "integrity": "sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz", - "integrity": "sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz", - "integrity": "sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz", - "integrity": "sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz", - "integrity": "sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz", - "integrity": "sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz", - "integrity": "sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz", - "integrity": "sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz", - "integrity": "sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz", - "integrity": "sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz", - "integrity": "sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz", - "integrity": "sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz", - "integrity": "sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz", - "integrity": "sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz", - "integrity": "sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz", - "integrity": "sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz", - "integrity": "sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz", - "integrity": "sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@firebase/analytics": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.4.tgz", - "integrity": "sha512-Mb2UaD0cyJ9DrTk4Okz8wqpjZuVRVXHZOjhbQcmGb8VtibXY1+jm/k3eJ21r7NqUKnjWejYM2EX+hI9+dtXGkQ==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/analytics-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.4.tgz", - "integrity": "sha512-ZN4K49QwOR8EWIUTV03VBdcVkz8sVsfJmve4g2+FEIj0kyTK0MdoVTWNOwWj9TVi2p/7FvKRKkpWxkydmi9x7g==", - "dependencies": { - "@firebase/analytics": "0.9.4", - "@firebase/analytics-types": "0.8.0", - "@firebase/component": "0.6.4", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/analytics-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.0.tgz", - "integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw==" - }, - "node_modules/@firebase/app": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.5.tgz", - "integrity": "sha512-mXO9hrygxCohD8Qy0z8p9ZtuQirmjkjSTuQghH05/kLG1UJqP0TQZBlhP5qwzMTKuu2YpIn3kX2PZoSWti8LDA==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "idb": "7.0.1", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/app-check": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.4.tgz", - "integrity": "sha512-M9qyVTWkEkHXmgwGtObvXQqKcOe9iKAOPqm0pCe74mzgKVTNq157ff39+fxHPb4nFbipToY+GuvtabLUzkHehQ==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/app-check-compat": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.4.tgz", - "integrity": "sha512-s6ON0ixPKe99M1DNYMI2eR5aLwQZgy0z8fuW1tnEbzg5p/N/GKFmqiIHSV4gfp8+X7Fw5NLm7qMfh4xrcPgQCw==", - "dependencies": { - "@firebase/app-check": "0.6.4", - "@firebase/app-check-types": "0.5.0", - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/app-check-interop-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.2.0.tgz", - "integrity": "sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ==" - }, - "node_modules/@firebase/app-check-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.0.tgz", - "integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ==" - }, - "node_modules/@firebase/app-compat": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.5.tgz", - "integrity": "sha512-PSEax7UAc1Qxcksq5GHKb8M9rCsXTJWxWUf6pqhGTWO9UbJnI1tv00ogoCicEHgkXBTkOWMLxCs3318HaGZh4g==", - "dependencies": { - "@firebase/app": "0.9.5", - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/app-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz", - "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==" - }, - "node_modules/@firebase/auth": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.5.tgz", - "integrity": "sha512-Pt/S24qbtJeFPxYxcQHDNgYAuEa9oyCK1XJBQ9Kc3FT1rDMb1OaK6wfnDDrCChQfENdHZVI1pGw4QG6/tO3NWw==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/auth-compat": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.5.tgz", - "integrity": "sha512-xEkR4Buuw8NfyJhMVC3HMvyaODfstpMuo55tK03APoP+X9fnZpQE+ASdacq60qBBvpKF78d+gmAhmh0ISTXZ0w==", - "dependencies": { - "@firebase/auth": "0.21.5", - "@firebase/auth-types": "0.12.0", - "@firebase/component": "0.6.4", - "@firebase/util": "1.9.3", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/auth-compat/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@firebase/auth-interop-types": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz", - "integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==" - }, - "node_modules/@firebase/auth-types": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.0.tgz", - "integrity": "sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==", - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "1.x" - } - }, - "node_modules/@firebase/auth/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@firebase/component": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.4.tgz", - "integrity": "sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA==", - "dependencies": { - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.4.tgz", - "integrity": "sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ==", - "dependencies": { - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "faye-websocket": "0.11.4", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database-compat": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.4.tgz", - "integrity": "sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/database": "0.14.4", - "@firebase/database-types": "0.10.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/database-types": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.4.tgz", - "integrity": "sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ==", - "dependencies": { - "@firebase/app-types": "0.9.0", - "@firebase/util": "1.9.3" - } - }, - "node_modules/@firebase/firestore": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.9.0.tgz", - "integrity": "sha512-At8HeTec3y7EfGjtYqvzON/8896igJgE34zjEndYxKPUKyhQ6xtcM+zhfa8C+lUW6W8qQB6lNzTNNXmF4NxdpQ==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "@firebase/webchannel-wrapper": "0.9.0", - "@grpc/grpc-js": "~1.7.0", - "@grpc/proto-loader": "^0.6.13", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10.10.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/firestore-compat": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.5.tgz", - "integrity": "sha512-gwBFGOqNIgF2TOJ2mKIS1lTQy6I9DytWsmIfvXGV76is53MaZUZXyUZd7oIC8h2Otq6gP3xtvPRQJTMcnQrbFg==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/firestore": "3.9.0", - "@firebase/firestore-types": "2.5.1", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/firestore-types": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.1.tgz", - "integrity": "sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==", - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "1.x" - } - }, - "node_modules/@firebase/firestore/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@firebase/functions": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.4.tgz", - "integrity": "sha512-3H2qh6U+q+nepO5Hds+Ddl6J0pS+zisuBLqqQMRBHv9XpWfu0PnDHklNmE8rZ+ccTEXvBj6zjkPfdxt6NisvlQ==", - "dependencies": { - "@firebase/app-check-interop-types": "0.2.0", - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.4", - "@firebase/messaging-interop-types": "0.2.0", - "@firebase/util": "1.9.3", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/functions-compat": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.4.tgz", - "integrity": "sha512-kxVxTGyLV1MBR3sp3mI+eQ6JBqz0G5bk310F8eX4HzDFk4xjk5xY0KdHktMH+edM2xs1BOg0vwvvsAHczIjB+w==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/functions": "0.9.4", - "@firebase/functions-types": "0.6.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/functions-types": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.0.tgz", - "integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw==" - }, - "node_modules/@firebase/functions/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@firebase/installations": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.4.tgz", - "integrity": "sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/util": "1.9.3", - "idb": "7.0.1", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/installations-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.4.tgz", - "integrity": "sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/installations-types": "0.5.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/installations-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.0.tgz", - "integrity": "sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==", - "peerDependencies": { - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/logger": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz", - "integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/messaging": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.4.tgz", - "integrity": "sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/messaging-interop-types": "0.2.0", - "@firebase/util": "1.9.3", - "idb": "7.0.1", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/messaging-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.4.tgz", - "integrity": "sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/messaging": "0.12.4", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/messaging-interop-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz", - "integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ==" - }, - "node_modules/@firebase/performance": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.4.tgz", - "integrity": "sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/performance-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.4.tgz", - "integrity": "sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/performance": "0.6.4", - "@firebase/performance-types": "0.2.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/performance-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.0.tgz", - "integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA==" - }, - "node_modules/@firebase/remote-config": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.4.tgz", - "integrity": "sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/remote-config-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.4.tgz", - "integrity": "sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/remote-config": "0.4.4", - "@firebase/remote-config-types": "0.3.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/remote-config-types": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz", - "integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA==" - }, - "node_modules/@firebase/storage": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.11.2.tgz", - "integrity": "sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/util": "1.9.3", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/storage-compat": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.2.tgz", - "integrity": "sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==", - "dependencies": { - "@firebase/component": "0.6.4", - "@firebase/storage": "0.11.2", - "@firebase/storage-types": "0.8.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@firebase/app-compat": "0.x" - } - }, - "node_modules/@firebase/storage-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.0.tgz", - "integrity": "sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==", - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "1.x" - } - }, - "node_modules/@firebase/storage/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@firebase/util": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.3.tgz", - "integrity": "sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@firebase/webchannel-wrapper": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.9.0.tgz", - "integrity": "sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg==" - }, - "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/@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.5.tgz", - "integrity": "sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@grpc/grpc-js/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/@grpc/grpc-js/node_modules/protobufjs": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", - "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@grpc/grpc-js/node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "node_modules/@grpc/grpc-js/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "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/@grpc/grpc-js/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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", - "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.11.3", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@grpc/proto-loader/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/@grpc/proto-loader/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "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/@grpc/proto-loader/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==", - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "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==", - "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==", - "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.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "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/@ngtools/webpack": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.2.4.tgz", - "integrity": "sha512-cQ7MsRoGJgPOVnpvFgWhygeSe6zJ0ITiUhjmmuOgpNDfYkrgYxN3Ot/qvQefFei+oGZ1JJ9bRb8lcPKL/apoBQ==", - "dev": true, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^15.0.0", - "typescript": ">=4.8.2 <5.0", - "webpack": "^5.54.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": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@npmcli/git/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/@npmcli/git/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", - "dev": true, - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "lib/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "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==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "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/move-file/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/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", - "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", - "dev": true, - "dependencies": { - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", - "dev": true, - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@schematics/angular": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.4.tgz", - "integrity": "sha512-P9axwKDXEDrGXYcoCuhwv4guhvtIjDCvyZMsQw8IMpfAacTYajka+T3mZrzyTe96Uhu0JwcAW5iUlOZAJhPEdQ==", - "dependencies": { - "@angular-devkit/core": "15.2.4", - "@angular-devkit/schematics": "15.2.4", - "jsonc-parser": "3.2.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", - "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.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/@tufjs/models": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.0.tgz", - "integrity": "sha512-RRMu4uMxWnZlxaIBxahSb2IssFZiu188sndesZflWOe1cA/qUqtemSIoBWbuVKPvvdktapImWNnKpBcc+VrCQw==", - "dev": true, - "dependencies": { - "minimatch": "^6.1.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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.21.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", - "integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", - "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==", - "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==" - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.33", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", - "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/http-proxy": { - "version": "1.17.10", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", - "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/jasmine": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.1.tgz", - "integrity": "sha512-Vu8l+UGcshYmV1VWwULgnV/2RDbBaO6i2Ptx7nd//oJPIZGhoI1YLST4VKagD2Pq/Bc2/7zvtvhM7F3p4SN7kQ==", - "dev": true - }, - "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==" - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "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.15.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz", - "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==" - }, - "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/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/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.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "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/triple-beam": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", - "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" - }, - "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "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==", - "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==" - }, - "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==" - }, - "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==" - }, - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==" - }, - "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.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "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==", - "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/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.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "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==", - "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-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==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "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==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "devOptional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/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/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/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", - "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.30001426", - "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/babel-loader": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", - "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.2", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - }, - "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==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "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/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "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==", - "devOptional": true, - "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==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "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.2", - "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/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.1.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", - "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", - "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/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "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==", - "devOptional": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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==" - }, - "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": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^8.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "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.30001468", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001468.tgz", - "integrity": "sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "devOptional": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/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==", - "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-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", - "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==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "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": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "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-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "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": "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/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "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==" - }, - "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.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "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==", - "dev": true - }, - "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/core-js-compat": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", - "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "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/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/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-loader": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", - "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.19", - "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.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "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/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/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==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "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==", - "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==", - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "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/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/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.333", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.333.tgz", - "integrity": "sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ==" - }, - "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==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, - "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==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/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==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/engine.io": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", - "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", - "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.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "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==" - }, - "node_modules/esbuild": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.8.tgz", - "integrity": "sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.8", - "@esbuild/android-arm64": "0.17.8", - "@esbuild/android-x64": "0.17.8", - "@esbuild/darwin-arm64": "0.17.8", - "@esbuild/darwin-x64": "0.17.8", - "@esbuild/freebsd-arm64": "0.17.8", - "@esbuild/freebsd-x64": "0.17.8", - "@esbuild/linux-arm": "0.17.8", - "@esbuild/linux-arm64": "0.17.8", - "@esbuild/linux-ia32": "0.17.8", - "@esbuild/linux-loong64": "0.17.8", - "@esbuild/linux-mips64el": "0.17.8", - "@esbuild/linux-ppc64": "0.17.8", - "@esbuild/linux-riscv64": "0.17.8", - "@esbuild/linux-s390x": "0.17.8", - "@esbuild/linux-x64": "0.17.8", - "@esbuild/netbsd-x64": "0.17.8", - "@esbuild/openbsd-x64": "0.17.8", - "@esbuild/sunos-x64": "0.17.8", - "@esbuild/win32-arm64": "0.17.8", - "@esbuild/win32-ia32": "0.17.8", - "@esbuild/win32-x64": "0.17.8" - } - }, - "node_modules/esbuild-wasm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.8.tgz", - "integrity": "sha512-zCmpxv95E0FuCmvdw1K836UHnj4EdiQnFfjTby35y3LAjRPtXMj3sbHDRHjbD8Mqg5lTwq3knacr/1qIFU51CQ==", - "dev": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "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==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "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==", - "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/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/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/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/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/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==", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-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==" - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "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==", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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/file-loader/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==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/file-loader/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==" - }, - "node_modules/file-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==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/file-loader/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==", - "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/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==", - "devOptional": true, - "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/firebase": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.18.0.tgz", - "integrity": "sha512-CTV5S3mTtn9zodeWkdeTqiQFyS7t+iskA50V9hVKPCQ4TPw4tnoyNgtNzWUmemFnYadzzsTnAaxsR7UaBJgiqw==", - "dependencies": { - "@firebase/analytics": "0.9.4", - "@firebase/analytics-compat": "0.2.4", - "@firebase/app": "0.9.5", - "@firebase/app-check": "0.6.4", - "@firebase/app-check-compat": "0.3.4", - "@firebase/app-compat": "0.2.5", - "@firebase/app-types": "0.9.0", - "@firebase/auth": "0.21.5", - "@firebase/auth-compat": "0.3.5", - "@firebase/database": "0.14.4", - "@firebase/database-compat": "0.3.4", - "@firebase/firestore": "3.9.0", - "@firebase/firestore-compat": "0.3.5", - "@firebase/functions": "0.9.4", - "@firebase/functions-compat": "0.3.4", - "@firebase/installations": "0.6.4", - "@firebase/installations-compat": "0.2.4", - "@firebase/messaging": "0.12.4", - "@firebase/messaging-compat": "0.2.4", - "@firebase/performance": "0.6.4", - "@firebase/performance-compat": "0.2.4", - "@firebase/remote-config": "0.4.4", - "@firebase/remote-config-compat": "0.2.4", - "@firebase/storage": "0.11.2", - "@firebase/storage-compat": "0.3.2", - "@firebase/util": "1.9.3" - } - }, - "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/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, - "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/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": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "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==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/fuzzy": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", - "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==", - "engines": { - "node": ">= 0.6.0" - } - }, - "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==", - "dev": true, - "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.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "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/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "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==", - "devOptional": true, - "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==" - }, - "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==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", - "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.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "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/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-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.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": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "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.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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/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==" - }, - "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/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.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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/idb": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz", - "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg==" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", - "dev": true, - "dependencies": { - "minimatch": "^6.1.6" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/ignore-walk/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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/immutable": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", - "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", - "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==", - "dev": true, - "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.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", - "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==", - "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-autocomplete-prompt": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz", - "integrity": "sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw==", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "figures": "^3.2.0", - "run-async": "^2.4.0", - "rxjs": "^6.6.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "inquirer": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/inquirer-autocomplete-prompt/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/inquirer-autocomplete-prompt/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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-autocomplete-prompt/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/inquirer-autocomplete-prompt/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/inquirer-autocomplete-prompt/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/inquirer-autocomplete-prompt/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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "devOptional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "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==", - "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==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "devOptional": true, - "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==", - "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==", - "devOptional": true, - "engines": { - "node": ">=0.12.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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "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==", - "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/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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/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": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "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-core": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.5.0.tgz", - "integrity": "sha512-9PMzyvhtocxb3aXJVOPqBDswdgyAeSB81QnLop4npOpbqnheaTEwPc9ZloQeVswugPManznQBjD8kWDTjlnHuw==", - "dev": true - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/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==", - "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==", - "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==", - "dev": true - }, - "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/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "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==" - }, - "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==" - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "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/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": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", - "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.0.5", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/karma-coverage/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/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": "5.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", - "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", - "dev": true, - "dependencies": { - "jasmine-core": "^4.1.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "karma": "^6.0.0" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.0.0.tgz", - "integrity": "sha512-SB8HNNiazAHXM1vGEzf8/tSyEhkfxuDdhYdPBX2Mwgzt0OuF2gicApQ+uvXLID/gXyJQgvrM9+1/2SxZFUUDIA==", - "dev": true, - "peerDependencies": { - "jasmine-core": "^4.0.0", - "karma": "^6.0.0", - "karma-jasmine": "^5.0.0" - } - }, - "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/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "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/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.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", - "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", - "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/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "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/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==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "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==" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "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/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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", - "dev": true, - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/logform": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", - "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", - "dependencies": { - "@colors/colors": "1.5.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", - "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/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/make-fetch-happen/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/make-fetch-happen/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "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": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/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/make-fetch-happen/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-fetch-happen/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-fetch-happen/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/make-fetch-happen/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/make-fetch-happen/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "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.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", - "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==" - }, - "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==", - "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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", - "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", - "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/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.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", - "dev": true, - "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-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "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-fetch/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-fetch/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "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-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "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-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "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-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "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/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "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/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "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/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==" - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", - "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", - "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/needle/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, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==" - }, - "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.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "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.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", - "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.13 || ^14.13 || >=16" - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "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.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" - }, - "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": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-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": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", - "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-packlist": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", - "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", - "dev": true, - "dependencies": { - "ignore-walk": "^6.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", - "dev": true, - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "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": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "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/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.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", - "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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": "15.1.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.0.tgz", - "integrity": "sha512-FFcjtIl+BQNfeliSm7MZz5cpdohvUV1yjGnqgVM4UnVF7JslRY0ImXAygdaCDV0jjUADEWu4y5xsDV8brtrTLg==", - "dev": true, - "dependencies": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.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": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parse5-html-rewriting-stream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", - "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", - "dev": true, - "dependencies": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-html-rewriting-stream/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "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-sax-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", - "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", - "dev": true, - "dependencies": { - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-sax-parser/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/parse5-sax-parser/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "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-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-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/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==", - "devOptional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "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.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "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-loader": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz", - "integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==", - "dev": true, - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.8" - }, - "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-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-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.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/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "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/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "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==", - "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.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "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/read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", - "dev": true, - "dependencies": { - "glob": "^8.0.1", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "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==", - "devOptional": true, - "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==", - "dev": true - }, - "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.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "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.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "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/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "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==", - "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/rxfire": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/rxfire/-/rxfire-6.0.3.tgz", - "integrity": "sha512-77nkyffHh7jgfi1YA/N9RI+kWxYpgKk6GRML1lyersvaqbJt4hkvWwk1rWib9Rb5Lr5mT+Ha45lu7nM79sJCZA==", - "dependencies": { - "tslib": "^1.9.0 || ~2.1.0" - }, - "peerDependencies": { - "firebase": "^9.0.0", - "rxjs": "^6.0.0 || ^7.0.0" - } - }, - "node_modules/rxfire/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "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==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-stable-stringify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sass": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.1.tgz", - "integrity": "sha512-bnINi6nPXbP1XNRaranMFEBZWUfdW/AF16Ql5+ypRxfTvCRTTKrLsMIakyDcayUt2t/RZotmL4kgJwNH5xO+bg==", - "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.2.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", - "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", - "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 || ^8.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/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "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/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/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.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "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/semver/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/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.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "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/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==" - }, - "node_modules/sigstore": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.1.1.tgz", - "integrity": "sha512-4hR3tPP1y59YWlaoAgAWFVZ7srTjNWOrrpkQXWu05qP0BvwFYyt3K3l848+IHo+mKhkOzGcNDf7ktASXLEPC+A==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" - }, - "bin": { - "sigstore": "bin/sigstore.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "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": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "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.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", - "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==", - "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.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", - "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", - "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-loader/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/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.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.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "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/ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "engines": { - "node": "*" - } - }, - "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.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", - "dev": true, - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.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==", - "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/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/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/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/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/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/terser": { - "version": "5.16.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", - "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", - "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.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", - "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" - }, - "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==", - "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==", - "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==" - }, - "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==", - "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-webpack-plugin/node_modules/terser": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", - "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", - "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/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-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "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==" - }, - "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==", - "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==", - "dev": true, - "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==", - "devOptional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "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/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/tuf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.1.tgz", - "integrity": "sha512-WTp382/PR96k0dI4GD5RdiRhgOU0rAC7+lnoih/5pZg3cyb3aNMqDozleEEWwyfT3+FOg7Qz9JU3n6A44tLSHw==", - "dev": true, - "dependencies": { - "@tufjs/models": "1.0.0", - "make-fetch-happen": "^11.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "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": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "dependencies": { - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/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.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.34.tgz", - "integrity": "sha512-cJMeh/eOILyGu0ejgTKB95yKT3zOenSe9UGE3vj6WfiOwgGYnmATUsnDixMFvdU+rNMvWih83hrUP8VwhF9yXQ==", - "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.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "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==", - "engines": { - "node": ">= 4.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==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "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==" - }, - "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": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.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/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==", - "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==", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "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==" - }, - "node_modules/webpack": { - "version": "5.76.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", - "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==", - "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": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz", - "integrity": "sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", - "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.1.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/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-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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "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==", - "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/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/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "node_modules/winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "dependencies": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "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==", - "dev": true - }, - "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/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": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "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.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "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.1.1" - }, - "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==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/zone.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.12.0.tgz", - "integrity": "sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q==", - "dependencies": { - "tslib": "^2.3.0" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@angular-devkit/architect": { - "version": "0.1502.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.4.tgz", - "integrity": "sha512-bDBcaRMBfXFfK9MpvfNO926F1rL0PEw+mveXxq3/SSql+1XP/hrc5TVGwnoim4g6DqsGmu9upS5DyJ6PnL/hHA==", - "dev": true, - "requires": { - "@angular-devkit/core": "15.2.4", - "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": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.2.4.tgz", - "integrity": "sha512-wt0S4oz0vxuW0/Ak5X0vQ7s7TSPynmktVNJblu9SFRgwCD3kplV2B693F+M6t8eLzSy0UCSbZp9h3Ae8gLEiEw==", - "dev": true, - "requires": { - "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1502.4", - "@angular-devkit/build-webpack": "0.1502.4", - "@angular-devkit/core": "15.2.4", - "@babel/core": "7.20.12", - "@babel/generator": "7.20.14", - "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/helper-split-export-declaration": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.20.7", - "@babel/plugin-transform-async-to-generator": "7.20.7", - "@babel/plugin-transform-runtime": "7.19.6", - "@babel/preset-env": "7.20.2", - "@babel/runtime": "7.20.13", - "@babel/template": "7.20.7", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.2.4", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.13", - "babel-loader": "9.1.2", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.5", - "cacache": "17.0.4", - "chokidar": "3.5.3", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.16", - "css-loader": "6.7.3", - "esbuild": "0.17.8", - "esbuild-wasm": "0.17.8", - "glob": "8.1.0", - "https-proxy-agent": "5.0.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "karma-source-map-support": "1.4.0", - "less": "4.1.3", - "less-loader": "11.1.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.29.0", - "mini-css-extract-plugin": "2.7.2", - "open": "8.4.1", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "piscina": "3.2.0", - "postcss": "8.4.21", - "postcss-loader": "7.0.2", - "resolve-url-loader": "5.0.0", - "rxjs": "6.6.7", - "sass": "1.58.1", - "sass-loader": "13.2.0", - "semver": "7.3.8", - "source-map-loader": "4.0.1", - "source-map-support": "0.5.21", - "terser": "5.16.3", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "tslib": "2.5.0", - "webpack": "5.76.1", - "webpack-dev-middleware": "6.0.1", - "webpack-dev-server": "4.11.1", - "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.1502.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1502.4.tgz", - "integrity": "sha512-Bs/pxcY3517QAVyAalDxJgjc93KWQos+dFdgEQrKxj/VTs1BTYnLbb2M8Y7MoxVnfH4S+qqxGe5B57T+TlB3Eg==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1502.4", - "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": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.4.tgz", - "integrity": "sha512-yl+0j1bMwJLKShsyCXw77tbJG8Sd21+itisPLL2MgEpLNAO252kr9zG4TLlFRJyKVftm2l1h78KjqvM5nbOXNg==", - "requires": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.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==", - "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==" - } - } - }, - "@angular-devkit/schematics": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.4.tgz", - "integrity": "sha512-/W7/vvn59PAVLzhcvD4/N/E8RDhub8ny1A7I96LTRjC5o+yvVV16YJ4YJzolrRrIEN01KmLVQJ9A58VCaweMgw==", - "requires": { - "@angular-devkit/core": "15.2.4", - "jsonc-parser": "3.2.0", - "magic-string": "0.29.0", - "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==", - "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==" - } - } - }, - "@angular/animations": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.2.3.tgz", - "integrity": "sha512-65MTsTGAoJXtfSek6Scc3g9ZD6abs+QzcWjgFek0hFX2Lgc144lhEBBmTolFEjPFAS23hjdPQHztegIT92WPAA==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/cli": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.4.tgz", - "integrity": "sha512-nQFnrt9aWwqkyhJMaZvjHXXuxeR1pZNcpZEzTA5nXtpVeNs8U7EBFCyJ+cYecFX0LHe36SoxXcbfnNEKHt3NVQ==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1502.4", - "@angular-devkit/core": "15.2.4", - "@angular-devkit/schematics": "15.2.4", - "@schematics/angular": "15.2.4", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "3.0.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "npm-package-arg": "10.1.0", - "npm-pick-manifest": "8.0.1", - "open": "8.4.1", - "ora": "5.4.1", - "pacote": "15.1.0", - "resolve": "1.22.1", - "semver": "7.3.8", - "symbol-observable": "4.0.0", - "yargs": "17.6.2" - } - }, - "@angular/common": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.3.tgz", - "integrity": "sha512-J68CSb57XadC2weHw7kmHjCdrHNgxPv8ZW6KlnmYvIRJrkKsZuCl+PvFe90VMDvHtlBnSnz8sjAPqoUxesMRNg==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/compiler": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.2.3.tgz", - "integrity": "sha512-KdEb5vWptRON6lXhhu93DLog4ekfrlHD74bOWbGQ2F40mycXqLNigOxbDCYifIAeE0xmRxbyV9KBvS6LKLC9uA==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/compiler-cli": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.2.3.tgz", - "integrity": "sha512-n52yntOPnVeQdNq612YyQ1KW27+BZq1YIxtkST6Xmrv6rFuduLVtBLMl+CpZ3vONBzMI1fY6svck6fPb0x4kbQ==", - "dev": true, - "requires": { - "@babel/core": "7.19.3", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.11.0", - "magic-string": "^0.27.0", - "reflect-metadata": "^0.1.2", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, - "dependencies": { - "@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.13" - } - } - } - }, - "@angular/core": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.2.3.tgz", - "integrity": "sha512-e+d6upOqAyqE7MxxRthd1ZJILSKX+hXHCmujc48id8G3zhP0tD59iZ03KgUe8RMvXMlSBUhwOwDX39tr701eig==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/fire": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@angular/fire/-/fire-7.5.0.tgz", - "integrity": "sha512-M/JJ5SKnpfNZFLKl0Awjn3r2NhURy2Mx+E8EzSDWSg1sHD7IThrynZYPUSZR+cd3KGsGoEacIP2x8Ra+0a+CVg==", - "requires": { - "@angular-devkit/schematics": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "@schematics/angular": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "file-loader": "^6.2.0", - "firebase": "^9.8.0", - "fs-extra": "^8.0.1", - "fuzzy": "^0.1.3", - "inquirer": "^8.1.1", - "inquirer-autocomplete-prompt": "^1.0.1", - "jsonc-parser": "^3.0.0", - "node-fetch": "^2.6.1", - "open": "^8.0.0", - "ora": "^5.3.0", - "rxfire": "^6.0.0", - "semver": "^7.1.3", - "triple-beam": "^1.3.0", - "tslib": "^2.0.0", - "winston": "^3.0.0" - } - }, - "@angular/forms": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.2.3.tgz", - "integrity": "sha512-+ZcmpmIah87JsPF2Nvh2QoklgW9hWXp4azMPrXsuxackZXKTl/xl8NY32WABQndbhVjtSj08SHCuKd0rPHvpGw==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/platform-browser": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.2.3.tgz", - "integrity": "sha512-73EdTiw9jR/l/t9MBKD5slWcIiaE3bHQY4oCKzywMYu6ANci+WkCu7Ek2SGGq69M4+bKRo1/e/5XF4vvmNOBYQ==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/platform-browser-dynamic": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.2.3.tgz", - "integrity": "sha512-HQ+xJzSa1O75s8Trcem8TnFu1rjbrzyRXfus/9Dpxam46ywIt1VuowSegz8K4hBaXnNFn53mZVpyK1hBtPq/bg==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/router": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.2.3.tgz", - "integrity": "sha512-rbgAANRKsx6KPg/oTubyMjGfvSTh+42vj2/fUsARtIqi+kwr1FK/NM/64b1cv+oGYdxZsUkSxNPv4lONjh/DZg==", - "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 - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", - "dev": true - }, - "@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.7", - "@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==", - "dev": true, - "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.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz", - "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz", - "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" - } - }, - "@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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@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.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.21.0" - } - }, - "@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==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" - } - }, - "@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.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "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.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - } - }, - "@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", - "dev": true - }, - "@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@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.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - } - }, - "@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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@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.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@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.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" - } - }, - "@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.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@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.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@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.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" - } - }, - "@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.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", - "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@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.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - } - }, - "@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.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@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.20.1", - "@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.20.2", - "@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.20.0", - "@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.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@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.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@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.19.0", - "@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.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@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/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", - "dev": true, - "requires": { - "@babel/types": "^7.21.3", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@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" - } - } - } - }, - "@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" - }, - "@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "requires": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "@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/android-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", - "integrity": "sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz", - "integrity": "sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.8.tgz", - "integrity": "sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz", - "integrity": "sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz", - "integrity": "sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz", - "integrity": "sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz", - "integrity": "sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz", - "integrity": "sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz", - "integrity": "sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz", - "integrity": "sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz", - "integrity": "sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz", - "integrity": "sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz", - "integrity": "sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz", - "integrity": "sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz", - "integrity": "sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz", - "integrity": "sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz", - "integrity": "sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz", - "integrity": "sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz", - "integrity": "sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz", - "integrity": "sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz", - "integrity": "sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz", - "integrity": "sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==", - "dev": true, - "optional": true - }, - "@firebase/analytics": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.9.4.tgz", - "integrity": "sha512-Mb2UaD0cyJ9DrTk4Okz8wqpjZuVRVXHZOjhbQcmGb8VtibXY1+jm/k3eJ21r7NqUKnjWejYM2EX+hI9+dtXGkQ==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/analytics-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.4.tgz", - "integrity": "sha512-ZN4K49QwOR8EWIUTV03VBdcVkz8sVsfJmve4g2+FEIj0kyTK0MdoVTWNOwWj9TVi2p/7FvKRKkpWxkydmi9x7g==", - "requires": { - "@firebase/analytics": "0.9.4", - "@firebase/analytics-types": "0.8.0", - "@firebase/component": "0.6.4", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/analytics-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.0.tgz", - "integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw==" - }, - "@firebase/app": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.5.tgz", - "integrity": "sha512-mXO9hrygxCohD8Qy0z8p9ZtuQirmjkjSTuQghH05/kLG1UJqP0TQZBlhP5qwzMTKuu2YpIn3kX2PZoSWti8LDA==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "idb": "7.0.1", - "tslib": "^2.1.0" - } - }, - "@firebase/app-check": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.6.4.tgz", - "integrity": "sha512-M9qyVTWkEkHXmgwGtObvXQqKcOe9iKAOPqm0pCe74mzgKVTNq157ff39+fxHPb4nFbipToY+GuvtabLUzkHehQ==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/app-check-compat": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.4.tgz", - "integrity": "sha512-s6ON0ixPKe99M1DNYMI2eR5aLwQZgy0z8fuW1tnEbzg5p/N/GKFmqiIHSV4gfp8+X7Fw5NLm7qMfh4xrcPgQCw==", - "requires": { - "@firebase/app-check": "0.6.4", - "@firebase/app-check-types": "0.5.0", - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/app-check-interop-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.2.0.tgz", - "integrity": "sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ==" - }, - "@firebase/app-check-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.0.tgz", - "integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ==" - }, - "@firebase/app-compat": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.5.tgz", - "integrity": "sha512-PSEax7UAc1Qxcksq5GHKb8M9rCsXTJWxWUf6pqhGTWO9UbJnI1tv00ogoCicEHgkXBTkOWMLxCs3318HaGZh4g==", - "requires": { - "@firebase/app": "0.9.5", - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/app-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz", - "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==" - }, - "@firebase/auth": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.21.5.tgz", - "integrity": "sha512-Pt/S24qbtJeFPxYxcQHDNgYAuEa9oyCK1XJBQ9Kc3FT1rDMb1OaK6wfnDDrCChQfENdHZVI1pGw4QG6/tO3NWw==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "@firebase/auth-compat": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.3.5.tgz", - "integrity": "sha512-xEkR4Buuw8NfyJhMVC3HMvyaODfstpMuo55tK03APoP+X9fnZpQE+ASdacq60qBBvpKF78d+gmAhmh0ISTXZ0w==", - "requires": { - "@firebase/auth": "0.21.5", - "@firebase/auth-types": "0.12.0", - "@firebase/component": "0.6.4", - "@firebase/util": "1.9.3", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "@firebase/auth-interop-types": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz", - "integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==" - }, - "@firebase/auth-types": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.0.tgz", - "integrity": "sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==", - "requires": {} - }, - "@firebase/component": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.4.tgz", - "integrity": "sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA==", - "requires": { - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/database": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.4.tgz", - "integrity": "sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ==", - "requires": { - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "faye-websocket": "0.11.4", - "tslib": "^2.1.0" - } - }, - "@firebase/database-compat": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.4.tgz", - "integrity": "sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/database": "0.14.4", - "@firebase/database-types": "0.10.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/database-types": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.4.tgz", - "integrity": "sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ==", - "requires": { - "@firebase/app-types": "0.9.0", - "@firebase/util": "1.9.3" - } - }, - "@firebase/firestore": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.9.0.tgz", - "integrity": "sha512-At8HeTec3y7EfGjtYqvzON/8896igJgE34zjEndYxKPUKyhQ6xtcM+zhfa8C+lUW6W8qQB6lNzTNNXmF4NxdpQ==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "@firebase/webchannel-wrapper": "0.9.0", - "@grpc/grpc-js": "~1.7.0", - "@grpc/proto-loader": "^0.6.13", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "@firebase/firestore-compat": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.5.tgz", - "integrity": "sha512-gwBFGOqNIgF2TOJ2mKIS1lTQy6I9DytWsmIfvXGV76is53MaZUZXyUZd7oIC8h2Otq6gP3xtvPRQJTMcnQrbFg==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/firestore": "3.9.0", - "@firebase/firestore-types": "2.5.1", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/firestore-types": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.1.tgz", - "integrity": "sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==", - "requires": {} - }, - "@firebase/functions": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.9.4.tgz", - "integrity": "sha512-3H2qh6U+q+nepO5Hds+Ddl6J0pS+zisuBLqqQMRBHv9XpWfu0PnDHklNmE8rZ+ccTEXvBj6zjkPfdxt6NisvlQ==", - "requires": { - "@firebase/app-check-interop-types": "0.2.0", - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.4", - "@firebase/messaging-interop-types": "0.2.0", - "@firebase/util": "1.9.3", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "@firebase/functions-compat": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.4.tgz", - "integrity": "sha512-kxVxTGyLV1MBR3sp3mI+eQ6JBqz0G5bk310F8eX4HzDFk4xjk5xY0KdHktMH+edM2xs1BOg0vwvvsAHczIjB+w==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/functions": "0.9.4", - "@firebase/functions-types": "0.6.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/functions-types": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.0.tgz", - "integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw==" - }, - "@firebase/installations": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.4.tgz", - "integrity": "sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/util": "1.9.3", - "idb": "7.0.1", - "tslib": "^2.1.0" - } - }, - "@firebase/installations-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.4.tgz", - "integrity": "sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/installations-types": "0.5.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/installations-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.0.tgz", - "integrity": "sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==", - "requires": {} - }, - "@firebase/logger": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz", - "integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==", - "requires": { - "tslib": "^2.1.0" - } - }, - "@firebase/messaging": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.4.tgz", - "integrity": "sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/messaging-interop-types": "0.2.0", - "@firebase/util": "1.9.3", - "idb": "7.0.1", - "tslib": "^2.1.0" - } - }, - "@firebase/messaging-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.4.tgz", - "integrity": "sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/messaging": "0.12.4", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/messaging-interop-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz", - "integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ==" - }, - "@firebase/performance": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.4.tgz", - "integrity": "sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/performance-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.4.tgz", - "integrity": "sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/performance": "0.6.4", - "@firebase/performance-types": "0.2.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/performance-types": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.0.tgz", - "integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA==" - }, - "@firebase/remote-config": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.4.tgz", - "integrity": "sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/installations": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/remote-config-compat": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.4.tgz", - "integrity": "sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/logger": "0.4.0", - "@firebase/remote-config": "0.4.4", - "@firebase/remote-config-types": "0.3.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/remote-config-types": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz", - "integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA==" - }, - "@firebase/storage": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.11.2.tgz", - "integrity": "sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/util": "1.9.3", - "node-fetch": "2.6.7", - "tslib": "^2.1.0" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "@firebase/storage-compat": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.2.tgz", - "integrity": "sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==", - "requires": { - "@firebase/component": "0.6.4", - "@firebase/storage": "0.11.2", - "@firebase/storage-types": "0.8.0", - "@firebase/util": "1.9.3", - "tslib": "^2.1.0" - } - }, - "@firebase/storage-types": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.0.tgz", - "integrity": "sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==", - "requires": {} - }, - "@firebase/util": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.3.tgz", - "integrity": "sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA==", - "requires": { - "tslib": "^2.1.0" - } - }, - "@firebase/webchannel-wrapper": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.9.0.tgz", - "integrity": "sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg==" - }, - "@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 - }, - "@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "dependencies": { - "@grpc/proto-loader": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.5.tgz", - "integrity": "sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "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" - } - }, - "protobufjs": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", - "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "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==" - } - } - }, - "@grpc/proto-loader": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", - "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.11.3", - "yargs": "^16.2.0" - }, - "dependencies": { - "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" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "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==" - } - } - }, - "@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==", - "dev": true, - "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==", - "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==", - "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.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "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 - }, - "@ngtools/webpack": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.2.4.tgz", - "integrity": "sha512-cQ7MsRoGJgPOVnpvFgWhygeSe6zJ0ITiUhjmmuOgpNDfYkrgYxN3Ot/qvQefFei+oGZ1JJ9bRb8lcPKL/apoBQ==", - "dev": true, - "requires": {} - }, - "@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": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", - "dev": true, - "requires": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", - "dev": true, - "requires": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - } - }, - "@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" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } - } - }, - "@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "dev": true - }, - "@npmcli/promise-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", - "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", - "dev": true, - "requires": { - "which": "^3.0.0" - }, - "dependencies": { - "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", - "dev": true, - "requires": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - }, - "dependencies": { - "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@schematics/angular": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.4.tgz", - "integrity": "sha512-P9axwKDXEDrGXYcoCuhwv4guhvtIjDCvyZMsQw8IMpfAacTYajka+T3mZrzyTe96Uhu0JwcAW5iUlOZAJhPEdQ==", - "requires": { - "@angular-devkit/core": "15.2.4", - "@angular-devkit/schematics": "15.2.4", - "jsonc-parser": "3.2.0" - } - }, - "@sigstore/protobuf-specs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", - "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", - "dev": true - }, - "@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 - }, - "@tufjs/models": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.0.tgz", - "integrity": "sha512-RRMu4uMxWnZlxaIBxahSb2IssFZiu188sndesZflWOe1cA/qUqtemSIoBWbuVKPvvdktapImWNnKpBcc+VrCQw==", - "dev": true, - "requires": { - "minimatch": "^6.1.0" - }, - "dependencies": { - "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@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.21.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", - "integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", - "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==", - "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==" - }, - "@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.33", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", - "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/http-proxy": { - "version": "1.17.10", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", - "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/jasmine": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.1.tgz", - "integrity": "sha512-Vu8l+UGcshYmV1VWwULgnV/2RDbBaO6i2Ptx7nd//oJPIZGhoI1YLST4VKagD2Pq/Bc2/7zvtvhM7F3p4SN7kQ==", - "dev": true - }, - "@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==" - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@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.15.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz", - "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==" - }, - "@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/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/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.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "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/triple-beam": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", - "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" - }, - "@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "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==", - "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==" - }, - "@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==" - }, - "@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==" - }, - "@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==", - "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==" - }, - "@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==", - "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==", - "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==", - "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==" - }, - "@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==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "@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==" - }, - "@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.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" - }, - "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==", - "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" - } - } - } - }, - "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.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - } - }, - "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.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "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==", - "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-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==", - "requires": { - "type-fest": "^0.21.3" - } - }, - "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==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "devOptional": true, - "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" - } - }, - "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 - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "babel-loader": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", - "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.2", - "schema-utils": "^4.0.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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - } - }, - "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==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "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 - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "devOptional": true - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "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.2", - "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" - } - }, - "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.1.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", - "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", - "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 - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "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==", - "devOptional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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==" - }, - "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": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", - "dev": true, - "requires": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^8.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - } - } - }, - "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.30001468", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001468.tgz", - "integrity": "sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "devOptional": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "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==" - }, - "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-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" - }, - "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==" - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "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==" - }, - "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": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.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-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "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": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "requires": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "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==" - }, - "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.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "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==", - "dev": true - }, - "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" - } - } - } - }, - "core-js-compat": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz", - "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==", - "dev": true, - "requires": { - "browserslist": "^4.21.5" - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "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" - } - }, - "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 - }, - "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-loader": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", - "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", - "dev": true, - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.19", - "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.8" - } - }, - "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 - }, - "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 - }, - "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==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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==", - "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==" - }, - "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==", - "dev": true - }, - "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 - }, - "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" - } - }, - "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.333", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.333.tgz", - "integrity": "sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ==" - }, - "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==" - }, - "enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, - "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==", - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "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==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "engine.io": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", - "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", - "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.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "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==" - }, - "esbuild": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.8.tgz", - "integrity": "sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==", - "dev": true, - "optional": true, - "requires": { - "@esbuild/android-arm": "0.17.8", - "@esbuild/android-arm64": "0.17.8", - "@esbuild/android-x64": "0.17.8", - "@esbuild/darwin-arm64": "0.17.8", - "@esbuild/darwin-x64": "0.17.8", - "@esbuild/freebsd-arm64": "0.17.8", - "@esbuild/freebsd-x64": "0.17.8", - "@esbuild/linux-arm": "0.17.8", - "@esbuild/linux-arm64": "0.17.8", - "@esbuild/linux-ia32": "0.17.8", - "@esbuild/linux-loong64": "0.17.8", - "@esbuild/linux-mips64el": "0.17.8", - "@esbuild/linux-ppc64": "0.17.8", - "@esbuild/linux-riscv64": "0.17.8", - "@esbuild/linux-s390x": "0.17.8", - "@esbuild/linux-x64": "0.17.8", - "@esbuild/netbsd-x64": "0.17.8", - "@esbuild/openbsd-x64": "0.17.8", - "@esbuild/sunos-x64": "0.17.8", - "@esbuild/win32-arm64": "0.17.8", - "@esbuild/win32-ia32": "0.17.8", - "@esbuild/win32-x64": "0.17.8" - } - }, - "esbuild-wasm": { - "version": "0.17.8", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.8.tgz", - "integrity": "sha512-zCmpxv95E0FuCmvdw1K836UHnj4EdiQnFfjTby35y3LAjRPtXMj3sbHDRHjbD8Mqg5lTwq3knacr/1qIFU51CQ==", - "dev": 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==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "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 - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "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==" - }, - "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" - } - }, - "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 - }, - "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" - } - }, - "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 - }, - "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" - } - }, - "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==", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-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==" - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "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==", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.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==", - "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==", - "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==" - }, - "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==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "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==", - "devOptional": true, - "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" - } - }, - "firebase": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.18.0.tgz", - "integrity": "sha512-CTV5S3mTtn9zodeWkdeTqiQFyS7t+iskA50V9hVKPCQ4TPw4tnoyNgtNzWUmemFnYadzzsTnAaxsR7UaBJgiqw==", - "requires": { - "@firebase/analytics": "0.9.4", - "@firebase/analytics-compat": "0.2.4", - "@firebase/app": "0.9.5", - "@firebase/app-check": "0.6.4", - "@firebase/app-check-compat": "0.3.4", - "@firebase/app-compat": "0.2.5", - "@firebase/app-types": "0.9.0", - "@firebase/auth": "0.21.5", - "@firebase/auth-compat": "0.3.5", - "@firebase/database": "0.14.4", - "@firebase/database-compat": "0.3.4", - "@firebase/firestore": "3.9.0", - "@firebase/firestore-compat": "0.3.5", - "@firebase/functions": "0.9.4", - "@firebase/functions-compat": "0.3.4", - "@firebase/installations": "0.6.4", - "@firebase/installations-compat": "0.2.4", - "@firebase/messaging": "0.12.4", - "@firebase/messaging-compat": "0.2.4", - "@firebase/performance": "0.6.4", - "@firebase/performance-compat": "0.2.4", - "@firebase/remote-config": "0.4.4", - "@firebase/remote-config-compat": "0.2.4", - "@firebase/storage": "0.11.2", - "@firebase/storage-compat": "0.3.2", - "@firebase/util": "1.9.3" - } - }, - "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 - }, - "fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, - "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 - }, - "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": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", - "dev": true, - "requires": { - "minipass": "^4.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==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "fuzzy": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", - "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==" - }, - "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==", - "dev": true - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "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 - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "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==", - "devOptional": true, - "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==" - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", - "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.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "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 - }, - "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-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "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": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - } - } - }, - "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.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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 - }, - "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==" - }, - "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" - } - }, - "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.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "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": {} - }, - "idb": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz", - "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg==" - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", - "dev": true, - "requires": { - "minimatch": "^6.1.6" - }, - "dependencies": { - "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "requires": { - "brace-expansion": "^2.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 - }, - "immutable": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", - "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", - "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==", - "dev": true, - "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.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", - "dev": true - }, - "inquirer": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", - "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "inquirer-autocomplete-prompt": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz", - "integrity": "sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw==", - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "figures": "^3.2.0", - "run-async": "^2.4.0", - "rxjs": "^6.6.2" - }, - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "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==", - "devOptional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "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==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "devOptional": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "devOptional": true, - "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==" - }, - "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==", - "devOptional": true - }, - "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==" - }, - "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==" - }, - "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==", - "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 - }, - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "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 - } - } - }, - "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-core": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.5.0.tgz", - "integrity": "sha512-9PMzyvhtocxb3aXJVOPqBDswdgyAeSB81QnLop4npOpbqnheaTEwPc9ZloQeVswugPManznQBjD8kWDTjlnHuw==", - "dev": true - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "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==" - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "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" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "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==" - }, - "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==" - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "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 - }, - "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" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.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" - } - }, - "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.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": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", - "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.0.5", - "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": "5.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", - "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", - "dev": true, - "requires": { - "jasmine-core": "^4.1.0" - } - }, - "karma-jasmine-html-reporter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.0.0.tgz", - "integrity": "sha512-SB8HNNiazAHXM1vGEzf8/tSyEhkfxuDdhYdPBX2Mwgzt0OuF2gicApQ+uvXLID/gXyJQgvrM9+1/2SxZFUUDIA==", - "dev": true, - "requires": {} - }, - "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.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "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 - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "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.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", - "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", - "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" - } - }, - "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==" - }, - "loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "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==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "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 - }, - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "log4js": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", - "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", - "dev": true, - "requires": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "flatted": "^3.2.7", - "rfdc": "^1.3.0", - "streamroller": "^3.1.5" - } - }, - "logform": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", - "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", - "requires": { - "@colors/colors": "1.5.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "magic-string": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", - "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.13" - } - }, - "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.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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" - }, - "dependencies": { - "@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" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "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": "^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" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "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 - }, - "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" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "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.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", - "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==" - }, - "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==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mini-css-extract-plugin": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", - "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", - "dev": true, - "requires": { - "schema-utils": "^4.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.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "minipass": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz", - "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==", - "dev": true - }, - "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" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "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" - } - }, - "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==" - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", - "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", - "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" - } - }, - "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, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "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==" - }, - "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.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "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.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", - "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.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "dev": true, - "optional": true - }, - "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" - }, - "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": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "requires": { - "hosted-git-info": "^6.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==", - "devOptional": true - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^3.0.0" - } - }, - "npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", - "dev": true, - "requires": { - "semver": "^7.1.1" - } - }, - "npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", - "dev": true - }, - "npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - } - }, - "npm-packlist": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", - "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", - "dev": true, - "requires": { - "ignore-walk": "^6.0.0" - } - }, - "npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", - "dev": true, - "requires": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - } - }, - "npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", - "dev": true, - "requires": { - "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "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": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } - } - }, - "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" - } - }, - "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.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "requires": { - "fn.name": "1.x.x" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", - "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", - "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==", - "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==", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==", - "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==" - }, - "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": "15.1.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.0.tgz", - "integrity": "sha512-FFcjtIl+BQNfeliSm7MZz5cpdohvUV1yjGnqgVM4UnVF7JslRY0ImXAygdaCDV0jjUADEWu4y5xsDV8brtrTLg==", - "dev": true, - "requires": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", - "ssri": "^10.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": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parse5-html-rewriting-stream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", - "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", - "dev": true, - "requires": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" - }, - "dependencies": { - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true - }, - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "requires": { - "entities": "^4.4.0" - } - } - } - }, - "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" - } - }, - "parse5-sax-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", - "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", - "dev": true, - "requires": { - "parse5": "^7.0.0" - }, - "dependencies": { - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true - }, - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "requires": { - "entities": "^4.4.0" - } - } - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "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-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 - }, - "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==", - "devOptional": 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 - }, - "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.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-loader": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz", - "integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.8" - } - }, - "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-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "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" - } - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "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 - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" - }, - "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==", - "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.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", - "dev": true, - "requires": { - "glob": "^8.0.1", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "dependencies": { - "json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true - } - } - }, - "read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "requires": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "dependencies": { - "json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "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==", - "devOptional": true, - "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==", - "dev": true - }, - "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.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "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.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "requires": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - } - }, - "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 - } - } - }, - "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==" - }, - "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==", - "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==" - }, - "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" - } - }, - "rxfire": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/rxfire/-/rxfire-6.0.3.tgz", - "integrity": "sha512-77nkyffHh7jgfi1YA/N9RI+kWxYpgKk6GRML1lyersvaqbJt4hkvWwk1rWib9Rb5Lr5mT+Ha45lu7nM79sJCZA==", - "requires": { - "tslib": "^1.9.0 || ~2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } - } - }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "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==" - }, - "safe-stable-stringify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sass": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.1.tgz", - "integrity": "sha512-bnINi6nPXbP1XNRaranMFEBZWUfdW/AF16Ql5+ypRxfTvCRTTKrLsMIakyDcayUt2t/RZotmL4kgJwNH5xO+bg==", - "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.2.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", - "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", - "dev": true, - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": 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" - } - }, - "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 - }, - "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.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "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" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "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 - }, - "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==" - }, - "sigstore": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.1.1.tgz", - "integrity": "sha512-4hR3tPP1y59YWlaoAgAWFVZ7srTjNWOrrpkQXWu05qP0BvwFYyt3K3l848+IHo+mKhkOzGcNDf7ktASXLEPC+A==", - "dev": true, - "requires": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "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": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } - } - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - } - } - }, - "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.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", - "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==" - }, - "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.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", - "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", - "dev": true, - "requires": { - "abab": "^2.0.6", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "dependencies": { - "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" - } - } - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "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.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "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 - }, - "ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", - "dev": true, - "requires": { - "minipass": "^4.0.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" - }, - "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.5", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", - "dev": true, - "requires": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.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 - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "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==" - }, - "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "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" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "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 - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "terser": { - "version": "5.16.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", - "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - }, - "terser-webpack-plugin": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", - "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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==", - "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==" - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "terser": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", - "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - } - } - }, - "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-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "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==" - }, - "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==", - "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==", - "dev": true - }, - "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==", - "devOptional": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "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 - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "tuf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.1.tgz", - "integrity": "sha512-WTp382/PR96k0dI4GD5RdiRhgOU0rAC7+lnoih/5pZg3cyb3aNMqDozleEEWwyfT3+FOg7Qz9JU3n6A44tLSHw==", - "dev": true, - "requires": { - "@tufjs/models": "1.0.0", - "make-fetch-happen": "^11.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", - "minipass-fetch": "^3.0.0", - "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": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^4.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } - } - }, - "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==" - }, - "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.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.34.tgz", - "integrity": "sha512-cJMeh/eOILyGu0ejgTKB95yKT3zOenSe9UGE3vj6WfiOwgGYnmATUsnDixMFvdU+rNMvWih83hrUP8VwhF9yXQ==", - "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.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, - "requires": { - "unique-slug": "^4.0.0" - } - }, - "unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "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==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "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": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "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 - }, - "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==", - "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==", - "requires": { - "defaults": "^1.0.3" - } - }, - "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==" - }, - "webpack": { - "version": "5.76.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", - "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==", - "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==", - "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==", - "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==" - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-dev-middleware": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz", - "integrity": "sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw==", - "dev": true, - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - } - }, - "webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", - "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.1.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": { - "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" - } - } - } - }, - "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==" - }, - "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==", - "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==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "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" - } - }, - "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" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "requires": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - } - }, - "winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "requires": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - } - }, - "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==", - "dev": true - }, - "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": {} - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "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.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "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.1.1" - } - }, - "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==", - "dev": true - }, - "zone.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.12.0.tgz", - "integrity": "sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q==", - "requires": { - "tslib": "^2.3.0" - } - } - } -} diff --git a/takima-AR/src/app/app-routing.module.ts b/takima-AR/src/app/app-routing.module.ts deleted file mode 100644 index 02972627..00000000 --- a/takima-AR/src/app/app-routing.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; - -const routes: Routes = []; - -@NgModule({ - imports: [RouterModule.forRoot(routes)], - exports: [RouterModule] -}) -export class AppRoutingModule { } diff --git a/takima-AR/src/app/app.component.html b/takima-AR/src/app/app.component.html deleted file mode 100644 index 2a0fbf18..00000000 --- a/takima-AR/src/app/app.component.html +++ /dev/null @@ -1,484 +0,0 @@ -<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * --> -<!-- * * * * * * * * * * * The content below * * * * * * * * * * * --> -<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * --> -<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * --> -<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * --> -<!-- * * * * * * * * * Delete the template below * * * * * * * * * * --> -<!-- * * * * * * * to get started with your project! * * * * * * * * --> -<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * --> - -<style> - :host { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 14px; - color: #333; - box-sizing: border-box; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - margin: 8px 0; - } - - p { - margin: 0; - } - - .spacer { - flex: 1; - } - - .toolbar { - position: absolute; - top: 0; - left: 0; - right: 0; - height: 60px; - display: flex; - align-items: center; - background-color: #1976d2; - color: white; - font-weight: 600; - } - - .toolbar img { - margin: 0 16px; - } - - .toolbar #twitter-logo { - height: 40px; - margin: 0 8px; - } - - .toolbar #youtube-logo { - height: 40px; - margin: 0 16px; - } - - .toolbar #twitter-logo:hover, - .toolbar #youtube-logo:hover { - opacity: 0.8; - } - - .content { - display: flex; - margin: 82px auto 32px; - padding: 0 16px; - max-width: 960px; - flex-direction: column; - align-items: center; - } - - svg.material-icons { - height: 24px; - width: auto; - } - - svg.material-icons:not(:last-child) { - margin-right: 8px; - } - - .card svg.material-icons path { - fill: #888; - } - - .card-container { - display: flex; - flex-wrap: wrap; - justify-content: center; - margin-top: 16px; - } - - .card { - all: unset; - border-radius: 4px; - border: 1px solid #eee; - background-color: #fafafa; - height: 40px; - width: 200px; - margin: 0 8px 16px; - padding: 16px; - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - transition: all 0.2s ease-in-out; - line-height: 24px; - } - - .card-container .card:not(:last-child) { - margin-right: 0; - } - - .card.card-small { - height: 16px; - width: 168px; - } - - .card-container .card:not(.highlight-card) { - cursor: pointer; - } - - .card-container .card:not(.highlight-card):hover { - transform: translateY(-3px); - box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35); - } - - .card-container .card:not(.highlight-card):hover .material-icons path { - fill: rgb(105, 103, 103); - } - - .card.highlight-card { - background-color: #1976d2; - color: white; - font-weight: 600; - border: none; - width: auto; - min-width: 30%; - position: relative; - } - - .card.card.highlight-card span { - margin-left: 60px; - } - - svg#rocket { - width: 80px; - position: absolute; - left: -10px; - top: -24px; - } - - svg#rocket-smoke { - height: calc(100vh - 95px); - position: absolute; - top: 10px; - right: 180px; - z-index: -10; - } - - a, - a:visited, - a:hover { - color: #1976d2; - text-decoration: none; - } - - a:hover { - color: #125699; - } - - .terminal { - position: relative; - width: 80%; - max-width: 600px; - border-radius: 6px; - padding-top: 45px; - margin-top: 8px; - overflow: hidden; - background-color: rgb(15, 15, 16); - } - - .terminal::before { - content: "\2022 \2022 \2022"; - position: absolute; - top: 0; - left: 0; - height: 4px; - background: rgb(58, 58, 58); - color: #c2c3c4; - width: 100%; - font-size: 2rem; - line-height: 0; - padding: 14px 0; - text-indent: 4px; - } - - .terminal pre { - font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace; - color: white; - padding: 0 1rem 1rem; - margin: 0; - } - - .circle-link { - height: 40px; - width: 40px; - border-radius: 40px; - margin: 8px; - background-color: white; - border: 1px solid #eeeeee; - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); - transition: 1s ease-out; - } - - .circle-link:hover { - transform: translateY(-0.25rem); - box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2); - } - - footer { - margin-top: 8px; - display: flex; - align-items: center; - line-height: 20px; - } - - footer a { - display: flex; - align-items: center; - } - - .github-star-badge { - color: #24292e; - display: flex; - align-items: center; - font-size: 12px; - padding: 3px 10px; - border: 1px solid rgba(27,31,35,.2); - border-radius: 3px; - background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%); - margin-left: 4px; - font-weight: 600; - } - - .github-star-badge:hover { - background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%); - border-color: rgba(27,31,35,.35); - background-position: -.5em; - } - - .github-star-badge .material-icons { - height: 16px; - width: 16px; - margin-right: 4px; - } - - svg#clouds { - position: fixed; - bottom: -160px; - left: -230px; - z-index: -10; - width: 1920px; - } - - /* Responsive Styles */ - @media screen and (max-width: 767px) { - .card-container > *:not(.circle-link) , - .terminal { - width: 100%; - } - - .card:not(.highlight-card) { - height: 16px; - margin: 8px 0; - } - - .card.highlight-card span { - margin-left: 72px; - } - - svg#rocket-smoke { - right: 120px; - transform: rotate(-5deg); - } - } - - @media screen and (max-width: 575px) { - svg#rocket-smoke { - display: none; - visibility: hidden; - } - } -</style> - -<!-- Toolbar --> -<div class="toolbar" role="banner"> - <img - width="40" - alt="Angular Logo" - src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==" - /> - <span>Welcome</span> - <div class="spacer"></div> - <a aria-label="Angular on twitter" target="_blank" rel="noopener" href="https://twitter.com/angular" title="Twitter"> - <svg id="twitter-logo" height="24" data-name="Logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400"> - <rect width="400" height="400" fill="none"/> - <path d="M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23" fill="#fff"/> - </svg> - </a> - <a aria-label="Angular on YouTube" target="_blank" rel="noopener" href="https://youtube.com/angular" title="YouTube"> - <svg id="youtube-logo" height="24" width="24" data-name="Logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#fff"> - <path d="M0 0h24v24H0V0z" fill="none"/> - <path d="M21.58 7.19c-.23-.86-.91-1.54-1.77-1.77C18.25 5 12 5 12 5s-6.25 0-7.81.42c-.86.23-1.54.91-1.77 1.77C2 8.75 2 12 2 12s0 3.25.42 4.81c.23.86.91 1.54 1.77 1.77C5.75 19 12 19 12 19s6.25 0 7.81-.42c.86-.23 1.54-.91 1.77-1.77C22 15.25 22 12 22 12s0-3.25-.42-4.81zM10 15V9l5.2 3-5.2 3z"/> - </svg> - </a> -</div> - -<div class="content" role="main"> - - <!-- Highlight Card --> - <div class="card highlight-card card-small"> - - <svg id="rocket" xmlns="http://www.w3.org/2000/svg" width="101.678" height="101.678" viewBox="0 0 101.678 101.678"> - <title>Rocket Ship</title> - <g id="Group_83" data-name="Group 83" transform="translate(-141 -696)"> - <circle id="Ellipse_8" data-name="Ellipse 8" cx="50.839" cy="50.839" r="50.839" transform="translate(141 696)" fill="#dd0031"/> - <g id="Group_47" data-name="Group 47" transform="translate(165.185 720.185)"> - <path id="Path_33" data-name="Path 33" d="M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z" transform="translate(0.371 3.363)" fill="#fff"/> - <path id="Path_34" data-name="Path 34" d="M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z" transform="translate(0 0.005)" fill="#fff"/> - </g> - </g> - </svg> - - <span>{{ title }} app is running!</span> - - <svg id="rocket-smoke" xmlns="http://www.w3.org/2000/svg" width="516.119" height="1083.632" viewBox="0 0 516.119 1083.632"> - <title>Rocket Ship Smoke</title> - <path id="Path_40" data-name="Path 40" d="M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z" transform="translate(-147.025 -140.939)" fill="#f5f5f5"/> - </svg> - - </div> - - <!-- Resources --> - <h2>Resources</h2> - <p>Here are some links to help you get started:</p> - - <div class="card-container"> - <a class="card" target="_blank" rel="noopener" href="https://angular.io/tutorial"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z"/></svg> - <span>Learn Angular</span> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg> </a> - - <a class="card" target="_blank" rel="noopener" href="https://angular.io/cli"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></svg> - <span>CLI Documentation</span> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg> - </a> - - <a class="card" target="_blank" rel="noopener" href="https://material.angular.io"> - <svg xmlns="http://www.w3.org/2000/svg" style="margin-right: 8px" width="21.813" height="23.453" viewBox="0 0 179.2 192.7"><path fill="#ffa726" d="M89.4 0 0 32l13.5 118.4 75.9 42.3 76-42.3L179.2 32 89.4 0z"/><path fill="#fb8c00" d="M89.4 0v192.7l76-42.3L179.2 32 89.4 0z"/><path fill="#ffe0b2" d="m102.9 146.3-63.3-30.5 36.3-22.4 63.7 30.6-36.7 22.3z"/><path fill="#fff3e0" d="M102.9 122.8 39.6 92.2l36.3-22.3 63.7 30.6-36.7 22.3z"/><path fill="#fff" d="M102.9 99.3 39.6 68.7l36.3-22.4 63.7 30.6-36.7 22.4z"/></svg> - <span>Angular Material</span> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg> - </a> - - <a class="card" target="_blank" rel="noopener" href="https://blog.angular.io/"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z"/></svg> - <span>Angular Blog</span> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg> - </a> - - <a class="card" target="_blank" rel="noopener" href="https://angular.io/devtools/"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><g><rect fill="none" height="24" width="24"/></g><g><g><path d="M14.73,13.31C15.52,12.24,16,10.93,16,9.5C16,5.91,13.09,3,9.5,3S3,5.91,3,9.5C3,13.09,5.91,16,9.5,16 c1.43,0,2.74-0.48,3.81-1.27L19.59,21L21,19.59L14.73,13.31z M9.5,14C7.01,14,5,11.99,5,9.5S7.01,5,9.5,5S14,7.01,14,9.5 S11.99,14,9.5,14z"/><polygon points="10.29,8.44 9.5,6 8.71,8.44 6.25,8.44 8.26,10.03 7.49,12.5 9.5,10.97 11.51,12.5 10.74,10.03 12.75,8.44"/></g></g></svg> - <span>Angular DevTools</span> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg> - </a> - - </div> - - <!-- Next Steps --> - <h2>Next Steps</h2> - <p>What do you want to do next with your app?</p> - - <input type="hidden" #selection> - - <div class="card-container"> - <button class="card card-small" (click)="selection.value = 'component'" tabindex="0"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg> - <span>New Component</span> - </button> - - <button class="card card-small" (click)="selection.value = 'material'" tabindex="0"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg> - <span>Angular Material</span> - </button> - - <button class="card card-small" (click)="selection.value = 'pwa'" tabindex="0"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg> - <span>Add PWA Support</span> - </button> - - <button class="card card-small" (click)="selection.value = 'dependency'" tabindex="0"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg> - <span>Add Dependency</span> - </button> - - <button class="card card-small" (click)="selection.value = 'test'" tabindex="0"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg> - <span>Run and Watch Tests</span> - </button> - - <button class="card card-small" (click)="selection.value = 'build'" tabindex="0"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg> - <span>Build for Production</span> - </button> - </div> - - <!-- Terminal --> - <div class="terminal" [ngSwitch]="selection.value"> - <pre *ngSwitchDefault>ng generate component xyz</pre> - <pre *ngSwitchCase="'material'">ng add @angular/material</pre> - <pre *ngSwitchCase="'pwa'">ng add @angular/pwa</pre> - <pre *ngSwitchCase="'dependency'">ng add _____</pre> - <pre *ngSwitchCase="'test'">ng test</pre> - <pre *ngSwitchCase="'build'">ng build</pre> - </div> - - <!-- Links --> - <div class="card-container"> - <a class="circle-link" title="Find a Local Meetup" href="https://www.meetup.com/find/?keywords=angular" target="_blank" rel="noopener"> - <svg xmlns="http://www.w3.org/2000/svg" width="24.607" height="23.447" viewBox="0 0 24.607 23.447"> - <title>Meetup Logo</title> - <path id="logo--mSwarm" d="M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z" transform="translate(0 0.123)" fill="#f64060"/> - </svg> - </a> - - <a class="circle-link" title="Join the Conversation on Discord" href="https://discord.gg/angular" target="_blank" rel="noopener"> - <svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 245 240"> - <title>Discord Logo</title> - <path d="M104.4 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1.1-6.1-4.5-11.1-10.2-11.1zM140.9 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1s-4.5-11.1-10.2-11.1z"/> - <path d="M189.5 20h-134C44.2 20 35 29.2 35 40.6v135.2c0 11.4 9.2 20.6 20.5 20.6h113.4l-5.3-18.5 12.8 11.9 12.1 11.2 21.5 19V40.6c0-11.4-9.2-20.6-20.5-20.6zm-38.6 130.6s-3.6-4.3-6.6-8.1c13.1-3.7 18.1-11.9 18.1-11.9-4.1 2.7-8 4.6-11.5 5.9-5 2.1-9.8 3.5-14.5 4.3-9.6 1.8-18.4 1.3-25.9-.1-5.7-1.1-10.6-2.7-14.7-4.3-2.3-.9-4.8-2-7.3-3.4-.3-.2-.6-.3-.9-.5-.2-.1-.3-.2-.4-.3-1.8-1-2.8-1.7-2.8-1.7s4.8 8 17.5 11.8c-3 3.8-6.7 8.3-6.7 8.3-22.1-.7-30.5-15.2-30.5-15.2 0-32.2 14.4-58.3 14.4-58.3 14.4-10.8 28.1-10.5 28.1-10.5l1 1.2c-18 5.2-26.3 13.1-26.3 13.1s2.2-1.2 5.9-2.9c10.7-4.7 19.2-6 22.7-6.3.6-.1 1.1-.2 1.7-.2 6.1-.8 13-1 20.2-.2 9.5 1.1 19.7 3.9 30.1 9.6 0 0-7.9-7.5-24.9-12.7l1.4-1.6s13.7-.3 28.1 10.5c0 0 14.4 26.1 14.4 58.3 0 0-8.5 14.5-30.6 15.2z"/> - </svg> - </a> - </div> - - <!-- Footer --> - <footer> - Love Angular? - <a href="https://github.com/angular/angular" target="_blank" rel="noopener"> Give our repo a star. - <div class="github-star-badge"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg> - Star - </div> - </a> - <a href="https://github.com/angular/angular" target="_blank" rel="noopener"> - <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" fill="#1976d2"/><path d="M0 0h24v24H0z" fill="none"/></svg> - </a> - </footer> - - <svg id="clouds" xmlns="http://www.w3.org/2000/svg" width="2611.084" height="485.677" viewBox="0 0 2611.084 485.677"> - <title>Gray Clouds Background</title> - <path id="Path_39" data-name="Path 39" d="M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z" transform="translate(142.69 -634.312)" fill="#eee"/> - </svg> - -</div> - -<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * --> -<!-- * * * * * * * * * * * The content above * * * * * * * * * * * --> -<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * --> -<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * --> -<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * --> -<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * --> -<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * --> - -<router-outlet></router-outlet> diff --git a/takima-AR/src/app/app.component.scss b/takima-AR/src/app/app.component.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/takima-AR/src/app/app.component.spec.ts b/takima-AR/src/app/app.component.spec.ts deleted file mode 100644 index 39e1b7b3..00000000 --- a/takima-AR/src/app/app.component.spec.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { TestBed } from '@angular/core/testing'; -import { RouterTestingModule } from '@angular/router/testing'; -import { AppComponent } from './app.component'; - -describe('AppComponent', () => { - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ - RouterTestingModule - ], - declarations: [ - AppComponent - ], - }).compileComponents(); - }); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app).toBeTruthy(); - }); - - it(`should have as title 'takima-AR'`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual('takima-AR'); - }); - - it('should render title', () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('.content span')?.textContent).toContain('takima-AR app is running!'); - }); -}); diff --git a/takima-AR/src/app/app.component.ts b/takima-AR/src/app/app.component.ts deleted file mode 100644 index 4651c289..00000000 --- a/takima-AR/src/app/app.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] -}) -export class AppComponent { - title = 'takima-AR'; -} diff --git a/takima-AR/src/app/app.module.ts b/takima-AR/src/app/app.module.ts deleted file mode 100644 index 96463253..00000000 --- a/takima-AR/src/app/app.module.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; - -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; -import { initializeApp,provideFirebaseApp } from '@angular/fire/app'; -import { environment } from '../environments/environment'; -import { provideFirestore,getFirestore } from '@angular/fire/firestore'; -import { provideStorage,getStorage } from '@angular/fire/storage'; - -@NgModule({ - declarations: [ - AppComponent - ], - imports: [ - BrowserModule, - AppRoutingModule, - provideFirebaseApp(() => initializeApp(environment.firebase)), - provideFirestore(() => getFirestore()), - provideStorage(() => getStorage()) - ], - providers: [], - bootstrap: [AppComponent] -}) -export class AppModule { } diff --git a/takima-AR/src/assets/.gitkeep b/takima-AR/src/assets/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/takima-AR/src/favicon.ico b/takima-AR/src/favicon.ico deleted file mode 100644 index 997406ad22c29aae95893fb3d666c30258a09537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 948 zcmeAS@N?(olHy`uVBq!ia0y~yV31*8V36ZrV_;ygKUz1Rfq{Xuz$3Dlfq`2Hgc&d0 zt^32kz?|mk;uzx5IW^qdM>tSq@8_3ird$#$b)PtmGj%avUXLD+Sz&S#OH+=Bed~^k zE(t5$l#lUxmp*pmH4IGd;gaZCq}bXq{|D!ekIpR10+!S`*{d|ox^icu@gBap=gxSl z)qcKL`~J+{;`cM7wI-iz2<>oODaSCydtP5<MW1wf<TuBx!dGjq8vAe_U9d%#;n2;~ ztIzqnEH{y!wal35e7{x1Hsg%~d-G=p@OUvc9hsl6?CH^zIAcH4dH&5h)pmyZ`;AmY znu9nUgJNH3mcPBjX#coaKr*U4j!%Z~oA~*{^O0@2@w29<wr*Hd6m9W4?iJTNwSxEO zbZ7LQcdSjGd{tNB!=E*W4}Mcz_;n3qgHgODkLx_m$6c$kW=vUJwv9RWv=qawDF4jI zecb79^1?aT*Gg5}<XPMZSbg{U^>^))gz^vCs#x@S-}tn_vPR|kz1LqIe!rYt))!zS zvoY(Akln64y_z>0QjMl1s!cRVJi24!LcTlil2T>5&o<0i>s<dc?er26S5@8W8`pM; z?OJ_(o%8XhesAw(MP$yZOFrqWQ!;;jh~)Cir!V|3V%SyvTVbY;X7SZaVH{WAn5iz& z=um#RWTxWF*#F&(9!oDx@K6yA5`DY&SzM6FU&o1Nh8mJ$_K`0-W?itG(RWrOO6tS( z!$-ac=AQN8Fk0<BB}&XQ`TaF6*~v@SoLSx?;oQ+;r1+?{g<-$Og0AfnQ<NAsxaYUD z+I=d#@j<}$!(6siDyny?5-zS^_E<WE|Fc@(z6)mqJUBACq7-f4Ff?>mExzc#e(SB@ zpT5qXq@xuU7Pi&!lysUFld}wm*K3YgSJ&p#-Wvt7zg$RJsLW@&^@+eF`2?fN5XBd} zYR&gAzj?o-u2HA8y}zpX#FqnS-c)`HnSE9~tZm`$gD*b2i2bTRB<E}-y2QP;#X<GV zM02Ca4I=mURp)zkC^<~)h~voUs^i%;FYU;h>57S0T%Iz2GuuD?dAA3DV$B=lZOvyH z6r$};vfMbhvpd#2)ab(g!yh-Ek7Z~$GM#H>zhpq@2A(^5;i*}LzgRN!Zg8aEKBmo3 zU~_+0pvT;%56#ba?9GZ^(LVK@^z27^d%wKo4BR!RsX!tAv-hD-_1uOUt()YuJC_P2 zIa#nij44Xwx_+jyrA#kp&fiDVG#=mia(wT_^268u`LO+C{8`>(vCFyVAp-*ggQu&X J%Q~loCIA*?vmyWh diff --git a/takima-AR/src/index.html b/takima-AR/src/index.html deleted file mode 100644 index 34a51bff..00000000 --- a/takima-AR/src/index.html +++ /dev/null @@ -1,13 +0,0 @@ -<!doctype html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <title>TakimaAR</title> - <base href="/"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <link rel="icon" type="image/x-icon" href="favicon.ico"> -</head> -<body> - <app-root></app-root> -</body> -</html> diff --git a/takima-AR/src/main.ts b/takima-AR/src/main.ts deleted file mode 100644 index c58dc05c..00000000 --- a/takima-AR/src/main.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; - -import { AppModule } from './app/app.module'; - - -platformBrowserDynamic().bootstrapModule(AppModule) - .catch(err => console.error(err)); diff --git a/takima-AR/src/styles.scss b/takima-AR/src/styles.scss deleted file mode 100644 index 90d4ee00..00000000 --- a/takima-AR/src/styles.scss +++ /dev/null @@ -1 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ diff --git a/takima-AR/tsconfig.app.json b/takima-AR/tsconfig.app.json deleted file mode 100644 index 374cc9d2..00000000 --- a/takima-AR/tsconfig.app.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/app", - "types": [] - }, - "files": [ - "src/main.ts" - ], - "include": [ - "src/**/*.d.ts" - ] -} diff --git a/takima-AR/tsconfig.json b/takima-AR/tsconfig.json deleted file mode 100644 index ed966d43..00000000 --- a/takima-AR/tsconfig.json +++ /dev/null @@ -1,33 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "compileOnSave": false, - "compilerOptions": { - "baseUrl": "./", - "outDir": "./dist/out-tsc", - "forceConsistentCasingInFileNames": true, - "strict": true, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "sourceMap": true, - "declaration": false, - "downlevelIteration": true, - "experimentalDecorators": true, - "moduleResolution": "node", - "importHelpers": true, - "target": "ES2022", - "module": "ES2022", - "useDefineForClassFields": false, - "lib": [ - "ES2022", - "dom" - ] - }, - "angularCompilerOptions": { - "enableI18nLegacyMessageIdFormat": false, - "strictInjectionParameters": true, - "strictInputAccessModifiers": true, - "strictTemplates": true - } -} diff --git a/takima-AR/tsconfig.spec.json b/takima-AR/tsconfig.spec.json deleted file mode 100644 index be7e9da7..00000000 --- a/takima-AR/tsconfig.spec.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/spec", - "types": [ - "jasmine" - ] - }, - "include": [ - "src/**/*.spec.ts", - "src/**/*.d.ts" - ] -} diff --git a/webxr/app.js b/webxr/app.js new file mode 100644 index 00000000..18013b40 --- /dev/null +++ b/webxr/app.js @@ -0,0 +1,178 @@ +/* + * Copyright 2017 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Query for WebXR support. If there's no support for the `immersive-ar` mode, + * show an error. + */ +(async function() { + const isArSessionSupported = navigator.xr && navigator.xr.isSessionSupported && await navigator.xr.isSessionSupported("immersive-ar"); + if (isArSessionSupported) { + document.getElementById("enter-ar").addEventListener("click", window.app.activateXR) + } else { + onNoXRDevice(); + } +})(); + +/** + * Container class to manage connecting to the WebXR Device API + * and handle rendering on every frame. + */ +class App { + /** + * Run when the Start AR button is pressed. + */ + activateXR = async () => { + try { + // Initialize a WebXR session using "immersive-ar". + this.xrSession = await navigator.xr.requestSession("immersive-ar", { + requiredFeatures: ["hit-test", "dom-overlay"], + domOverlay: { root: document.body }, + }); + + // Create the canvas that will contain our camera's background and our virtual scene. + this.createXRCanvas(); + + // With everything set up, start the app. + await this.onSessionStarted(); + } catch(e) { + onNoXRDevice(); + } + } + + /** + * Add a canvas element and initialize a WebGL context that is compatible with WebXR. + */ + createXRCanvas() { + this.canvas = document.createElement("canvas"); + document.body.appendChild(this.canvas); + this.gl = this.canvas.getContext("webgl", {xrCompatible: true}); + + this.xrSession.updateRenderState({ + baseLayer: new XRWebGLLayer(this.xrSession, this.gl) + }); + } + + /** + * Called when the XRSession has begun. Here we set up our three.js + * renderer and kick off the render loop. + */ + async onSessionStarted() { + // Add the `ar` class to our body, which will hide our 2D components + document.body.classList.add('ar'); + + // To help with working with 3D on the web, we'll use three.js. + this.setupThreeJs(); + + // Setup an XRReferenceSpace using the "local" coordinate system. + this.localReferenceSpace = await this.xrSession.requestReferenceSpace("local"); + // Create another XRReferenceSpace that has the viewer as the origin. + this.viewerSpace = await this.xrSession.requestReferenceSpace("viewer"); + // Perform hit testing using the viewer as origin. + this.hitTestSource = await this.xrSession.requestHitTestSource({ space: this.viewerSpace }); + + // Start a rendering loop using this.onXRFrame. + this.xrSession.requestAnimationFrame(this.onXRFrame); + this.xrSession.addEventListener("select", this.onSelect); + } + + onSelect = () => { + if (window.scene) { + const clone = window.scene.clone(); + clone.position.copy(this.reticle.position); + this.scene.add(clone); + } + } + + /** + * Called on the XRSession's requestAnimationFrame. + * Called with the time and XRPresentationFrame. + */ + onXRFrame = (time, frame) => { + // Queue up the next draw request. + this.xrSession.requestAnimationFrame(this.onXRFrame); + + const framebuffer = this.xrSession.renderState.baseLayer.framebuffer; + this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, framebuffer); + this.renderer.setFramebuffer(framebuffer); + + this.camera.updateMatrixWorld(true); + + // Add the following: + const hitTestResults = frame.getHitTestResults(this.hitTestSource); + + if (!this.stabilized && hitTestResults.length > 0) { + this.stabilized = true; + document.body.classList.add("stabilized"); + } + + if (hitTestResults.length > 0) { + const hitPose = hitTestResults[0].getPose(this.localReferenceSpace); + + // update the reticle position + this.reticle.visible = true; + this.reticle.position.set(hitPose.transform.position.x, hitPose.transform.position.y, hitPose.transform.position.z) + this.reticle.updateMatrixWorld(true); + } + + // Retrieve the pose of the device. + // XRFrame.getViewerPose can return null while the session attempts to establish tracking. + const pose = frame.getViewerPose(this.localReferenceSpace); + if (pose) { + // In mobile AR, we only have one view. + const view = pose.views[0]; + + const viewport = this.xrSession.renderState.baseLayer.getViewport(view); + this.renderer.setSize(viewport.width, viewport.height); + + // Use the view's transform matrix and projection matrix to configure the THREE.camera. + this.camera.matrix.fromArray(view.transform.matrix); + this.camera.projectionMatrix.fromArray(view.projectionMatrix); + this.camera.updateMatrixWorld(true); + + // Render the scene with THREE.WebGLRenderer. + this.renderer.render(this.scene, this.camera); + } + } + + /** + * Initialize three.js specific rendering code, including a WebGLRenderer, + * a demo scene, and a camera for viewing the 3D content. + */ + setupThreeJs() { + // To help with working with 3D on the web, we'll use three.js. + // Set up the WebGLRenderer, which handles rendering to our session's base layer. + this.renderer = new THREE.WebGLRenderer({ + alpha: true, + preserveDrawingBuffer: true, + canvas: this.canvas, + context: this.gl + }); + this.renderer.autoClear = false; + + // Initialize our demo scene. + this.scene = DemoUtils.createLitScene(); + this.reticle = new Reticle(); + this.scene.add(this.reticle); + + // We'll update the camera matrices directly from API, so + // disable matrix auto updates so three.js doesn't attempt + // to handle the matrices independently. + this.camera = new THREE.PerspectiveCamera(); + this.camera.matrixAutoUpdate = false; + } +}; + +window.app = new App(); diff --git a/webxr/assets/stabilization.gif b/webxr/assets/stabilization.gif new file mode 100644 index 0000000000000000000000000000000000000000..e17d138cfc25b76b3a698bac28f525a346af6452 GIT binary patch literal 850020 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%0ADa{TIqhHv=)j4)n>jn# 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 DyRc_= literal 0 HcmV?d00001 diff --git a/webxr/index.html b/webxr/index.html new file mode 100644 index 00000000..25559ab5 --- /dev/null +++ b/webxr/index.html @@ -0,0 +1,63 @@ +<!doctype html> +<!-- +/* + * Copyright 2017 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +--> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Building an augmented reality application with the WebXR Device API</title> + <link rel="stylesheet" href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css"> + <script src="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.js"></script> + + <!-- three.js --> + <script src="https://unpkg.com/three@0.126.0/build/three.js"></script> + <script src="https://unpkg.com/three@0.126.0/examples/js/loaders/GLTFLoader.js"></script> + + <link rel="stylesheet" type="text/css" href="shared/app.css" /> + <script src="shared/utils.js"></script> + </head> + <body> + <div id="enter-ar-info" class="mdc-card demo-card"> + <h2>Augmented Reality with the WebXR Device API</h2> + <p> + This is an experiment using augmented reality features with the WebXR Device API. + Upon entering AR, you will be surrounded by a world of cubes. + Learn more about these features from the <a href="https://codelabs.developers.google.com/codelabs/ar-with-webxr">Building an augmented reality application with the WebXR Device API</a> Code Lab. + </p> + + <!-- Starting an immersive WebXR session requires user interaction. Start the WebXR experience with a simple button. --> + <a id="enter-ar" class="mdc-button mdc-button--raised mdc-button--accent"> + Start augmented reality + </a> + </div> + + <div id="unsupported-info" class="mdc-card demo-card"> + <h2>Unsupported Browser</h2> + <p> + Your browser does not support AR features with WebXR. Learn more about these features from the + <a href="https://codelabs.developers.google.com/codelabs/ar-with-webxr">Building an augmented reality application with the WebXR Device API</a> Code Lab. + </p> + </div> + <!-- <script> + if (typeof navigator.xr == "undefined") { + import("shared/webxr-polyfill.js"); + } + </script> --> + <script src="app.js"></script> + <div id="stabilization" /> + </body> +</html> diff --git a/webxr/scene.bin b/webxr/scene.bin new file mode 100644 index 0000000000000000000000000000000000000000..03d6e218e24c954cac434e7550e8cfc6c3ee86a9 GIT binary patch literal 5240 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 literal 0 HcmV?d00001 diff --git a/webxr/scene.gltf b/webxr/scene.gltf new file mode 100644 index 00000000..26c614f1 --- /dev/null +++ b/webxr/scene.gltf @@ -0,0 +1,458 @@ +{ + "accessors": [ + { + "bufferView": 2, + "componentType": 5126, + "count": 4, + "max": [ + 1.0, + 1.0, + 0.27836930751800537 + ], + "min": [ + -1.0, + -1.0, + 0.27836930751800537 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 48, + "componentType": 5126, + "count": 4, + "max": [ + 0.0, + 0.0, + 1.0 + ], + "min": [ + 0.0, + 0.0, + 1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 4, + "max": [ + 1.0, + 1.0 + ], + "min": [ + 0.0, + 0.0 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "componentType": 5125, + "count": 6, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 96, + "componentType": 5126, + "count": 116, + "max": [ + 1.0785797834396362, + 1.0995588302612305, + 0.278977632522583 + ], + "min": [ + -1.0906394720077515, + -3.394082546234131, + -1.0038073062896729 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 1488, + "componentType": 5126, + "count": 116, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 32, + "componentType": 5126, + "count": 116, + "max": [ + 1.0018115043640137, + 0.9940674304962158 + ], + "min": [ + -0.0018788278102874756, + -0.0019999996293336153 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 24, + "componentType": 5125, + "count": 192, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 2880, + "componentType": 5126, + "count": 16, + "max": [ + 0.9680508375167847, + 0.982027530670166, + 0.2578812837600708 + ], + "min": [ + -0.9795780181884766, + -0.970883846282959, + 0.19486869871616364 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 3072, + "componentType": 5126, + "count": 16, + "max": [ + 1.0, + 1.0, + 0.0 + ], + "min": [ + -1.0, + -1.0, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 960, + "componentType": 5126, + "count": 16, + "max": [ + 0.9601946473121643, + 0.966732382774353 + ], + "min": [ + 0.04330413043498993, + 0.5362676978111267 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 792, + "componentType": 5125, + "count": 24, + "type": "SCALAR" + } + ], + "asset": { + "extras": { + "author": "Wersaus33 (https://sketchfab.com/wersaus33)", + "license": "CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)", + "source": "https://sketchfab.com/3d-models/vending-machine-ps1-low-poly-1dd16274855e4da7b6dc332a30bf438c", + "title": "Vending Machine - PS1 Low Poly" + }, + "generator": "Sketchfab-15.8.0", + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteLength": 888, + "name": "floatBufferViews", + "target": 34963 + }, + { + "buffer": 0, + "byteLength": 1088, + "byteOffset": 888, + "byteStride": 8, + "name": "floatBufferViews", + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 3264, + "byteOffset": 1976, + "byteStride": 12, + "name": "floatBufferViews", + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 5240, + "uri": "scene.bin" + } + ], + "extensionsUsed": [ + "KHR_materials_transmission", + "KHR_materials_specular", + "KHR_materials_emissive_strength" + ], + "images": [ + { + "uri": "textures/vending_m_baseColor.jpeg" + } + ], + "materials": [ + { + "alphaMode": "BLEND", + "doubleSided": true, + "extensions": { + "KHR_materials_transmission": { + "transmissionFactor": 0.9710475308115225 + } + }, + "name": "Glass", + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.8, + 0.8, + 0.8, + 0.25 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.0 + } + }, + { + "doubleSided": true, + "extensions": { + "KHR_materials_specular": { + "specularColorFactor": [ + 1.0, + 1.0, + 1.0 + ], + "specularFactor": 0.32152478940888196 + } + }, + "name": "vending_m", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicFactor": 0.5714303129304774, + "roughnessFactor": 0.5931416171935 + } + }, + { + "doubleSided": true, + "emissiveFactor": [ + 1.0, + 1.0, + 1.0 + ], + "extensions": { + "KHR_materials_emissive_strength": { + "emissiveStrength": 10.0 + }, + "KHR_materials_specular": { + "specularColorFactor": [ + 1.0, + 1.0, + 1.0 + ], + "specularFactor": 1.0 + } + }, + "name": "Lights", + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.8, + 0.8, + 0.8, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.8211145618000169 + } + } + ], + "meshes": [ + { + "name": "Plane_Glass_0", + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 0, + "TEXCOORD_0": 2 + }, + "indices": 3, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Plane_vending_m_0", + "primitives": [ + { + "attributes": { + "NORMAL": 5, + "POSITION": 4, + "TEXCOORD_0": 6 + }, + "indices": 7, + "material": 1, + "mode": 4 + } + ] + }, + { + "name": "Plane_Lights_0", + "primitives": [ + { + "attributes": { + "NORMAL": 9, + "POSITION": 8, + "TEXCOORD_0": 10 + }, + "indices": 11, + "material": 2, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.220446049250313e-16, + -1.0, + 0.0, + 0.0, + 1.0, + 2.220446049250313e-16, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "name": "Sketchfab_model" + }, + { + "children": [ + 2 + ], + "matrix": [ + 0.009999999776482582, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.009999999776482582, + 0.0, + 0.0, + -0.009999999776482582, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "name": "a19263bec23b44b89cde89c025f6618a.fbx" + }, + { + "children": [ + 3 + ], + "name": "RootNode" + }, + { + "children": [ + 4, + 5, + 6 + ], + "matrix": [ + 63.02646255493164, + 0.0, + 0.0, + 0.0, + 0.0, + 56.24850463867182, + 2.4587004266441977e-06, + 0.0, + 0.0, + -2.7549744009931412e-06, + 63.02646255493158, + 0.0, + 0.3800418972969055, + 122.55294036865234, + 1.6288773622363806e-05, + 1.0 + ], + "name": "Plane" + }, + { + "mesh": 0, + "name": "Plane_Glass_0" + }, + { + "mesh": 1, + "name": "Plane_vending_m_0" + }, + { + "mesh": 2, + "name": "Plane_Lights_0" + } + ], + "samplers": [ + { + "magFilter": 9728, + "minFilter": 9728, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "scene": 0, + "scenes": [ + { + "name": "Sketchfab_Scene", + "nodes": [ + 0 + ] + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + } + ] +} diff --git a/webxr/shared/app.css b/webxr/shared/app.css new file mode 100644 index 00000000..12dfe198 --- /dev/null +++ b/webxr/shared/app.css @@ -0,0 +1,107 @@ +/* + * Copyright 2017 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +body { + font-family: monospace; + margin: 0; + overflow: hidden; + position: fixed; + width: 100%; + height: 100vh; + -webkit-user-select: none; + user-select: none; + background-color: rgb(69, 90, 100); +} + +div.demo-card { + width: 80vw; + margin: 20px auto; + padding: 16px; +} + +#enter-ar-info .mdl-card__title { + color: #fff; + height: 176px; + background-color: rgb(96, 125, 139); +} + +body.unsupported #enter-ar-info { + display: none; +} + +body.ar #enter-ar-info { + display: none; +} + +#unsupported-info { + display: none; +} + +body.unsupported #unsupported-info { + display: block; +} + +#info { + position: absolute; + left: 50%; + top: 0; + transform: translate(-50%, 0); + margin: 1em 1em 2em 1em; + z-index: 10; + display: block; + line-height: 2em; + text-align: center; + display: none; + width: 100%; +} + +body.ar #info { + display: block; +} + +#info * { + color: #fff; +} + +#info span { + background-color: rgba(40, 40, 40, 0.4); + padding: 0.4em 0.6em; + width: 80vw; + border-radius: 0.1em; +} + +#stabilization { + background-image: url(assets/stabilization.gif); + background-size: contain; + background-repeat: no-repeat; + width: 400px; + height: 400px; + position: absolute; + left: 50%; + top: 0; + transform: translate(-50%, 0); + z-index: 10; + display: none; +} + +body.ar #stabilization { + display: block; +} + +body.ar.stabilized #stabilization { + display: none; +} + +#wrong-hosting-root { display: none; } \ No newline at end of file diff --git a/webxr/shared/utils.js b/webxr/shared/utils.js new file mode 100644 index 00000000..5e8ac676 --- /dev/null +++ b/webxr/shared/utils.js @@ -0,0 +1,133 @@ +/* + * Copyright 2017 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +window.gltfLoader = new THREE.GLTFLoader(); +/** + * The Reticle class creates an object that repeatedly calls + * `xrSession.requestHitTest()` to render a ring along a found + * horizontal surface. + */ +class Reticle extends THREE.Object3D { + constructor() { + super(); + + this.loader = new THREE.GLTFLoader(); + this.loader.load("https://immersive-web.github.io/webxr-samples/media/gltf/reticle/reticle.gltf", (gltf) => { + this.add(gltf.scene); + }) + + this.visible = false; + } +} + +window.gltfLoader.load("https://immersive-web.github.io/webxr-samples/media/gltf/sunflower/sunflower.gltf", function(gltf) { + const flower = gltf.scene.children.find(c => c.name === 'sunflower') + flower.castShadow = true; + window.sunflower = gltf.scene; +}); + +window.gltfLoader.load("scene.gltf", function(gltf) { + window.scene = gltf.scene; +}); + +window.DemoUtils = { + /** + * Creates a THREE.Scene containing lights that case shadows, + * and a mesh that will receive shadows. + * + * @return {THREE.Scene} + */ + createLitScene() { + const scene = new THREE.Scene(); + + // The materials will render as a black mesh + // without lights in our scenes. Let's add an ambient light + // so our material can be visible, as well as a directional light + // for the shadow. + const light = new THREE.AmbientLight(0xffffff, 1); + const directionalLight = new THREE.DirectionalLight(0xffffff, 0.3); + directionalLight.position.set(10, 15, 10); + + // We want this light to cast shadow. + directionalLight.castShadow = true; + + // Make a large plane to receive our shadows + const planeGeometry = new THREE.PlaneGeometry(2000, 2000); + // Rotate our plane to be parallel to the floor + planeGeometry.rotateX(-Math.PI / 2); + + // Create a mesh with a shadow material, resulting in a mesh + // that only renders shadows once we flip the `receiveShadow` property. + const shadowMesh = new THREE.Mesh(planeGeometry, new THREE.ShadowMaterial({ + color: 0x111111, + opacity: 0.2, + })); + + // Give it a name so we can reference it later, and set `receiveShadow` + // to true so that it can render our model's shadow. + shadowMesh.name = 'shadowMesh'; + shadowMesh.receiveShadow = true; + shadowMesh.position.y = 10000; + + // Add lights and shadow material to scene. + scene.add(shadowMesh); + scene.add(light); + scene.add(directionalLight); + + return scene; + }, + + /** + * Creates a THREE.Scene containing cubes all over the scene. + * + * @return {THREE.Scene} + */ + createCubeScene() { + const scene = new THREE.Scene(); + + const materials = [ + new THREE.MeshBasicMaterial({ color: 0xff0000 }), + new THREE.MeshBasicMaterial({ color: 0x0000ff }), + new THREE.MeshBasicMaterial({ color: 0x00ff00 }), + new THREE.MeshBasicMaterial({ color: 0xff00ff }), + new THREE.MeshBasicMaterial({ color: 0x00ffff }), + new THREE.MeshBasicMaterial({ color: 0xffff00 }) + ]; + + const ROW_COUNT = 4; + const SPREAD = 1; + const HALF = ROW_COUNT / 2; + for (let i = 0; i < ROW_COUNT; i++) { + for (let j = 0; j < ROW_COUNT; j++) { + for (let k = 0; k < ROW_COUNT; k++) { + const box = new THREE.Mesh(new THREE.BoxBufferGeometry(0.2, 0.2, 0.2), materials); + box.position.set(i - HALF, j - HALF, k - HALF); + box.position.multiplyScalar(SPREAD); + scene.add(box); + } + } + } + + return scene; + }, +}; + +/** + * Toggle on a class on the page to disable the "Enter AR" + * button and display the unsupported browser message. + */ +function onNoXRDevice() { + document.body.classList.add('unsupported'); +} \ No newline at end of file diff --git a/webxr/shared/webxr-polyfill.js b/webxr/shared/webxr-polyfill.js new file mode 100644 index 00000000..af2855d1 --- /dev/null +++ b/webxr/shared/webxr-polyfill.js @@ -0,0 +1,12684 @@ +/* if there is a navigator.xr, clear it out */ +if(typeof navigator.xr != 'undefined') { + if(typeof XRDisplay != 'undefined') { XRDisplay = null } + if(typeof XRSession != 'undefined') { XRSession = null } + if(typeof XRSessionCreateParameters != 'undefined') { XRSessionCreateParameters = null } + if(typeof Reality != 'undefined') { Reality = null } + if(typeof XRPointCloud != 'undefined') { XRPointCloud = null } + if(typeof XRLightEstimate != 'undefined') { XRLightEstimate = null } + if(typeof XRAnchor != 'undefined') { XRAnchor = null } + if(typeof XRPlaneAnchor != 'undefined') { XRPlaneAnchor = null } + if(typeof XRFaceAnchor != 'undefined') { XRFaceAnchor = null } + if(typeof XRImageAnchor != 'undefined') { XRImageAnchor = null } + if(typeof XRAnchorOffset != 'undefined') { XRAnchorOffset = null } + if(typeof XRStageBounds != 'undefined') { XRStageBounds = null } + if(typeof XRStageBoundsPoint != 'undefined') { XRStageBoundsPoint = null } + if(typeof XRPresentationFrame != 'undefined') { XRPresentationFrame = null } + if(typeof XRView != 'undefined') { XRView = null } + if(typeof XRViewport != 'undefined') { XRViewport = null } + if(typeof XRCoordinateSystem != 'undefined') { XRCoordinateSystem = null } + if(typeof XRViewPose != 'undefined') { XRViewPose = null } + if(typeof XRLayer != 'undefined') { XRLayer = null } + if(typeof XRWebGLLayer != 'undefined') { XRWebGLLayer = null } + if(typeof XRVideoFrame != 'undefined') { XRVideoFrame = null } + //navigator.xr = null; +}/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 25); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _Quaternion = __webpack_require__(2); + +var _Quaternion2 = _interopRequireDefault(_Quaternion); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +MatrixMath provides helper functions for populating the various matrices involved with 3D graphics. + +Many of the math methods were taken from the Google webvr polyfill: +https://github.com/googlevr/webvr-polyfill/blob/master/src/util.js#L270 +*/ +var MatrixMath = function () { + function MatrixMath() { + _classCallCheck(this, MatrixMath); + } + + _createClass(MatrixMath, null, [{ + key: 'mat4_generateIdentity', + + + // Returns a new Float32Array that is set to the transform identity + value: function mat4_generateIdentity() { + return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]); + } + }, { + key: 'mat4_get_position', + value: function mat4_get_position(out, m) { + out[0] = m[12]; + out[1] = m[13]; + out[2] = m[14]; + return out; + } + }, { + key: 'mat4_get_rotation', + value: function mat4_get_rotation(out, m) { + var quat = new _Quaternion2.default(); + quat.setFromRotationMatrix(m); + out[0] = quat.x; + out[1] = quat.y; + out[2] = quat.z; + out[3] = quat.w; + return out; + } + }, { + key: 'mat4_eyeView', + value: function mat4_eyeView(out, poseModelMatrix) { + var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Float32Array([0, 0, 0]); + + MatrixMath.mat4_translate(out, poseModelMatrix, offset); + MatrixMath.mat4_invert(out, out); + } + }, { + key: 'mat4_perspectiveFromFieldOfView', + value: function mat4_perspectiveFromFieldOfView(out, fov, near, far) { + var upTan = Math.tan(fov.upDegrees * MatrixMath.PI_OVER_180); + var downTan = Math.tan(fov.downDegrees * MatrixMath.PI_OVER_180); + var leftTan = Math.tan(fov.leftDegrees * MatrixMath.PI_OVER_180); + var rightTan = Math.tan(fov.rightDegrees * MatrixMath.PI_OVER_180); + + var xScale = 2.0 / (leftTan + rightTan); + var yScale = 2.0 / (upTan + downTan); + + out[0] = xScale; + out[1] = 0.0; + out[2] = 0.0; + out[3] = 0.0; + out[4] = 0.0; + out[5] = yScale; + out[6] = 0.0; + out[7] = 0.0; + out[8] = -((leftTan - rightTan) * xScale * 0.5); + out[9] = (upTan - downTan) * yScale * 0.5; + out[10] = far / (near - far); + out[11] = -1.0; + out[12] = 0.0; + out[13] = 0.0; + out[14] = far * near / (near - far); + out[15] = 0.0; + return out; + } + }, { + key: 'mat4_fromRotationTranslation', + value: function mat4_fromRotationTranslation(out) { + var q = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0, 1]; + var v = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0, 0]; + + // Quaternion math + var x = q[0]; + var y = q[1]; + var z = q[2]; + var w = q[3]; + var x2 = x + x; + var y2 = y + y; + var z2 = z + z; + + var xx = x * x2; + var xy = x * y2; + var xz = x * z2; + var yy = y * y2; + var yz = y * z2; + var zz = z * z2; + var wx = w * x2; + var wy = w * y2; + var wz = w * z2; + + out[0] = 1 - (yy + zz); + out[1] = xy + wz; + out[2] = xz - wy; + out[3] = 0; + out[4] = xy - wz; + out[5] = 1 - (xx + zz); + out[6] = yz + wx; + out[7] = 0; + out[8] = xz + wy; + out[9] = yz - wx; + out[10] = 1 - (xx + yy); + out[11] = 0; + out[12] = v[0]; + out[13] = v[1]; + out[14] = v[2]; + out[15] = 1; + + return out; + } + }, { + key: 'mat4_translate', + value: function mat4_translate(out, a, v) { + var x = v[0]; + var y = v[1]; + var z = v[2]; + var a00 = void 0; + var a01 = void 0; + var a02 = void 0; + var a03 = void 0; + var a10 = void 0, + a11 = void 0, + a12 = void 0, + a13 = void 0, + a20 = void 0, + a21 = void 0, + a22 = void 0, + a23 = void 0; + + if (a === out) { + out[12] = a[0] * x + a[4] * y + a[8] * z + a[12]; + out[13] = a[1] * x + a[5] * y + a[9] * z + a[13]; + out[14] = a[2] * x + a[6] * y + a[10] * z + a[14]; + out[15] = a[3] * x + a[7] * y + a[11] * z + a[15]; + } else { + a00 = a[0];a01 = a[1];a02 = a[2];a03 = a[3]; + a10 = a[4];a11 = a[5];a12 = a[6];a13 = a[7]; + a20 = a[8];a21 = a[9];a22 = a[10];a23 = a[11]; + + out[0] = a00;out[1] = a01;out[2] = a02;out[3] = a03; + out[4] = a10;out[5] = a11;out[6] = a12;out[7] = a13; + out[8] = a20;out[9] = a21;out[10] = a22;out[11] = a23; + + out[12] = a00 * x + a10 * y + a20 * z + a[12]; + out[13] = a01 * x + a11 * y + a21 * z + a[13]; + out[14] = a02 * x + a12 * y + a22 * z + a[14]; + out[15] = a03 * x + a13 * y + a23 * z + a[15]; + } + + return out; + } + }, { + key: 'mat4_invert', + value: function mat4_invert(out, a) { + var a00 = a[0], + a01 = a[1], + a02 = a[2], + a03 = a[3], + a10 = a[4], + a11 = a[5], + a12 = a[6], + a13 = a[7], + a20 = a[8], + a21 = a[9], + a22 = a[10], + a23 = a[11], + a30 = a[12], + a31 = a[13], + a32 = a[14], + a33 = a[15]; + + var b00 = a00 * a11 - a01 * a10; + var b01 = a00 * a12 - a02 * a10; + var b02 = a00 * a13 - a03 * a10; + var b03 = a01 * a12 - a02 * a11; + var b04 = a01 * a13 - a03 * a11; + var b05 = a02 * a13 - a03 * a12; + var b06 = a20 * a31 - a21 * a30; + var b07 = a20 * a32 - a22 * a30; + var b08 = a20 * a33 - a23 * a30; + var b09 = a21 * a32 - a22 * a31; + var b10 = a21 * a33 - a23 * a31; + var b11 = a22 * a33 - a23 * a32; + + // Calculate the determinant + var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; + + if (!det) { + return null; + } + det = 1.0 / det; + + out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det; + out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det; + out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det; + out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det; + out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det; + out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det; + out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det; + out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det; + out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det; + out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det; + out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det; + out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det; + out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det; + out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det; + out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det; + out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det; + + return out; + } + }, { + key: 'mat4_multiply', + value: function mat4_multiply(out, ae, be) { + var a11 = ae[0], + a12 = ae[4], + a13 = ae[8], + a14 = ae[12]; + var a21 = ae[1], + a22 = ae[5], + a23 = ae[9], + a24 = ae[13]; + var a31 = ae[2], + a32 = ae[6], + a33 = ae[10], + a34 = ae[14]; + var a41 = ae[3], + a42 = ae[7], + a43 = ae[11], + a44 = ae[15]; + + var b11 = be[0], + b12 = be[4], + b13 = be[8], + b14 = be[12]; + var b21 = be[1], + b22 = be[5], + b23 = be[9], + b24 = be[13]; + var b31 = be[2], + b32 = be[6], + b33 = be[10], + b34 = be[14]; + var b41 = be[3], + b42 = be[7], + b43 = be[11], + b44 = be[15]; + + out[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41; + out[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42; + out[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43; + out[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44; + + out[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41; + out[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42; + out[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43; + out[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44; + + out[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41; + out[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42; + out[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43; + out[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44; + + out[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41; + out[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42; + out[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43; + out[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44; + + return out; + } + }]); + + return MatrixMath; +}(); + +exports.default = MatrixMath; + + +MatrixMath.PI_OVER_180 = Math.PI / 180.0; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRAnchors provide per-frame coordinates which the Reality attempts to pin "in place". +In a virtual Reality these coordinates do not change. +In a Reality based on environment mapping sensors, the anchors may change pose on a per-frame bases as the system refines its map. +*/ +var XRAnchor = function () { + function XRAnchor(xrCoordinateSystem) { + var uid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + _classCallCheck(this, XRAnchor); + + this._uid = uid || XRAnchor._generateUID(); + this._coordinateSystem = xrCoordinateSystem; + } + + _createClass(XRAnchor, [{ + key: 'uid', + get: function get() { + return this._uid; + } + }, { + key: 'coordinateSystem', + get: function get() { + return this._coordinateSystem; + } + }], [{ + key: '_generateUID', + value: function _generateUID() { + return 'anchor-' + new Date().getTime() + '-' + Math.floor(Math.random() * Number.MAX_SAFE_INTEGER); + } + }]); + + return XRAnchor; +}(); + +exports.default = XRAnchor; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +Quaternion wraps a vector of length 4 used as an orientation value. + +Taken from https://github.com/googlevr/webvr-polyfill/blob/master/src/math-util.js which took it from Three.js +*/ +var Quaternion = function () { + function Quaternion() { + var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + var w = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; + + _classCallCheck(this, Quaternion); + + this.x = x; + this.y = y; + this.z = z; + this.w = w; + } + + _createClass(Quaternion, [{ + key: 'set', + value: function set(x, y, z, w) { + this.x = x; + this.y = y; + this.z = z; + this.w = w; + return this; + } + }, { + key: 'toArray', + value: function toArray() { + return [this.x, this.y, this.z, this.w]; + } + }, { + key: 'copy', + value: function copy(quaternion) { + this.x = quaternion.x; + this.y = quaternion.y; + this.z = quaternion.z; + this.w = quaternion.w; + return this; + } + }, { + key: 'setFromRotationMatrix', + value: function setFromRotationMatrix(array16) { + // Taken from https://github.com/mrdoob/three.js/blob/dev/src/math/Quaternion.js + // which took it from http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm + // assumes the upper 3x3 of array16 (column major) is a pure rotation matrix (i.e, unscaled) + + var m11 = array16[0], + m12 = array16[4], + m13 = array16[8], + m21 = array16[1], + m22 = array16[5], + m23 = array16[9], + m31 = array16[2], + m32 = array16[6], + m33 = array16[10]; + + var trace = m11 + m22 + m33; + + if (trace > 0) { + var s = 0.5 / Math.sqrt(trace + 1.0); + this.w = 0.25 / s; + this.x = (m32 - m23) * s; + this.y = (m13 - m31) * s; + this.z = (m21 - m12) * s; + } else if (m11 > m22 && m11 > m33) { + var s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33); + this.w = (m32 - m23) / s; + this.x = 0.25 * s; + this.y = (m12 + m21) / s; + this.z = (m13 + m31) / s; + } else if (m22 > m33) { + var s = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33); + this.w = (m13 - m31) / s; + this.x = (m12 + m21) / s; + this.y = 0.25 * s; + this.z = (m23 + m32) / s; + } else { + var s = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22); + this.w = (m21 - m12) / s; + this.x = (m13 + m31) / s; + this.y = (m23 + m32) / s; + this.z = 0.25 * s; + } + return this; + } + }, { + key: 'setFromEuler', + value: function setFromEuler(x, y, z) { + var order = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'XYZ'; + + // http://www.mathworks.com/matlabcentral/fileexchange/ + // 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/ + // content/SpinCalc.m + + var cos = Math.cos; + var sin = Math.sin; + var c1 = cos(x / 2); + var c2 = cos(y / 2); + var c3 = cos(z / 2); + var s1 = sin(x / 2); + var s2 = sin(y / 2); + var s3 = sin(z / 2); + + if (order === 'XYZ') { + this.x = s1 * c2 * c3 + c1 * s2 * s3; + this.y = c1 * s2 * c3 - s1 * c2 * s3; + this.z = c1 * c2 * s3 + s1 * s2 * c3; + this.w = c1 * c2 * c3 - s1 * s2 * s3; + } else if (order === 'YXZ') { + this.x = s1 * c2 * c3 + c1 * s2 * s3; + this.y = c1 * s2 * c3 - s1 * c2 * s3; + this.z = c1 * c2 * s3 - s1 * s2 * c3; + this.w = c1 * c2 * c3 + s1 * s2 * s3; + } else if (order === 'ZXY') { + this.x = s1 * c2 * c3 - c1 * s2 * s3; + this.y = c1 * s2 * c3 + s1 * c2 * s3; + this.z = c1 * c2 * s3 + s1 * s2 * c3; + this.w = c1 * c2 * c3 - s1 * s2 * s3; + } else if (order === 'ZYX') { + this.x = s1 * c2 * c3 - c1 * s2 * s3; + this.y = c1 * s2 * c3 + s1 * c2 * s3; + this.z = c1 * c2 * s3 - s1 * s2 * c3; + this.w = c1 * c2 * c3 + s1 * s2 * s3; + } else if (order === 'YZX') { + this.x = s1 * c2 * c3 + c1 * s2 * s3; + this.y = c1 * s2 * c3 + s1 * c2 * s3; + this.z = c1 * c2 * s3 - s1 * s2 * c3; + this.w = c1 * c2 * c3 - s1 * s2 * s3; + } else if (order === 'XZY') { + this.x = s1 * c2 * c3 - c1 * s2 * s3; + this.y = c1 * s2 * c3 - s1 * c2 * s3; + this.z = c1 * c2 * s3 + s1 * s2 * c3; + this.w = c1 * c2 * c3 + s1 * s2 * s3; + } + } + }, { + key: 'setFromAxisAngle', + value: function setFromAxisAngle(axis, angle) { + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm + // assumes axis is normalized + var halfAngle = angle / 2; + var s = Math.sin(halfAngle); + this.x = axis.x * s; + this.y = axis.y * s; + this.z = axis.z * s; + this.w = Math.cos(halfAngle); + return this; + } + }, { + key: 'multiply', + value: function multiply(q) { + return this.multiplyQuaternions(this, q); + } + }, { + key: 'multiplyQuaternions', + value: function multiplyQuaternions(a, b) { + // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm + var qax = a.x, + qay = a.y, + qaz = a.z, + qaw = a.w; + var qbx = b.x, + qby = b.y, + qbz = b.z, + qbw = b.w; + this.x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby; + this.y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz; + this.z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx; + this.w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz; + return this; + } + }, { + key: 'inverse', + value: function inverse() { + this.x *= -1; + this.y *= -1; + this.z *= -1; + this.normalize(); + return this; + } + }, { + key: 'normalize', + value: function normalize() { + var l = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w); + if (l === 0) { + this.x = 0; + this.y = 0; + this.z = 0; + this.w = 1; + } else { + l = 1 / l; + this.x = this.x * l; + this.y = this.y * l; + this.z = this.z * l; + this.w = this.w * l; + } + return this; + } + }, { + key: 'slerp', + value: function slerp(qb, t) { + // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/ + if (t === 0) return this; + if (t === 1) return this.copy(qb); + + var x = this.x, + y = this.y, + z = this.z, + w = this.w; + var cosHalfTheta = w * qb.w + x * qb.x + y * qb.y + z * qb.z; + if (cosHalfTheta < 0) { + this.w = -qb.w; + this.x = -qb.x; + this.y = -qb.y; + this.z = -qb.z; + cosHalfTheta = -cosHalfTheta; + } else { + this.copy(qb); + } + if (cosHalfTheta >= 1.0) { + this.w = w; + this.x = x; + this.y = y; + this.z = z; + return this; + } + + var halfTheta = Math.acos(cosHalfTheta); + var sinHalfTheta = Math.sqrt(1.0 - cosHalfTheta * cosHalfTheta); + if (Math.abs(sinHalfTheta) < 0.001) { + this.w = 0.5 * (w + this.w); + this.x = 0.5 * (x + this.x); + this.y = 0.5 * (y + this.y); + this.z = 0.5 * (z + this.z); + + return this; + } + + var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta; + var ratioB = Math.sin(t * halfTheta) / sinHalfTheta; + this.w = w * ratioA + this.w * ratioB; + this.x = x * ratioA + this.x * ratioB; + this.y = y * ratioA + this.y * ratioB; + this.z = z * ratioA + this.z * ratioB; + return this; + } + }]); + + return Quaternion; +}(); + +exports.default = Quaternion; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +EventHandlerBase is the base class that implements the EventHandler interface methods for dispatching and receiving events. +*/ +var EventHandlerBase = function () { + function EventHandlerBase() { + _classCallCheck(this, EventHandlerBase); + + this._listeners = new Map(); // string type -> [listener, ...] + } + + _createClass(EventHandlerBase, [{ + key: "addEventListener", + value: function addEventListener(type, listener) { + var listeners = this._listeners.get(type); + if (Array.isArray(listeners) === false) { + listeners = []; + this._listeners.set(type, listeners); + } + listeners.push(listener); + } + }, { + key: "removeEventListener", + value: function removeEventListener(type, listener) { + var listeners = this._listeners.get(type); + if (Array.isArray(listeners) === false) { + return; + } + for (var i = 0; i < listeners.length; i++) { + if (listeners[i] === listener) { + listeners.splice(i, 1); + return; + } + } + } + }, { + key: "dispatchEvent", + value: function dispatchEvent(event) { + var listeners = this._listeners.get(event.type); + if (Array.isArray(listeners) === false) return; + + // need a copy, since removeEventListener is often called inside listeners to create one-shots and it modifies the array, causing + // listeners not to be called! + var array = listeners.slice(0); + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = array[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var listener = _step.value; + + listener(event); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + }]); + + return EventHandlerBase; +}(); + +exports.default = EventHandlerBase; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.setMatrixArrayType = setMatrixArrayType; +exports.toRadian = toRadian; +exports.equals = equals; +/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +/** + * Common utilities + * @module glMatrix + */ + +// Configuration Constants +var EPSILON = exports.EPSILON = 0.000001; +var ARRAY_TYPE = exports.ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array; +var RANDOM = exports.RANDOM = Math.random; + +/** + * Sets the type of array used when creating new vectors and matrices + * + * @param {Type} type Array type, such as Float32Array or Array + */ +function setMatrixArrayType(type) { + exports.ARRAY_TYPE = ARRAY_TYPE = type; +} + +var degree = Math.PI / 180; + +/** + * Convert Degree To Radian + * + * @param {Number} a Angle in Degrees + */ +function toRadian(a) { + return a * degree; +} + +/** + * Tests whether or not the arguments have approximately the same value, within an absolute + * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less + * than or equal to 1.0, and a relative tolerance is used for larger values) + * + * @param {Number} a The first number to test. + * @param {Number} b The second number to test. + * @returns {Boolean} True if the numbers are approximately equal, false otherwise. + */ +function equals(a, b) { + return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b)); +} + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _EventHandlerBase2 = __webpack_require__(3); + +var _EventHandlerBase3 = _interopRequireDefault(_EventHandlerBase2); + +var _common = __webpack_require__(4); + +var glMatrix = _interopRequireWildcard(_common); + +var _mat = __webpack_require__(17); + +var mat4 = _interopRequireWildcard(_mat); + +var _quat = __webpack_require__(18); + +var quat = _interopRequireWildcard(_quat); + +var _vec = __webpack_require__(12); + +var vec3 = _interopRequireWildcard(_vec); + +var _base64Binary = __webpack_require__(19); + +var _base64Binary2 = _interopRequireDefault(_base64Binary); + +var _Quaternion = __webpack_require__(2); + +var _Quaternion2 = _interopRequireDefault(_Quaternion); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +ARKitWrapper talks to Apple ARKit, as exposed by Mozilla's test ARDemo app. +It won't function inside a browser like Firefox. + +ARKitWrapper is a singleton. Use ARKitWrapper.GetOrCreate() to get the instance, then add event listeners like so: + + if(ARKitWrapper.HasARKit()){ + let arKitWrapper = ARKitWrapper.GetOrCreate() + arKitWrapper.addEventListener(ARKitWrapper.INIT_EVENT, ev => { console.log('ARKit initialized', ev) }) + arKitWrapper.addEventListener(ARKitWrapper.WATCH_EVENT, ev => { console.log('ARKit update', ev) }) + arKitWrapper.watch({ + location: boolean, + camera: boolean, + objects: boolean, + light_intensity: boolean + }) + } + +*/ + +var ARKitWrapper = function (_EventHandlerBase) { + _inherits(ARKitWrapper, _EventHandlerBase); + + function ARKitWrapper() { + _classCallCheck(this, ARKitWrapper); + + var _this = _possibleConstructorReturn(this, (ARKitWrapper.__proto__ || Object.getPrototypeOf(ARKitWrapper)).call(this)); + + if (ARKitWrapper.HasARKit() === false) { + throw 'ARKitWrapper will only work in Mozilla\'s ARDemo test app'; + } + if (typeof ARKitWrapper.GLOBAL_INSTANCE !== 'undefined') { + throw 'ARKitWrapper is a singleton. Use ARKitWrapper.GetOrCreate() to get the global instance.'; + } + + _this._deviceId = null; + _this._isWatching = false; + _this._isInitialized = false; + _this._rawARData = null; + + // worker to convert buffers + // var blobURL = this._buildWorkerBlob() + // this._worker = new Worker(blobURL); + // URL.revokeObjectURL(blobURL); + + // var self = this; + // this._worker.onmessage = function (ev) { + // setTimeout(function () { + // self.dispatchEvent( + // new CustomEvent( + // ARKitWrapper.COMPUTER_VISION_DATA, + // { + // source: self, + // detail: ev.data + // } + // ) + // ) + // }) + // } + + _this.lightIntensity = 1000; + /** + * The current projection matrix of the device. + * @type {Float32Array} + * @private + */ + _this.projectionMatrix_ = new Float32Array(16); + /** + * The current view matrix of the device. + * @type {Float32Array} + * @private + */ + _this.viewMatrix_ = new Float32Array(16); + /** + * The list of planes coming from ARKit. + * @type {Map<number, ARPlane} + * @private + */ + _this.planes_ = new Map(); + _this.anchors_ = new Map(); + + _this._timeOffsets = []; + _this._timeOffset = 0; + _this._timeOffsetComputed = false; + _this.timestamp = 0; + + _this.worldMappingStatus = ARKitWrapper.WEB_AR_WORLDMAPPING_NOT_AVAILABLE; + + _this._globalCallbacksMap = {}; // Used to map a window.arkitCallback method name to an ARKitWrapper.on* method name + // Set up the window.arkitCallback methods that the ARKit bridge depends on + var callbackNames = ['onInit', 'onWatch']; + for (var i = 0; i < callbackNames.length; i++) { + _this._generateGlobalCallback(callbackNames[i], i); + } + + // default options for initializing ARKit + _this._defaultOptions = { + location: true, + camera: true, + objects: true, + light_intensity: true, + computer_vision_data: false + }; + _this._m90 = mat4.fromZRotation(mat4.create(), 90 * _MatrixMath2.default.PI_OVER_180); + _this._m90neg = mat4.fromZRotation(mat4.create(), -90 * _MatrixMath2.default.PI_OVER_180); + _this._m180 = mat4.fromZRotation(mat4.create(), 180 * _MatrixMath2.default.PI_OVER_180); + _this._mTemp = mat4.create(); + + // temp storage for CV arraybuffers + //this._ab = [] + + // Set up some named global methods that the ARKit to JS bridge uses and send out custom events when they are called + var eventCallbacks = [['arkitStartRecording', ARKitWrapper.RECORD_START_EVENT], ['arkitStopRecording', ARKitWrapper.RECORD_STOP_EVENT], ['arkitDidMoveBackground', ARKitWrapper.DID_MOVE_BACKGROUND_EVENT], ['arkitWillEnterForeground', ARKitWrapper.WILL_ENTER_FOREGROUND_EVENT], ['arkitInterrupted', ARKitWrapper.INTERRUPTED_EVENT], ['arkitInterruptionEnded', ARKitWrapper.INTERRUPTION_ENDED_EVENT], ['arkitShowDebug', ARKitWrapper.SHOW_DEBUG_EVENT], ['arkitWindowResize', ARKitWrapper.WINDOW_RESIZE_EVENT], ['onError', ARKitWrapper.ON_ERROR], ['arTrackingChanged', ARKitWrapper.AR_TRACKING_CHANGED], ['userGrantedComputerVisionData', ARKitWrapper.USER_GRANTED_COMPUTER_VISION_DATA], ['userGrantedWorldSensingData', ARKitWrapper.USER_GRANTED_WORLD_SENSING_DATA] + //,['onComputerVisionData', ARKitWrapper.COMPUTER_VISION_DATA] + ]; + + var _loop = function _loop(_i) { + window[eventCallbacks[_i][0]] = function (detail) { + detail = detail || null; + try { + _this.dispatchEvent(new CustomEvent(eventCallbacks[_i][1], { + source: _this, + detail: detail + })); + } catch (e) { + console.error(eventCallbacks[_i][0] + ' callback error', e); + } + }; + }; + + for (var _i = 0; _i < eventCallbacks.length; _i++) { + _loop(_i); + } + /* + * Computer vision needs massaging + */ + window['onComputerVisionData'] = function (detail) { + _this._onComputerVisionData(detail); + }; + + window['setNativeTime'] = function (detail) { + _this._timeOffsets.push((performance || Date).now() - detail.nativeTime); + _this._timeOffsetComputed = true; + _this._timeOffset = 0; + for (var i = 0; i < _this._timeOffsets.length; i++) { + _this._timeOffset += _this._timeOffsets[i]; + } + _this._timeOffset = _this._timeOffset / _this._timeOffsets.length; + console.log("Native time: " + detail.nativeTime + ", new timeOffset: " + _this._timeOffset); + }; + + _this._adjustARKitTime = function (time) { + // if (!this._timeOffsetComputed && adjust) { + // this._timeOffsetComputed = true; + // this._timeOffset = ( performance || Date ).now() - time; + // } + if (this._timeOffsetComputed) { + return time + this._timeOffset; + } else { + return (performance || Date).now(); + } + }; + + /** + * The result of a raycast into the AR world encoded as a transform matrix. + * This structure has a single property - modelMatrix - which encodes the + * translation of the intersection of the hit in the form of a 4x4 matrix. + * @constructor + */ + function VRHit() { + this.modelMatrix = new Float32Array(16); + return this; + }; + + var self = _this; + /** + * Get an iterable of plane objects representing ARKit's current understanding of the world. + * @return {iterator<Object>} The iterable of plane objects. + */ + _this.getPlanes = function () { + return Array.from(this.planes_.values()); + }; + /** + * Get intersection array with planes ARKit detected for the screen coords. + * + * @param {number} x The x coordinate in normalized screen space [0,1]. + * @param {number} y The y coordinate in normalized screen space [0,1]. + * + * @return {!Array<VRHit>} The array of hits sorted based on distance. + */ + _this.hitTestNoAnchor = function () { + /** + * Cached vec3, mat4, and quat structures needed for the hit testing to + * avoid generating garbage. + * @type {Object} + */ + var hitVars = { + rayStart: vec3.create(), + rayEnd: vec3.create(), + cameraPosition: vec3.create(), + cameraQuaternion: quat.create(), + modelViewMatrix: mat4.create(), + projectionMatrix: mat4.create(), + projViewMatrix: mat4.create(), + worldRayStart: vec3.create(), + worldRayEnd: vec3.create(), + worldRayDir: vec3.create(), + planeMatrix: mat4.create(), + planeExtent: vec3.create(), + planePosition: vec3.create(), + planeCenter: vec3.create(), + planeNormal: vec3.create(), + planeIntersection: vec3.create(), + planeIntersectionLocal: vec3.create(), + planeHit: mat4.create(), + planeQuaternion: quat.create() + }; + + /** + * Sets the given mat4 from the given float[16] array. + * + * @param {!mat4} m The mat4 to populate with values. + * @param {!Array<number>} a The source array of floats (must be size 16). + */ + var setMat4FromArray = function setMat4FromArray(m, a) { + mat4.set(m, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]); + }; + /** + * Tests whether the given ray intersects the given plane. + * + * @param {!vec3} planeNormal The normal of the plane. + * @param {!vec3} planePosition Any point on the plane. + * @param {!vec3} rayOrigin The origin of the ray. + * @param {!vec3} rayDirection The direction of the ray (normalized). + * @return {number} The t-value of the intersection (-1 for none). + */ + var rayIntersectsPlane = function () { + var rayToPlane = vec3.create(); + return function (planeNormal, planePosition, rayOrigin, rayDirection) { + // assuming vectors are all normalized + var denom = vec3.dot(planeNormal, rayDirection); + vec3.subtract(rayToPlane, planePosition, rayOrigin); + return vec3.dot(rayToPlane, planeNormal) / denom; + }; + }(); + + /** + * Sorts based on the distance from the VRHits to the camera. + * + * @param {!VRHit} a The first hit to compare. + * @param {!VRHit} b The second hit item to compare. + * @returns {number} -1 if a is closer than b, otherwise 1. + */ + var sortFunction = function sortFunction(a, b) { + // Get the matrix of hit a. + setMat4FromArray(hitVars.planeMatrix, a.modelMatrix); + // Get the translation component of a's matrix. + mat4.getTranslation(hitVars.planeIntersection, hitVars.planeMatrix); + // Get the distance from the intersection point to the camera. + var distA = vec3.distance(hitVars.planeIntersection, hitVars.cameraPosition); + + // Get the matrix of hit b. + setMat4FromArray(hitVars.planeMatrix, b.modelMatrix); + // Get the translation component of b's matrix. + mat4.getTranslation(hitVars.planeIntersection, hitVars.planeMatrix); + // Get the distance from the intersection point to the camera. + var distB = vec3.distance(hitVars.planeIntersection, hitVars.cameraPosition); + + // Return comparison of distance from camera to a and b. + return distA < distB ? -1 : 1; + }; + + return function (x, y) { + // Coordinates must be in normalized screen space. + if (x < 0 || x > 1 || y < 0 || y > 1) { + throw new Error("hitTest - x and y values must be normalized [0,1]!"); + } + + var hits = []; + // If there are no anchors detected, there will be no hits. + var planes = this.getPlanes(); + if (!planes || planes.length == 0) { + return hits; + } + + // Create a ray in screen space for the hit test ([-1, 1] with y flip). + vec3.set(hitVars.rayStart, 2 * x - 1, 2 * (1 - y) - 1, 0); + vec3.set(hitVars.rayEnd, 2 * x - 1, 2 * (1 - y) - 1, 1); + // Set the projection matrix. + setMat4FromArray(hitVars.projectionMatrix, self.projectionMatrix_); + + // Set the model view matrix. + setMat4FromArray(hitVars.modelViewMatrix, self.viewMatrix_); + + // Combine the projection and model view matrices. + mat4.multiply(hitVars.projViewMatrix, hitVars.projectionMatrix, hitVars.modelViewMatrix); + // Invert the combined matrix because we need to go from screen -> world. + mat4.invert(hitVars.projViewMatrix, hitVars.projViewMatrix); + + // Transform the screen-space ray start and end to world-space. + vec3.transformMat4(hitVars.worldRayStart, hitVars.rayStart, hitVars.projViewMatrix); + vec3.transformMat4(hitVars.worldRayEnd, hitVars.rayEnd, hitVars.projViewMatrix); + + // Subtract start from end to get the ray direction and then normalize. + vec3.subtract(hitVars.worldRayDir, hitVars.worldRayEnd, hitVars.worldRayStart); + vec3.normalize(hitVars.worldRayDir, hitVars.worldRayDir); + + // Go through all the anchors and test for intersections with the ray. + for (var i = 0; i < planes.length; i++) { + var plane = planes[i]; + // Get the anchor transform. + setMat4FromArray(hitVars.planeMatrix, plane.modelMatrix); + + // Get the position of the anchor in world-space. + vec3.set(hitVars.planeCenter, plane.center.x, plane.center.y, plane.center.z); + vec3.transformMat4(hitVars.planePosition, hitVars.planeCenter, hitVars.planeMatrix); + + hitVars.planeAlignment = plane.alignment; + + // Get the plane normal. + if (hitVars.planeAlignment === 0) { + vec3.set(hitVars.planeNormal, 0, 1, 0); + } else { + vec3.set(hitVars.planeNormal, hitVars.planeMatrix[4], hitVars.planeMatrix[5], hitVars.planeMatrix[6]); + } + + // Check if the ray intersects the plane. + var t = rayIntersectsPlane(hitVars.planeNormal, hitVars.planePosition, hitVars.worldRayStart, hitVars.worldRayDir); + + // if t < 0, there is no intersection. + if (t < 0) { + continue; + } + + // Calculate the actual intersection point. + vec3.scale(hitVars.planeIntersection, hitVars.worldRayDir, t); + vec3.add(hitVars.planeIntersection, hitVars.worldRayStart, hitVars.planeIntersection); + // Get the plane extents (extents are in plane local space). + vec3.set(hitVars.planeExtent, plane.extent[0], 0, plane.extent[1]); + + /* + /////////////////////////////////////////////// + // Test by converting extents to world-space. + // TODO: get this working to avoid matrix inversion in method below. + // Get the rotation component of the anchor transform. + mat4.getRotation(hitVars.planeQuaternion, hitVars.planeMatrix); + // Convert the extent into world space. + vec3.transformQuat( + hitVars.planeExtent, hitVars.planeExtent, hitVars.planeQuaternion); + // Check if intersection is outside of the extent of the anchor. + if (Math.abs(hitVars.planeIntersection[0] - hitVars.planePosition[0]) > hitVars.planeExtent[0] / 2) { + continue; + } + if (Math.abs(hitVars.planeIntersection[2] - hitVars.planePosition[2]) > hitVars.planeExtent[2] / 2) { + continue; + } + //////////////////////////////////////////////// + */ + + //////////////////////////////////////////////// + mat4.getRotation(hitVars.planeQuaternion, hitVars.planeMatrix); + + // Test by converting intersection into plane-space. + + mat4.invert(hitVars.planeMatrix, hitVars.planeMatrix); + vec3.transformMat4(hitVars.planeIntersectionLocal, hitVars.planeIntersection, hitVars.planeMatrix); + + // Check if intersection is outside of the extent of the anchor. + // Tolerance is added to match the behavior of the native hitTest call. + var tolerance = 0.0075; + if (Math.abs(hitVars.planeIntersectionLocal[0]) > hitVars.planeExtent[0] / 2 + tolerance) { + continue; + } + if (Math.abs(hitVars.planeIntersectionLocal[2]) > hitVars.planeExtent[2] / 2 + tolerance) { + continue; + } + + //////////////////////////////////////////////// + + // The intersection is valid - create a matrix from hit position. + //mat4.fromTranslation(hitVars.planeHit, hitVars.planeIntersection); + mat4.fromRotationTranslation(hitVars.planeHit, hitVars.planeQuaternion, hitVars.planeIntersection); + var hit = new VRHit(); + for (var j = 0; j < 16; j++) { + hit.modelMatrix[j] = hitVars.planeHit[j]; + } + hit.i = i; + hits.push(hit); + } + + // Sort the hits by distance. + hits.sort(sortFunction); + return hits; + }; + }(); + return _this; + } + + _createClass(ARKitWrapper, [{ + key: "waitForInit", + // True if this instance has received data via onWatch + + /* + Useful for waiting for or immediately receiving notice of ARKit initialization + */ + value: function waitForInit() { + var _this2 = this; + + return new Promise(function (resolve, reject) { + if (_this2._isInitialized) { + resolve(); + return; + } + var callback = function callback() { + _this2.removeEventListener(ARKitWrapper.INIT_EVENT, callback, false); + resolve(); + }; + _this2.addEventListener(ARKitWrapper.INIT_EVENT, callback, false); + }); + } + + /* + getData looks into the most recent ARKit data (as received by onWatch) for a key + returns the key's value or null if it doesn't exist or if a key is not specified it returns all data + */ + + }, { + key: "getData", + value: function getData() { + var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (key === null) { + return this._rawARData; + } + if (this._rawARData && typeof this._rawARData[key] !== 'undefined') { + return this._rawARData[key]; + } + return null; + } + + /* + returns + { + uuid: DOMString, + transform: [4x4 column major affine transform] + } + return null if object with `uuid` is not found + */ + + }, { + key: "getObject", + value: function getObject(uuid) { + if (!this._isInitialized) { + return null; + } + var objects = this.getKey('objects'); + if (objects === null) return null; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = objects[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var object = _step.value; + + if (object.uuid === uuid) { + return object; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return null; + } + + /* + Sends a hitTest message to ARKit to get hit testing results + x, y - screen coordinates normalized to 0..1 (0,0 is at top left and 1,1 is at bottom right) + types - bit mask of hit testing types + + Returns a Promise that resolves to a (possibly empty) array of hit test data: + [ + { + type: 1, // A packed mask of types ARKitWrapper.HIT_TEST_TYPE_* + distance: 1.0216870307922363, // The distance in meters from the camera to the detected anchor or feature point. + world_transform: [float x 16], // The pose of the hit test result relative to the world coordinate system. + local_transform: [float x 16], // The pose of the hit test result relative to the nearest anchor or feature point + // If the `type` is `HIT_TEST_TYPE_ESTIMATED_HORIZONTAL_PLANE`, `HIT_TEST_TYPE_EXISTING_PLANE`, or `HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT` (2, 8, or 16) it will also have anchor data: + anchor_center: { x:float, y:float, z:float }, + anchor_extent: { x:float, y:float }, + uuid: string, + // If the `type` is `HIT_TEST_TYPE_EXISTING_PLANE` or `HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT` (8 or 16) it will also have an anchor transform: + anchor_transform: [float x 16] + }, + ... + ] + @see https://developer.apple.com/documentation/arkit/arframe/2875718-hittest + */ + + }, { + key: "hitTest", + value: function hitTest(x, y) { + var _this3 = this; + + var types = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ARKitWrapper.HIT_TEST_TYPE_ALL; + + return new Promise(function (resolve, reject) { + if (!_this3._isInitialized) { + reject(new Error('ARKit is not initialized')); + return; + } + window.webkit.messageHandlers.hitTest.postMessage({ + x: x, + y: y, + type: types, + callback: _this3._createPromiseCallback('hitTest', resolve) + }); + }); + } + + /* + Sends an addAnchor message to ARKit + Returns a promise that returns: + { + uuid - the anchor's uuid, + transform - anchor transformation matrix + } + */ + + }, { + key: "addAnchor", + value: function addAnchor(uid, transform) { + var _this4 = this; + + return new Promise(function (resolve, reject) { + if (!_this4._isInitialized) { + reject(new Error('ARKit is not initialized')); + return; + } + window.webkit.messageHandlers.addAnchor.postMessage({ + uuid: uid, + transform: transform, + callback: _this4._createPromiseCallback('addAnchor', resolve) + }); + }); + } + }, { + key: "removeAnchor", + value: function removeAnchor(uid) { + window.webkit.messageHandlers.removeAnchors.postMessage([uid]); + } + + /* + * ask for an image anchor. + * + * Provide a uid for the anchor that will be created. + * Supply the image in an ArrayBuffer, typedArray or ImageData + * width and height are in meters + */ + + }, { + key: "createImageAnchor", + value: function createImageAnchor(uid, buffer, width, height, physicalWidthInMeters) { + var _this5 = this; + + return new Promise(function (resolve, reject) { + if (!_this5._isInitialized) { + reject(new Error('ARKit is not initialized')); + return; + } + + var b64 = _base64Binary2.default.encode(buffer); + + window.webkit.messageHandlers.createImageAnchor.postMessage({ + uid: uid, + buffer: b64, + imageWidth: width, + imageHeight: height, + physicalWidth: physicalWidthInMeters, + callback: _this5._createPromiseCallback('createImageAnchor', resolve) + }); + }); + } + + /*** + * activateDetectionImage activates an image and waits for the detection + * @param uid The UID of the image to activate, previously created via "createImageAnchor" + * @returns {Promise<any>} a promise that will be resolved when ARKit detects the image, or an error otherwise + */ + + }, { + key: "activateDetectionImage", + value: function activateDetectionImage(uid) { + var _this6 = this; + + return new Promise(function (resolve, reject) { + if (!_this6._isInitialized) { + reject(new Error('ARKit is not initialized')); + return; + } + + window.webkit.messageHandlers.activateDetectionImage.postMessage({ + uid: uid, + callback: _this6._createPromiseCallback('activateDetectionImage', resolve) + }); + }); + } + + /*** + * getWorldMap requests a worldmap from the platform + * @returns {Promise<any>} a promise that will be resolved when the worldMap has been retrieved, or an error otherwise + */ + + }, { + key: "getWorldMap", + value: function getWorldMap() { + var _this7 = this; + + return new Promise(function (resolve, reject) { + if (!_this7._isInitialized) { + reject(new Error('ARKit is not initialized')); + return; + } + + window.webkit.messageHandlers.getWorldMap.postMessage({ + callback: _this7._createPromiseCallback('getWorldMap', resolve) + }); + }); + } + + /*** + * setWorldMap requests a worldmap for the platform be set + * @returns {Promise<any>} a promise that will be resolved when the worldMap has been set, or an error otherwise + */ + + }, { + key: "setWorldMap", + value: function setWorldMap(worldMap) { + var _this8 = this; + + return new Promise(function (resolve, reject) { + if (!_this8._isInitialized) { + reject(new Error('ARKit is not initialized')); + return; + } + + window.webkit.messageHandlers.setWorldMap.postMessage({ + worldMap: worldMap.worldMap, + callback: _this8._createPromiseCallback('setWorldMap', resolve) + }); + }); + } + + /* + RACE CONDITION: call stop, then watch: stop does not set isWatching false until it gets a message back from the app, + so watch will return and not issue a watch command. May want to set isWatching false immediately? + */ + + /* + If this instance is currently watching, send the stopAR message to ARKit to request that it stop sending data on onWatch + */ + + }, { + key: "stop", + value: function stop() { + var _this9 = this; + + return new Promise(function (resolve, reject) { + if (!_this9._isWatching) { + resolve(); + return; + } + console.log('----STOP'); + window.webkit.messageHandlers.stopAR.postMessage({ + callback: _this9._createPromiseCallback('stop', resolve) + }); + }); + } + + /* + If not already watching, send a watchAR message to ARKit to request that it start sending per-frame data to onWatch + options: the options map for ARKit + { + location: boolean, + camera: boolean, + objects: boolean, + light_intensity: boolean, + computer_vision_data: boolean + } + */ + + }, { + key: "watch", + value: function watch() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (!this._isInitialized) { + return false; + } + if (this._isWatching) { + return true; + } + this._isWatching = true; + + var newO = Object.assign({}, this._defaultOptions); + + if (options != null) { + newO = Object.assign(newO, options); + } + + // option to WebXRView is different than the WebXR option + if (newO.videoFrames) { + delete newO.videoFrames; + newO.computer_vision_data = true; + } + + var data = { + options: newO, + callback: this._globalCallbacksMap.onWatch + }; + console.log('----WATCH'); + window.webkit.messageHandlers.watchAR.postMessage(data); + return true; + } + + /* + Sends a setUIOptions message to ARKit to set ui options (show or hide ui elements) + options: { + browser: boolean, + points: boolean, + focus: boolean, + rec: boolean, + rec_time: boolean, + mic: boolean, + build: boolean, + plane: boolean, + warnings: boolean, + anchors: boolean, + debug: boolean, + statistics: boolean + } + */ + + }, { + key: "setUIOptions", + value: function setUIOptions(options) { + window.webkit.messageHandlers.setUIOptions.postMessage(options); + } + + /* + Called during instance creation to send a message to ARKit to initialize and create a device ID + Usually results in ARKit calling back to _onInit with a deviceId + options: { + ui: { + browser: boolean, + points: boolean, + focus: boolean, + rec: boolean, + rec_time: boolean, + mic: boolean, + build: boolean, + plane: boolean, + warnings: boolean, + anchors: boolean, + debug: boolean, + statistics: boolean + } + } + */ + + }, { + key: "_sendInit", + value: function _sendInit(options) { + // get device id + console.log('----INIT'); + window.webkit.messageHandlers.initAR.postMessage({ + options: options, + callback: this._globalCallbacksMap.onInit + }); + } + + /* + Callback for when ARKit is initialized + deviceId: DOMString with the AR device ID + */ + + }, { + key: "_onInit", + value: function _onInit(deviceId) { + this._deviceId = deviceId; + this._isInitialized = true; + try { + this.dispatchEvent(new CustomEvent(ARKitWrapper.INIT_EVENT, { + source: this + })); + } catch (e) { + console.error('INIT_EVENT event error', e); + } + } + + /* + _onWatch is called from native ARKit on each frame: + data: + { + "timestamp": time value + "light_intensity": value + "camera_view":[4x4 column major affine transform matrix], + "projection_camera":[4x4 projection matrix], + "newObjects": [ + { + uuid: DOMString (unique UID), + transform: [4x4 column major affine transform], + plane_center: {x, y, z}, // only on planes + plane_center: {x, y, z} // only on planes, where x/z are used, + }, ... + ], + "removeObjects": [ + uuid: DOMString (unique UID), ... + ] + "objects":[ + { + uuid: DOMString (unique UID), + transform: [4x4 column major affine transform] + plane_center: {x, y, z}, // only on planes + plane_center: {x, y, z} // only on planes, where x/z are used, + }, ... + ] + } + */ + + }, { + key: "_onWatch", + value: function _onWatch(data) { + this._rawARData = data; + try { + this.dispatchEvent(new CustomEvent(ARKitWrapper.WATCH_EVENT, { + source: this, + detail: this._rawARData + })); + } catch (e) { + console.error('WATCH_EVENT event error', e); + } + this.timestamp = this._adjustARKitTime(data.timestamp); + this.lightIntensity = data.light_intensity; + this.viewMatrix_ = data.camera_view; + this.projectionMatrix_ = data.projection_camera; + this.worldMappingStatus = data.worldMappingStatus; + if (data.newObjects.length) { + for (var i = 0; i < data.newObjects.length; i++) { + var element = data.newObjects[i]; + if (element.plane_center) { + this.planes_.set(element.uuid, { + id: element.uuid, + center: element.plane_center, + extent: [element.plane_extent.x, element.plane_extent.z], + modelMatrix: element.transform, + alignment: element.plane_alignment + }); + } else { + this.anchors_.set(element.uuid, { + id: element.uuid, + modelMatrix: element.transform + }); + } + } + } + + if (data.removedObjects.length) { + for (var _i2 = 0; _i2 < data.removedObjects.length; _i2++) { + var _element = data.removedObjects[_i2]; + if (this.planes_.get(_element)) { + this.planes_.delete(_element); + } else { + this.anchors_.delete(_element); + } + } + } + + if (data.objects.length) { + for (var _i3 = 0; _i3 < data.objects.length; _i3++) { + var _element2 = data.objects[_i3]; + if (_element2.plane_center) { + var plane = this.planes_.get(_element2.uuid); + if (!plane) { + this.planes_.set(_element2.uuid, { + id: _element2.uuid, + center: _element2.plane_center, + extent: [_element2.plane_extent.x, _element2.plane_extent.z], + modelMatrix: _element2.transform, + alignment: _element2.plane_alignment + }); + } else { + plane.center = _element2.plane_center; + plane.extent[0] = _element2.plane_extent.x; + plane.extent[1] = _element2.plane_extent.z; + plane.modelMatrix = _element2.transform; + plane.alignment = _element2.plane_alignment; + } + } else { + var anchor = this.anchors_.get(_element2.uuid); + if (!anchor) { + this.anchors_.set(_element2.uuid, { + id: _element2.uuid, + modelMatrix: _element2.transform + }); + } else { + anchor.modelMatrix = _element2.transform; + } + } + } + } + } + + /* + Callback from ARKit for when sending per-frame data to onWatch is stopped + */ + + }, { + key: "_onStop", + value: function _onStop() { + this._isWatching = false; + } + }, { + key: "_createPromiseCallback", + value: function _createPromiseCallback(action, resolve) { + var _this10 = this; + + var callbackName = this._generateCallbackUID(action); + window[callbackName] = function (data) { + delete window[callbackName]; + var wrapperCallbackName = '_on' + action[0].toUpperCase() + action.slice(1); + if (typeof _this10[wrapperCallbackName] == 'function') { + _this10[wrapperCallbackName](data); + } + resolve(data); + }; + return callbackName; + } + }, { + key: "_generateCallbackUID", + value: function _generateCallbackUID(prefix) { + return 'arkitCallback_' + prefix + '_' + new Date().getTime() + '_' + Math.floor(Math.random() * Number.MAX_SAFE_INTEGER); + } + + /* + The ARKit iOS app depends on several callbacks on `window`. This method sets them up. + They end up as window.arkitCallback? where ? is an integer. + You can map window.arkitCallback? to ARKitWrapper instance methods using _globalCallbacksMap + */ + + }, { + key: "_generateGlobalCallback", + value: function _generateGlobalCallback(callbackName, num) { + var name = 'arkitCallback' + num; + this._globalCallbacksMap[callbackName] = name; + var self = this; + window[name] = function (deviceData) { + self['_' + callbackName](deviceData); + }; + } + + /* + ev.detail contains: + { + "frame": { + "buffers": [ // Array of base64 encoded string buffers + { + "size": { + "width": 320, + "height": 180, + "bytesPerRow": 320, + "bytesPerPixel": 1 + }, + "buffer": "e3x...d7d" /// convert to Uint8 buffer in code below + }, + { + "size": { + "width": 160, + "height": 90, + "bytesPerRow": 320, + "bytesPerPixel": 2 + }, + "buffer": "ZZF.../fIJ7" /// convert to Uint8 buffer in code below + } + ], + "pixelFormatType": "kCVPixelFormatType_420YpCbCr8BiPlanarFullRange", + "pixelFormat": "YUV420P", /// Added in the code below, clients should ignore pixelFormatType + "timestamp": 337791 + }, + "camera": { + "cameraIntrinsics": [3x3 matrix], + fx 0 px + 0 fy py + 0 0 1 + fx and fy are the focal length in pixels. + px and py are the coordinates of the principal point in pixels. + The origin is at the center of the upper-left pixel. + "cameraImageResolution": { + "width": 1280, + "height": 720 + }, + "viewMatrix": [4x4 camera view matrix], + "arCamera": true; + "cameraOrientation": 0, // orientation in degrees of image relative to display + // normally 0, but on video mixed displays that keep the camera in a fixed + // orientation, but rotate the UI, like on some phones, this will change + // as the display orientation changes + "interfaceOrientation": 3, + // 0 UIDeviceOrientationUnknown + // 1 UIDeviceOrientationPortrait + // 2 UIDeviceOrientationPortraitUpsideDown + // 3 UIDeviceOrientationLandscapeRight + // 4 UIDeviceOrientationLandscapeLeft + "projectionMatrix": [4x4 camera projection matrix] + } + } + */ + + }, { + key: "_onComputerVisionData", + value: function _onComputerVisionData(detail) { + // convert the arrays + if (!detail) { + console.error("detail passed to _onComputerVisionData is null"); + this._requestComputerVisionData(); + return; + } + // convert the arrays + if (!detail.frame || !detail.frame.buffers || detail.frame.buffers.length <= 0) { + console.error("detail passed to _onComputerVisionData is bad, no buffers"); + this._requestComputerVisionData(); + return; + } + + // the orientation matrix we get is relative to the current view orientation. + // We need to add an orientation around z, so that we have the orientation that goes from + // camera frame to the current view orientation, since the camera is fixed and the view + // changes as we rotate the device. + // + // We also set a cameraOrientation value for the orientation of the camera relative to the + // display. This will be particular to video-mixed-AR where the camera is the video on the + // screen, since any other setup would need to use the full orientation (and probably + // wouldn't be rotating the content / UI) + detail.camera.arCamera = true; + var orientation = detail.camera.interfaceOrientation; + detail.camera.viewMatrix = detail.camera.inverse_viewMatrix; + // mat4.copy(this._mTemp, detail.camera.viewMatrix) + switch (orientation) { + case 1: + // rotate by -90; + detail.camera.cameraOrientation = -90; + // mat4.multiply(detail.camera.viewMatrix, this._mTemp, this._m90neg) + break; + + case 2: + // rotate by 90; + detail.camera.cameraOrientation = 90; + // mat4.multiply(detail.camera.viewMatrix, this._mTemp, this._m90) + break; + case 3: + detail.camera.cameraOrientation = 0; + // rotate by nothing + break; + case 4: + // rotate by 180; + detail.camera.cameraOrientation = 180; + // mat4.multiply(detail.camera.viewMatrix, this._mTemp, this._m180) + break; + } + // convert buffers in place + //var buffers = detail.frame.buffers; + + // if there are too many cached array buffers, drop the unneeded ones + // if (this._ab.length > buffers.length) { + // this._ab = this._ab.slice(0, buffer.length) + // } + + // if (this._worker) { + // detail.ab = this._ab; + // if (this._ab) { + // this._worker.postMessage(detail, this._ab); + // } else { + // this._worker.postMessage(detail); + // } + // } else { + // for (var i = 0; i < buffers.length; i++) { + // // gradually increase the size of the ab[] array to hold the temp buffers, + // // and add null so it gets allocated properly + // if (this._ab.length <= i) { + // this._ab.push(null) + // } + // var bufflen = buffers[i].buffer.length; + // this._ab[i] = buffers[i].buffer = base64.decodeArrayBuffer(buffers[i].buffer, this._ab[i]); + // var buffersize = buffers[i].buffer.byteLength; + // var imagesize = buffers[i].size.height * buffers[i].size.bytesPerRow; + // } + switch (detail.frame.pixelFormatType) { + case "kCVPixelFormatType_420YpCbCr8BiPlanarFullRange": + detail.frame.pixelFormat = "YUV420P"; + break; + default: + detail.frame.pixelFormat = detail.frame.pixelFormatType; + break; + } + + var xrVideoFrame = new XRVideoFrame(detail.frame.buffers, detail.frame.pixelFormat, this._adjustARKitTime(detail.frame.timestamp), detail.camera); + try { + this.dispatchEvent(new CustomEvent(ARKitWrapper.COMPUTER_VISION_DATA, { + source: this, + detail: xrVideoFrame + })); + } catch (e) { + console.error('COMPUTER_VISION_DATA event error', e); + } + //} + } + + /* + Requests ARKit a new set of buffers for computer vision processing + */ + + }, { + key: "_requestComputerVisionData", + value: function _requestComputerVisionData() { + window.webkit.messageHandlers.requestComputerVisionData.postMessage({}); + } + + /* + Requests ARKit to start sending CV data (data is send automatically when requested and approved) + */ + + }, { + key: "_startSendingComputerVisionData", + value: function _startSendingComputerVisionData() { + window.webkit.messageHandlers.startSendingComputerVisionData.postMessage({}); + } + + /* + Requests ARKit to stop sending CV data + */ + + }, { + key: "_stopSendingComputerVisionData", + value: function _stopSendingComputerVisionData() { + window.webkit.messageHandlers.stopSendingComputerVisionData.postMessage({}); + } + + // _buildWorkerBlob() { + // var blobURL = URL.createObjectURL( new Blob([ '(', + + // function(){ + // // could not get workers working, so am not using this. + // // + // // Tried to use Transferable ArrayBuffers but kept getting DOM Error 25. + // // + + // var b64 = { + // _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", + + // /* will return a Uint8Array type */ + // decodeArrayBuffer: function(input, buffer) { + // var bytes = (input.length/4) * 3; + // if (!buffer || buffer.byteLength != bytes) { + // // replace the buffer with a new, appropriately sized one + // buffer = new ArrayBuffer(bytes); + // } + // this.decode(input, buffer); + + // return buffer; + // }, + + // removePaddingChars: function(input){ + // var lkey = this._keyStr.indexOf(input.charAt(input.length - 1)); + // if(lkey == 64){ + // return input.substring(0,input.length - 1); + // } + // return input; + // }, + + // decode: function(input, arrayBuffer) { + // //get last chars to see if are valid + // input = this.removePaddingChars(input); + // input = this.removePaddingChars(input); + + // var bytes = parseInt((input.length / 4) * 3, 10); + + // var uarray; + // var chr1, chr2, chr3; + // var enc1, enc2, enc3, enc4; + // var i = 0; + // var j = 0; + + // if (arrayBuffer) + // uarray = new Uint8Array(arrayBuffer); + // else + // uarray = new Uint8Array(bytes); + + // input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + + // for (i=0; i<bytes; i+=3) { + // //get the 3 octects in 4 ascii chars + // enc1 = this._keyStr.indexOf(input.charAt(j++)); + // enc2 = this._keyStr.indexOf(input.charAt(j++)); + // enc3 = this._keyStr.indexOf(input.charAt(j++)); + // enc4 = this._keyStr.indexOf(input.charAt(j++)); + + // chr1 = (enc1 << 2) | (enc2 >> 4); + // chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + // chr3 = ((enc3 & 3) << 6) | enc4; + + // uarray[i] = chr1; + // if (enc3 != 64) uarray[i+1] = chr2; + // if (enc4 != 64) uarray[i+2] = chr3; + // } + + // return uarray; + // } + // } + + // self.addEventListener('message', function(event){ + // var frame = event.data.frame + // var camera = event.data.camera + + // var ab = event.data.ab; + + // // convert buffers in place + // var buffers = frame.buffers; + // var buffs = [] + // // if there are too many cached array buffers, drop the unneeded ones + // if (ab.length > buffers.length) { + // ab = ab.slice(0, buffer.length) + // } + // for (var i = 0; i < buffers.length; i++) { + // // gradually increase the size of the ab[] array to hold the temp buffers, + // // and add null so it gets allocated properly + // if (ab.length <= i) { + // ab.push(null) + // } + // ab[i] = buffers[i].buffer = b64.decodeArrayBuffer(buffers[i].buffer, ab[i]); + // buffs.push(buffers[i].buffer) + // } + // switch(frame.pixelFormatType) { + // case "kCVPixelFormatType_420YpCbCr8BiPlanarFullRange": + // frame.pixelFormat = "YUV420P"; + // break; + // default: + // frame.pixelFormat = frame.pixelFormatType; + // break; + // } + + // postMessage(event.data, buffs); + // }); + // }.toString(), + // ')()' ], { type: 'application/javascript' } ) ) + + // return( blobURL ); + // } + + }, { + key: "deviceId", + get: function get() { + return this._deviceId; + } // The ARKit provided device ID + + }, { + key: "isWatching", + get: function get() { + return this._isWatching; + } // True if ARKit is sending frame data + + }, { + key: "isInitialized", + get: function get() { + return this._isInitialized; + } // True if this instance has received the onInit callback from ARKit + + }, { + key: "hasData", + get: function get() { + return this._rawARData !== null; + } + }], [{ + key: "GetOrCreate", + value: function GetOrCreate() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (typeof ARKitWrapper.GLOBAL_INSTANCE === 'undefined') { + ARKitWrapper.GLOBAL_INSTANCE = new ARKitWrapper(); + options = options && (typeof options === "undefined" ? "undefined" : _typeof(options)) == 'object' ? options : {}; + var defaultUIOptions = { + browser: true, + points: true, + focus: false, + rec: true, + rec_time: true, + mic: false, + build: false, + plane: true, + warnings: true, + anchors: false, + debug: true, + statistics: false + }; + var uiOptions = _typeof(options.ui) == 'object' ? options.ui : {}; + options.ui = Object.assign(defaultUIOptions, uiOptions); + ARKitWrapper.GLOBAL_INSTANCE._sendInit(options); + } + return ARKitWrapper.GLOBAL_INSTANCE; + } + }, { + key: "HasARKit", + value: function HasARKit() { + return typeof window.webkit !== 'undefined'; + } + }]); + + return ARKitWrapper; +}(_EventHandlerBase3.default); + +// ARKitWrapper event names: + + +exports.default = ARKitWrapper; +ARKitWrapper.INIT_EVENT = 'arkit-init'; +ARKitWrapper.WATCH_EVENT = 'arkit-watch'; +ARKitWrapper.RECORD_START_EVENT = 'arkit-record-start'; +ARKitWrapper.RECORD_STOP_EVENT = 'arkit-record-stop'; +ARKitWrapper.DID_MOVE_BACKGROUND_EVENT = 'arkit-did-move-background'; +ARKitWrapper.WILL_ENTER_FOREGROUND_EVENT = 'arkit-will-enter-foreground'; +ARKitWrapper.INTERRUPTED_EVENT = 'arkit-interrupted'; +ARKitWrapper.INTERRUPTION_ENDED_EVENT = 'arkit-interruption-ended'; +ARKitWrapper.SHOW_DEBUG_EVENT = 'arkit-show-debug'; +ARKitWrapper.WINDOW_RESIZE_EVENT = 'arkit-window-resize'; +ARKitWrapper.ON_ERROR = 'on-error'; +ARKitWrapper.AR_TRACKING_CHANGED = 'ar_tracking_changed'; +ARKitWrapper.COMPUTER_VISION_DATA = 'cv_data'; +ARKitWrapper.USER_GRANTED_COMPUTER_VISION_DATA = 'user-granted-cv-data'; +ARKitWrapper.USER_GRANTED_WORLD_SENSING_DATA = 'user-granted-world-sensing-data'; + +// ARKit Detection Image Orientations +ARKitWrapper.ORIENTATION_UP = 1; // 0th row at top, 0th column on left - default orientation +ARKitWrapper.ORIENTATION_UP_MIRRORED = 2; // 0th row at top, 0th column on right - horizontal flip +ARKitWrapper.ORIENTATION_DOWN = 3; // 0th row at bottom, 0th column on right - 180 deg rotation +ARKitWrapper.ORIENTATION_DOWN_MIRRORED = 4; // 0th row at bottom, 0th column on left - vertical flip +ARKitWrapper.ORIENTATION_LEFT_MIRRORED = 5; // 0th row on left, 0th column at top +ARKitWrapper.ORIENTATION_RIGHT = 6; // 0th row on right, 0th column at top - 90 deg CW +ARKitWrapper.ORIENTATION_RIGHT_MIRRORED = 7; // 0th row on right, 0th column on bottom +ARKitWrapper.ORIENTATION_LEFT = 8; // 0th row on left, 0th column at bottom - 90 deg CCW + +// world mapping status +ARKitWrapper.WEB_AR_WORLDMAPPING_NOT_AVAILABLE = "ar_worldmapping_not_available"; +ARKitWrapper.WEB_AR_WORLDMAPPING_LIMITED = "ar_worldmapping_limited"; +ARKitWrapper.WEB_AR_WORLDMAPPING_EXTENDING = "ar_worldmapping_extending"; +ARKitWrapper.WEB_AR_WORLDMAPPING_MAPPED = "ar_worldmapping_mapped"; + +// hit test types +ARKitWrapper.HIT_TEST_TYPE_FEATURE_POINT = 1; +ARKitWrapper.HIT_TEST_TYPE_ESTIMATED_HORIZONTAL_PLANE = 2; +ARKitWrapper.HIT_TEST_TYPE_ESTIMATED_VERTICAL_PLANE = 4; +ARKitWrapper.HIT_TEST_TYPE_EXISTING_PLANE = 8; +ARKitWrapper.HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT = 16; +ARKitWrapper.HIT_TEST_TYPE_EXISTING_PLANE_USING_GEOMETRY = 32; + +ARKitWrapper.HIT_TEST_TYPE_ALL = ARKitWrapper.HIT_TEST_TYPE_FEATURE_POINT | ARKitWrapper.HIT_TEST_TYPE_EXISTING_PLANE | ARKitWrapper.HIT_TEST_TYPE_ESTIMATED_HORIZONTAL_PLANE | ARKitWrapper.HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT; + +ARKitWrapper.HIT_TEST_TYPE_EXISTING_PLANES = ARKitWrapper.HIT_TEST_TYPE_EXISTING_PLANE | ARKitWrapper.HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT; + +ARKitWrapper.ANCHOR_TYPE_PLANE = 'plane'; +ARKitWrapper.ANCHOR_TYPE_FACE = 'face'; +ARKitWrapper.ANCHOR_TYPE_ANCHOR = 'anchor'; +ARKitWrapper.ANCHOR_TYPE_IMAGE = 'image'; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +var _EventHandlerBase2 = __webpack_require__(3); + +var _EventHandlerBase3 = _interopRequireDefault(_EventHandlerBase2); + +var _VirtualReality = __webpack_require__(26); + +var _VirtualReality2 = _interopRequireDefault(_VirtualReality); + +var _XRFieldOfView = __webpack_require__(16); + +var _XRFieldOfView2 = _interopRequireDefault(_XRFieldOfView); + +var _Reality = __webpack_require__(7); + +var _Reality2 = _interopRequireDefault(_Reality); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +Each XRDisplay represents a method of using a specific type of hardware to render AR or VR realities and layers. + +This doesn't yet support a geospatial coordinate system +*/ +var XRDisplay = function (_EventHandlerBase) { + _inherits(XRDisplay, _EventHandlerBase); + + function XRDisplay(xr, displayName, isExternal, reality) { + _classCallCheck(this, XRDisplay); + + var _this = _possibleConstructorReturn(this, (XRDisplay.__proto__ || Object.getPrototypeOf(XRDisplay)).call(this)); + + _this._xr = xr; + _this._displayName = displayName; + _this._isExternal = isExternal; + _this._reality = reality; // The Reality instance that is currently displayed + + _this._headModelCoordinateSystem = new XRCoordinateSystem(_this, XRCoordinateSystem.HEAD_MODEL); + _this._eyeLevelCoordinateSystem = new XRCoordinateSystem(_this, XRCoordinateSystem.EYE_LEVEL); + _this._trackerCoordinateSystem = new XRCoordinateSystem(_this, XRCoordinateSystem.TRACKER); + + _this._headPose = new XRViewPose([0, XRViewPose.SITTING_EYE_HEIGHT, 0]); + _this._eyeLevelPose = new XRViewPose([0, XRViewPose.SITTING_EYE_HEIGHT, 0]); + _this._trackerPoseModelMatrix = _MatrixMath2.default.mat4_generateIdentity(); + + _this._fovy = 70; + var fov = _this._fovy / 2; + _this._fov = new _XRFieldOfView2.default(fov, fov, fov, fov); + _this._depthNear = 0.1; + _this._depthFar = 1000; + + _this._views = []; + return _this; + } + + _createClass(XRDisplay, [{ + key: 'supportsSession', + value: function supportsSession(parameters) { + // parameters: XRSessionCreateParametersInit + // returns boolean + return this._supportedCreationParameters(parameters); + } + }, { + key: 'requestSession', + value: function requestSession(parameters) { + var _this2 = this; + + return new Promise(function (resolve, reject) { + if (_this2._supportedCreationParameters(parameters) === false) { + reject(); + return; + } + if (parameters.type === XRSession.REALITY) { + _this2._reality = new _VirtualReality2.default(); + _this2._xr._privateRealities.push(_this2._reality); + } + resolve(_this2._createSession(parameters)); + }); + } + + // no-op unless display supports it + + }, { + key: '_requestVideoFrame', + value: function _requestVideoFrame() {} + }, { + key: '_requestAnimationFrame', + value: function _requestAnimationFrame(callback) { + return window.requestAnimationFrame(callback); + } + }, { + key: '_cancelAnimationFrame', + value: function _cancelAnimationFrame(handle) { + return window.cancelAnimationFrame(handle); + } + }, { + key: '_createSession', + value: function _createSession(parameters) { + return new XRSession(this._xr, this, parameters); + } + }, { + key: '_supportedCreationParameters', + value: function _supportedCreationParameters(parameters) { + // returns true if the parameters are supported by this display + throw 'Should be implemented by extending class'; + } + + /* + Called by a session before it hands a new XRPresentationFrame to the app + */ + + }, { + key: '_handleNewFrame', + value: function _handleNewFrame(frame) {} + + /* + Called by a session after it has handed the XRPresentationFrame to the app + Use this for any display submission calls that need to happen after the render has occurred. + */ + + }, { + key: '_handleAfterFrame', + value: function _handleAfterFrame(frame) {} + + /* + Called by XRSession after the session.baseLayer is assigned a value + */ + + }, { + key: '_handleNewBaseLayer', + value: function _handleNewBaseLayer(baseLayer) {} + + //attribute EventHandler ondeactivate; + + }, { + key: 'displayName', + get: function get() { + return this._displayName; + } + }, { + key: 'isExternal', + get: function get() { + return this._isExternal; + } + }]); + + return XRDisplay; +}(_EventHandlerBase3.default); + +exports.default = XRDisplay; + + +XRDisplay.VIDEO_FRAME = 'videoFrame'; +XRDisplay.TRACKING_CHANGED = 'tracking-changed'; +XRDisplay.NEW_WORLD_ANCHOR = 'world-anchor'; +XRDisplay.UPDATE_WORLD_ANCHOR = 'update-world-anchor'; +XRDisplay.REMOVE_WORLD_ANCHOR = 'remove-world-anchor'; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _EventHandlerBase2 = __webpack_require__(3); + +var _EventHandlerBase3 = _interopRequireDefault(_EventHandlerBase2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +A Reality represents a view of the world, be it the real world via sensors or a virtual world that is rendered with WebGL or WebGPU. +*/ +var Reality = function (_EventHandlerBase) { + _inherits(Reality, _EventHandlerBase); + + function Reality(xr, name, isShared, isPassthrough) { + _classCallCheck(this, Reality); + + var _this = _possibleConstructorReturn(this, (Reality.__proto__ || Object.getPrototypeOf(Reality)).call(this)); + + _this._xr = xr; + _this._name = name; + _this._isShared = isShared; + _this._isPassthrough = isPassthrough; + _this._anchors = new Map(); + return _this; + } + + _createClass(Reality, [{ + key: 'getCoordinateSystem', + value: function getCoordinateSystem() { + //XRCoordinateSystem? getCoordinateSystem(XRFrameOfReferenceType type, ...); // Tries the types in order, returning the first match or null if none is found + throw new Error('Not implemented'); + } + + /* + Called when at least one active XRSession is using this Reality + */ + + }, { + key: '_start', + value: function _start(parameters) { + throw new Error('Extending classes should implement _start'); + } + + /* + Called when no more active XRSessions are using this Reality + */ + + }, { + key: '_stop', + value: function _stop() { + throw new Error('Extending classes should implement _stop'); + } + + /* + Request another video frame be generated, typically from video-mixed Realities. + */ + + }, { + key: '_requestVideoFrame', + value: function _requestVideoFrame() {} + + /* + Start or stop video frames + */ + + }, { + key: '_stopVideoFrames', + value: function _stopVideoFrames() {} + }, { + key: '_startVideoFrames', + value: function _startVideoFrames() {} + + /* + Called by a session before it hands a new XRPresentationFrame to the app + */ + + }, { + key: '_handleNewFrame', + value: function _handleNewFrame() {} + + /* + Create an anchor hung in space + */ + + }, { + key: '_addAnchor', + value: function _addAnchor(anchor, display) { + // returns DOMString anchor UID + throw new Error('Extending classes should implement _addAnchor'); + } + + /* + Create an anchor attached to a surface, as found by a ray + returns a Promise that resolves either to an AnchorOffset or null if the hit test failed + normalized screen x and y are in range 0..1, with 0,0 at top left and 1,1 at bottom right + */ + + }, { + key: '_findAnchor', + value: function _findAnchor(normalizedScreenX, normalizedScreenY, display) { + throw new Error('Extending classes should implement _findAnchor'); + } + }, { + key: '_createImageAnchor', + value: function _createImageAnchor(uid, buffer, width, height, physicalWidthInMeters) { + throw new Error('Extending classes should implement _createImageAnchor'); + } + }, { + key: 'activateDetectionImage', + value: function activateDetectionImage(uid, display) { + throw new Error('Extending classes should implement _activateDetectionImage'); + } + + /* + Find an XRAnchorOffset that is at floor level below the current head pose + returns a Promise that resolves either to an AnchorOffset or null if the floor level is unknown + */ + + }, { + key: '_findFloorAnchor', + value: function _findFloorAnchor(display) { + var uid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + throw new Error('Extending classes should implement _findFloorAnchor'); + } + }, { + key: '_getAnchor', + value: function _getAnchor(uid) { + return this._anchors.get(uid) || null; + } + }, { + key: '_removeAnchor', + value: function _removeAnchor(uid) { + // returns void + throw new Error('Extending classes should implement _removeAnchor'); + } + }, { + key: '_hitTestNoAnchor', + value: function _hitTestNoAnchor(normalizedScreenX, normalizedScreenY, display) { + throw new Error('Extending classes should implement _hitTestNoAnchor'); + } + }, { + key: '_getLightAmbientIntensity', + value: function _getLightAmbientIntensity() { + throw new Error('Extending classes should implement _getLightAmbientIntensity'); + } + }, { + key: '_getWorldMap', + value: function _getWorldMap() { + throw new Error('Extending classes should implement _getWorldMap'); + } + }, { + key: '_setWorldMap', + value: function _setWorldMap(worldMap) { + throw new Error('Extending classes should implement _setWorldMap'); + } + }, { + key: '_getWorldMappingStatus', + value: function _getWorldMappingStatus() { + throw new Error('Extending classes should implement _getWorldMappingStatus'); + } + // attribute EventHandler onchange; + + }, { + key: 'name', + get: function get() { + return this._name; + } + }, { + key: 'isShared', + get: function get() { + return this._isShared; + } + }, { + key: 'isPassthrough', + get: function get() { + return this._isPassthrough; + } + }]); + + return Reality; +}(_EventHandlerBase3.default); + +exports.default = Reality; + + +Reality.COMPUTER_VISION_DATA = 'cv_data'; +Reality.WINDOW_RESIZE_EVENT = 'window-resize'; +Reality.NEW_WORLD_ANCHOR = 'world-anchor'; +Reality.UPDATE_WORLD_ANCHOR = 'update-world-anchor'; +Reality.REMOVE_WORLD_ANCHOR = 'remove-world-anchor'; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _XRAnchor2 = __webpack_require__(1); + +var _XRAnchor3 = _interopRequireDefault(_XRAnchor2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +XRFaceAnchor represents a face anchor +*/ +var XRFaceAnchor = function (_XRAnchor) { + _inherits(XRFaceAnchor, _XRAnchor); + + function XRFaceAnchor(coordinateSystem) { + var uid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var geometry = arguments[2]; + var blendShapeArray = arguments[3]; + + _classCallCheck(this, XRFaceAnchor); + + var _this = _possibleConstructorReturn(this, (XRFaceAnchor.__proto__ || Object.getPrototypeOf(XRFaceAnchor)).call(this, coordinateSystem, uid)); + + _this.geometry = geometry; + _this.blendShapes = {}; + _this.updateBlendShapes(blendShapeArray); + return _this; + } + + _createClass(XRFaceAnchor, [{ + key: "updateBlendShapes", + value: function updateBlendShapes(blendShapeArray) { + for (var i = 0; i < blendShapeNames.length; i++) { + this.blendShapes[blendShapeNames[i]] = blendShapeArray[i]; + } + } + }]); + + return XRFaceAnchor; +}(_XRAnchor3.default); + +exports.default = XRFaceAnchor; + + +var blendShapeNames = ["browDownLeft", "browDownRight", "browInnerUp", "browOuterUpLeft", "browOuterUpRight", "cheekPuff", "cheekSquintLeft", "cheekSquintRight", "eyeBlinkLeft", "eyeBlinkRight", "eyeLookDownLeft", "eyeLookDownRight", "eyeLookInLeft", "eyeLookInRight", "eyeLookOutLeft", "eyeLookOutRight", "eyeLookUpLeft", "eyeLookUpRight", "eyeSquintLeft", "eyeSquintRight", "eyeWideLeft", "eyeWideRight", "jawForward", "jawLeft", "jawOpen", "jawRight", "mouthClose", "mouthDimpleLeft", "mouthDimpleRight", "mouthFrownLeft", "mouthFrownRight", "mouthFunnel", "mouthLeft", "mouthLowerDownLeft", "mouthLowerDownRight", "mouthPressLeft", "mouthPressRight", "mouthPucker", "mouthRight", "mouthRollLower", "mouthRollUpper", "mouthShrugLower", "mouthShrugUpper", "mouthSmileLeft", "mouthSmileRight", "mouthStretchLeft", "mouthStretchRight", "mouthUpperUpLeft", "mouthUpperUpRight", "noseSneerLeft", "noseSneerRight"]; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _XRAnchor2 = __webpack_require__(1); + +var _XRAnchor3 = _interopRequireDefault(_XRAnchor2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +XRFaceAnchor represents an anchor +*/ +var XRImageAnchor = function (_XRAnchor) { + _inherits(XRImageAnchor, _XRAnchor); + + function XRImageAnchor(coordinateSystem) { + var uid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + _classCallCheck(this, XRImageAnchor); + + return _possibleConstructorReturn(this, (XRImageAnchor.__proto__ || Object.getPrototypeOf(XRImageAnchor)).call(this, coordinateSystem, uid)); + } + + return XRImageAnchor; +}(_XRAnchor3.default); + +exports.default = XRImageAnchor; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _XRAnchor2 = __webpack_require__(1); + +var _XRAnchor3 = _interopRequireDefault(_XRAnchor2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +XRPlaneAnchor represents a flat surfaces like floors, table tops, or walls. +*/ +var XRPlaneAnchor = function (_XRAnchor) { + _inherits(XRPlaneAnchor, _XRAnchor); + + function XRPlaneAnchor(coordinateSystem) { + var uid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var center = arguments[2]; + var extent = arguments[3]; + var alignment = arguments[4]; + var geometry = arguments[5]; + + _classCallCheck(this, XRPlaneAnchor); + + var _this = _possibleConstructorReturn(this, (XRPlaneAnchor.__proto__ || Object.getPrototypeOf(XRPlaneAnchor)).call(this, coordinateSystem, uid)); + + _this.center = center; + _this.extent = extent; + _this.alignment = alignment; + _this.geometry = geometry; + return _this; + } + + _createClass(XRPlaneAnchor, [{ + key: 'width', + get: function get() { + //readonly attribute double width; + throw 'Not implemented'; + } + }, { + key: 'length', + get: function get() { + //readonly attribute double length; + throw 'Not implemented'; + } + }]); + + return XRPlaneAnchor; +}(_XRAnchor3.default); + +exports.default = XRPlaneAnchor; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _EventHandlerBase2 = __webpack_require__(3); + +var _EventHandlerBase3 = _interopRequireDefault(_EventHandlerBase2); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +var _XRDisplay = __webpack_require__(6); + +var _XRDisplay2 = _interopRequireDefault(_XRDisplay); + +var _XRFaceAnchor = __webpack_require__(8); + +var _XRFaceAnchor2 = _interopRequireDefault(_XRFaceAnchor); + +var _XRImageAnchor = __webpack_require__(9); + +var _XRImageAnchor2 = _interopRequireDefault(_XRImageAnchor); + +var _XRAnchor = __webpack_require__(1); + +var _XRAnchor2 = _interopRequireDefault(_XRAnchor); + +var _ARKitWrapper = __webpack_require__(5); + +var _ARKitWrapper2 = _interopRequireDefault(_ARKitWrapper); + +var _XRPlaneAnchor = __webpack_require__(10); + +var _XRPlaneAnchor2 = _interopRequireDefault(_XRPlaneAnchor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +A script that wishes to make use of an XRDisplay can request an XRSession. +An XRSession provides a list of the available Reality instances that the script may request as well as make a request for an animation frame. +*/ +var XRSession = function (_EventHandlerBase) { + _inherits(XRSession, _EventHandlerBase); + + function XRSession(xr, display, createParameters) { + _classCallCheck(this, XRSession); + + var _this = _possibleConstructorReturn(this, (XRSession.__proto__ || Object.getPrototypeOf(XRSession)).call(this, xr)); + + _this._xr = xr; + _this._display = display; + _this._createParameters = createParameters; + _this._ended = false; + + _this._baseLayer = null; + _this._stageBounds = null; + + _this._skip = false; + + _this._frameAnchors = []; + _this._tempMatrix = _MatrixMath2.default.mat4_generateIdentity(); + _this._tempMatrix2 = _MatrixMath2.default.mat4_generateIdentity(); + + _this._display.addEventListener(_XRDisplay2.default.TRACKING_CHANGED, _this._handleTrackingChanged.bind(_this)); + _this._display.addEventListener(_XRDisplay2.default.NEW_WORLD_ANCHOR, _this._handleNewWorldAnchor.bind(_this)); + _this._display.addEventListener(_XRDisplay2.default.REMOVE_WORLD_ANCHOR, _this._handleRemoveWorldAnchor.bind(_this)); + _this._display.addEventListener(_XRDisplay2.default.UPDATE_WORLD_ANCHOR, _this._handleUpdateWorldAnchor.bind(_this)); + return _this; + } + + _createClass(XRSession, [{ + key: 'requestFrame', + value: function requestFrame(callback) { + if (this._ended) return null; + if (typeof callback !== 'function') { + throw 'Invalid callback'; + } + return this._handleRequestFrame(callback); + } + }, { + key: '_handleRequestFrame', + value: function _handleRequestFrame(callback) { + var _this2 = this; + + return this._display._requestAnimationFrame(function (timestamp) { + if (_this2._skip) { + _this2._skip = false; + return _this2._handleRequestFrame(callback); + } + //this._skip = true; // try skipping every second raf + var frame = _this2._createPresentationFrame(timestamp); + _this2._updateCameraAnchor(frame); + + _this2._display._reality._handleNewFrame(frame); + _this2._display._handleNewFrame(frame); + callback(frame); + _this2._display._handleAfterFrame(frame); + }); + } + }, { + key: 'cancelFrame', + value: function cancelFrame(handle) { + return this._display._cancelAnimationFrame(handle); + } + }, { + key: 'end', + value: function end() { + if (this._ended) return; + for (var i = 0; i < this._frameAnchors.length; i++) { + this._display._reality._removeAnchor(this._frameAnchors[i].uid); + } + this._frameAnchors = []; + this._ended = true; + this._display._stop(); + return new Promise(function (resolve, reject) { + resolve(); + }); + } + }, { + key: '_updateCameraAnchor', + value: function _updateCameraAnchor(frame) { + // new anchor each minute + if (this._frameAnchors.length == 0 || this._frameAnchors[0].timestamp + 1000 < frame.timestamp) { + var headCoordinateSystem = frame.getCoordinateSystem(XRCoordinateSystem.EYE_LEVEL); + var anchorUID = frame.addAnchor(headCoordinateSystem, [0, -1, 0], [0, 0, 0, 1], 'cameraAnchor-' + new Date().getTime() + '-' + Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)); + var anchor = frame.getAnchor(anchorUID); + anchor.timestamp = frame.timestamp; + this._frameAnchors.unshift(anchor); + + if (this._frameAnchors.length > 5) { + var oldAnchor = this._frameAnchors.pop(); + this._display._reality._removeAnchor(oldAnchor.uid); + } + return anchor; + } else { + return this._frameAnchors[0]; + } + } + }, { + key: '_transformToCameraAnchor', + value: function _transformToCameraAnchor(camera) { + if (this._frameAnchors.length == 0) return camera.viewMatrix; + + var matrix = camera.viewMatrix; + camera._anchorUid = this._frameAnchors[0].uid; + + var anchorCoords = this._frameAnchors[0].coordinateSystem; + + // should only have to invert anchor coords, but we're sending in the inverse + // of the camera pose ... + + // get world to anchor by inverting anchor to world + _MatrixMath2.default.mat4_invert(this._tempMatrix, anchorCoords._poseModelMatrix); + + // get camera to world by inverting world to camera + // MatrixMath.mat4_invert(this._tempMatrix2, matrix) + // MatrixMath.mat4_multiply(camera.viewMatrix, this._tempMatrix, this._tempMatrix2) + _MatrixMath2.default.mat4_multiply(camera.viewMatrix, this._tempMatrix, matrix); + } + }, { + key: 'setVideoFrameHandler', + value: function setVideoFrameHandler(callback) { + var _this3 = this; + + if (callback instanceof Worker) { + var worker = callback; + callback = function callback(ev) { + // var cv = ev.detail + // var buffers = cv.frame.buffers + // var buffs = [] + // for (var i = 0; i < buffers.length; i++) { + // buffs.push(buffers[i].buffer) + // } + // worker.postMessage(cv, buffs); + _this3._transformToCameraAnchor(ev.detail.camera); + ev.detail.postMessageToWorker(worker, { type: "newVideoFrame" }); + ev.detail.release(); + }; + } else { + var originalCallback = callback; + callback = function callback(ev) { + _this3._transformToCameraAnchor(ev.detail.camera); + originalCallback(ev); + }; + } + this._display.addEventListener("videoFrame", callback); + } + }, { + key: 'getVideoFramePose', + value: function getVideoFramePose(videoFrame, poseOut) { + if (!videoFrame.camera._anchorUid) return; + + var anchorPose; + var anchor = this.reality._getAnchor(videoFrame.camera._anchorUid); + if (anchor) { + anchorPose = anchor.coordinateSystem._poseModelMatrix; + } else { + var i = 0; + for (; i < this._frameAnchors.length; i++) { + if (videoFrame.camera._anchorUid == this._frameAnchors[i].uid) { + anchorPose = this._frameAnchors[i].coordinateSystem._poseModelMatrix; + break; + } + } + + if (i == this._frameAnchors.length) { + // shouldn't happen! + console.warn("should never get here: session.getVideoFramePose can't find anchor"); + return; + } + } + _MatrixMath2.default.mat4_multiply(poseOut, anchorPose, videoFrame.camera.viewMatrix); + } + + // normalized screen x and y are in range 0..1, with 0,0 at top left and 1,1 at bottom right + + }, { + key: 'hitTest', + value: function hitTest(normalizedScreenX, normalizedScreenY) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + // Promise<XRAnchorOffset?> findAnchor(float32, float32); // cast a ray to find or create an anchor at the first intersection in the Reality + return this.reality._findAnchor(normalizedScreenX, normalizedScreenY, this.display, options); + } + }, { + key: 'requestVideoFrame', + value: function requestVideoFrame() { + this._display._requestVideoFrame(); + } + }, { + key: 'stopVideoFrames', + value: function stopVideoFrames() { + this._display._stopVideoFrames(); + } + }, { + key: 'startVideoFrames', + value: function startVideoFrames() { + this._display._startVideoFrames(); + } + }, { + key: '_createPresentationFrame', + value: function _createPresentationFrame(timestamp) { + return new XRPresentationFrame(this, timestamp); + } + }, { + key: '_getCoordinateSystem', + value: function _getCoordinateSystem() { + for (var _len = arguments.length, types = Array(_len), _key = 0; _key < _len; _key++) { + types[_key] = arguments[_key]; + } + + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = types[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var type = _step.value; + + switch (type) { + case XRCoordinateSystem.HEAD_MODEL: + return this._display._headModelCoordinateSystem; + case XRCoordinateSystem.EYE_LEVEL: + return this._display._eyeLevelCoordinateSystem; + case XRCoordinateSystem.TRACKER: + return this._display._trackerCoordinateSystem; + case XRCoordinateSystem.GEOSPATIAL: + // Not supported yet + default: + continue; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return null; + } + }, { + key: 'createImageAnchor', + value: function createImageAnchor(uid, buffer, width, height, physicalWidthInMeters) { + return this.reality._createImageAnchor(uid, buffer, width, height, physicalWidthInMeters); + } + }, { + key: 'activateDetectionImage', + value: function activateDetectionImage(uid) { + return this.reality._activateDetectionImage(uid, this._display); + } + }, { + key: '_handleNewWorldAnchor', + value: function _handleNewWorldAnchor(event) { + var xrAnchor = event.detail; + //console.log(`New world anchor: ${JSON.stringify(xrAnchor)}`) + + if (!xrAnchor.uid.startsWith('cameraAnchor-')) { + try { + this.dispatchEvent(new CustomEvent(XRSession.NEW_WORLD_ANCHOR, { + source: this, + detail: xrAnchor + })); + } catch (e) { + console.error('NEW_WORLD_ANCHOR event error', e); + } + } else { + // console.log('not passing NEW_WORLD_ANCHOR event to app for ', xrAnchor.uid) + } + } + }, { + key: '_handleUpdateWorldAnchor', + value: function _handleUpdateWorldAnchor(event) { + var xrAnchor = event.detail; + //console.log(`New world anchor: ${JSON.stringify(xrAnchor)}`) + + try { + this.dispatchEvent(new CustomEvent(XRSession.UPDATE_WORLD_ANCHOR, { + source: this, + detail: xrAnchor + })); + } catch (e) { + console.error('UPDATE_WORLD_ANCHOR event error', e); + } + } + }, { + key: '_handleRemoveWorldAnchor', + value: function _handleRemoveWorldAnchor(event) { + var xrAnchor = event.detail; + //console.log(`Remove world anchor: ${JSON.stringify(xrAnchor)}`) + + try { + this.dispatchEvent(new CustomEvent(XRSession.REMOVE_WORLD_ANCHOR, { + source: this, + detail: xrAnchor + })); + } catch (e) { + console.error('REMOVE_WORLD_ANCHOR event error', e); + } + } + }, { + key: '_handleTrackingChanged', + value: function _handleTrackingChanged(event) { + try { + this.dispatchEvent(new CustomEvent(XRSession.TRACKING_CHANGED, { + source: this, + detail: event.detail + })); + } catch (e) { + console.error('TRACKING_CHANGED event error', e); + } + } + }, { + key: 'getWorldMap', + value: function getWorldMap() { + return this.reality._getWorldMap(); + } + }, { + key: 'setWorldMap', + value: function setWorldMap(worldMap) { + return this.reality._setWorldMap(worldMap); + } + }, { + key: 'getWorldMappingStatus', + value: function getWorldMappingStatus() { + return this.reality._getWorldMappingStatus(); + } + /* + attribute EventHandler onblur; + attribute EventHandler onfocus; + attribute EventHandler onresetpose; + attribute EventHandler onrealitychanged; + attribute EventHandler onrealityconnect; + attribute EventHandler onrealitydisconnect; + attribute EventHandler onboundschange; + attribute EventHandler onended; + */ + + }, { + key: 'display', + get: function get() { + return this._display; + } + }, { + key: 'createParameters', + get: function get() { + return this._parameters; + } + }, { + key: 'realities', + get: function get() { + return this._xr._sharedRealities; + } + }, { + key: 'reality', + get: function get() { + return this._display._reality; + } + }, { + key: 'baseLayer', + get: function get() { + return this._baseLayer; + }, + set: function set(value) { + this._baseLayer = value; + this._display._handleNewBaseLayer(this._baseLayer); + } + }, { + key: 'depthNear', + get: function get() { + this._display._depthNear; + }, + set: function set(value) { + this._display._depthNear = value; + } + }, { + key: 'depthFar', + get: function get() { + this._display._depthFar; + }, + set: function set(value) { + this._display._depthFar = value; + } + }, { + key: 'hasStageBounds', + get: function get() { + this._stageBounds !== null; + } + }, { + key: 'stageBounds', + get: function get() { + return this._stageBounds; + } + }]); + + return XRSession; +}(_EventHandlerBase3.default); + +exports.default = XRSession; + + +XRSession.REALITY = 'reality'; +XRSession.AUGMENTATION = 'augmentation'; + +XRSession.TYPES = [XRSession.REALITY, XRSession.AUGMENTATION]; + +XRSession.TRACKING_CHANGED = 'tracking-changed'; + +XRSession.NEW_WORLD_ANCHOR = 'world-anchor'; +XRSession.UPDATE_WORLD_ANCHOR = 'update-world-anchor'; +XRSession.REMOVE_WORLD_ANCHOR = 'remove-world-anchor'; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.forEach = exports.sqrLen = exports.len = exports.sqrDist = exports.dist = exports.div = exports.mul = exports.sub = undefined; +exports.create = create; +exports.clone = clone; +exports.length = length; +exports.fromValues = fromValues; +exports.copy = copy; +exports.set = set; +exports.add = add; +exports.subtract = subtract; +exports.multiply = multiply; +exports.divide = divide; +exports.ceil = ceil; +exports.floor = floor; +exports.min = min; +exports.max = max; +exports.round = round; +exports.scale = scale; +exports.scaleAndAdd = scaleAndAdd; +exports.distance = distance; +exports.squaredDistance = squaredDistance; +exports.squaredLength = squaredLength; +exports.negate = negate; +exports.inverse = inverse; +exports.normalize = normalize; +exports.dot = dot; +exports.cross = cross; +exports.lerp = lerp; +exports.hermite = hermite; +exports.bezier = bezier; +exports.random = random; +exports.transformMat4 = transformMat4; +exports.transformMat3 = transformMat3; +exports.transformQuat = transformQuat; +exports.rotateX = rotateX; +exports.rotateY = rotateY; +exports.rotateZ = rotateZ; +exports.angle = angle; +exports.str = str; +exports.exactEquals = exactEquals; +exports.equals = equals; + +var _common = __webpack_require__(4); + +var glMatrix = _interopRequireWildcard(_common); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +/** + * 3 Dimensional Vector + * @module vec3 + */ + +/** + * Creates a new, empty vec3 + * + * @returns {vec3} a new 3D vector + */ +function create() { + var out = new glMatrix.ARRAY_TYPE(3); + out[0] = 0; + out[1] = 0; + out[2] = 0; + return out; +} + +/** + * Creates a new vec3 initialized with values from an existing vector + * + * @param {vec3} a vector to clone + * @returns {vec3} a new 3D vector + */ +/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +function clone(a) { + var out = new glMatrix.ARRAY_TYPE(3); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + return out; +} + +/** + * Calculates the length of a vec3 + * + * @param {vec3} a vector to calculate length of + * @returns {Number} length of a + */ +function length(a) { + var x = a[0]; + var y = a[1]; + var z = a[2]; + return Math.sqrt(x * x + y * y + z * z); +} + +/** + * Creates a new vec3 initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @returns {vec3} a new 3D vector + */ +function fromValues(x, y, z) { + var out = new glMatrix.ARRAY_TYPE(3); + out[0] = x; + out[1] = y; + out[2] = z; + return out; +} + +/** + * Copy the values from one vec3 to another + * + * @param {vec3} out the receiving vector + * @param {vec3} a the source vector + * @returns {vec3} out + */ +function copy(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + return out; +} + +/** + * Set the components of a vec3 to the given values + * + * @param {vec3} out the receiving vector + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @returns {vec3} out + */ +function set(out, x, y, z) { + out[0] = x; + out[1] = y; + out[2] = z; + return out; +} + +/** + * Adds two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function add(out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + out[2] = a[2] + b[2]; + return out; +} + +/** + * Subtracts vector b from vector a + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function subtract(out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + out[2] = a[2] - b[2]; + return out; +} + +/** + * Multiplies two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function multiply(out, a, b) { + out[0] = a[0] * b[0]; + out[1] = a[1] * b[1]; + out[2] = a[2] * b[2]; + return out; +} + +/** + * Divides two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function divide(out, a, b) { + out[0] = a[0] / b[0]; + out[1] = a[1] / b[1]; + out[2] = a[2] / b[2]; + return out; +} + +/** + * Math.ceil the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to ceil + * @returns {vec3} out + */ +function ceil(out, a) { + out[0] = Math.ceil(a[0]); + out[1] = Math.ceil(a[1]); + out[2] = Math.ceil(a[2]); + return out; +} + +/** + * Math.floor the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to floor + * @returns {vec3} out + */ +function floor(out, a) { + out[0] = Math.floor(a[0]); + out[1] = Math.floor(a[1]); + out[2] = Math.floor(a[2]); + return out; +} + +/** + * Returns the minimum of two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function min(out, a, b) { + out[0] = Math.min(a[0], b[0]); + out[1] = Math.min(a[1], b[1]); + out[2] = Math.min(a[2], b[2]); + return out; +} + +/** + * Returns the maximum of two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function max(out, a, b) { + out[0] = Math.max(a[0], b[0]); + out[1] = Math.max(a[1], b[1]); + out[2] = Math.max(a[2], b[2]); + return out; +} + +/** + * Math.round the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to round + * @returns {vec3} out + */ +function round(out, a) { + out[0] = Math.round(a[0]); + out[1] = Math.round(a[1]); + out[2] = Math.round(a[2]); + return out; +} + +/** + * Scales a vec3 by a scalar number + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec3} out + */ +function scale(out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + out[2] = a[2] * b; + return out; +} + +/** + * Adds two vec3's after scaling the second operand by a scalar value + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {Number} scale the amount to scale b by before adding + * @returns {vec3} out + */ +function scaleAndAdd(out, a, b, scale) { + out[0] = a[0] + b[0] * scale; + out[1] = a[1] + b[1] * scale; + out[2] = a[2] + b[2] * scale; + return out; +} + +/** + * Calculates the euclidian distance between two vec3's + * + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {Number} distance between a and b + */ +function distance(a, b) { + var x = b[0] - a[0]; + var y = b[1] - a[1]; + var z = b[2] - a[2]; + return Math.sqrt(x * x + y * y + z * z); +} + +/** + * Calculates the squared euclidian distance between two vec3's + * + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {Number} squared distance between a and b + */ +function squaredDistance(a, b) { + var x = b[0] - a[0]; + var y = b[1] - a[1]; + var z = b[2] - a[2]; + return x * x + y * y + z * z; +} + +/** + * Calculates the squared length of a vec3 + * + * @param {vec3} a vector to calculate squared length of + * @returns {Number} squared length of a + */ +function squaredLength(a) { + var x = a[0]; + var y = a[1]; + var z = a[2]; + return x * x + y * y + z * z; +} + +/** + * Negates the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to negate + * @returns {vec3} out + */ +function negate(out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + out[2] = -a[2]; + return out; +} + +/** + * Returns the inverse of the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to invert + * @returns {vec3} out + */ +function inverse(out, a) { + out[0] = 1.0 / a[0]; + out[1] = 1.0 / a[1]; + out[2] = 1.0 / a[2]; + return out; +} + +/** + * Normalize a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to normalize + * @returns {vec3} out + */ +function normalize(out, a) { + var x = a[0]; + var y = a[1]; + var z = a[2]; + var len = x * x + y * y + z * z; + if (len > 0) { + //TODO: evaluate use of glm_invsqrt here? + len = 1 / Math.sqrt(len); + out[0] = a[0] * len; + out[1] = a[1] * len; + out[2] = a[2] * len; + } + return out; +} + +/** + * Calculates the dot product of two vec3's + * + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {Number} dot product of a and b + */ +function dot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; +} + +/** + * Computes the cross product of two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ +function cross(out, a, b) { + var ax = a[0], + ay = a[1], + az = a[2]; + var bx = b[0], + by = b[1], + bz = b[2]; + + out[0] = ay * bz - az * by; + out[1] = az * bx - ax * bz; + out[2] = ax * by - ay * bx; + return out; +} + +/** + * Performs a linear interpolation between two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec3} out + */ +function lerp(out, a, b, t) { + var ax = a[0]; + var ay = a[1]; + var az = a[2]; + out[0] = ax + t * (b[0] - ax); + out[1] = ay + t * (b[1] - ay); + out[2] = az + t * (b[2] - az); + return out; +} + +/** + * Performs a hermite interpolation with two control points + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {vec3} c the third operand + * @param {vec3} d the fourth operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec3} out + */ +function hermite(out, a, b, c, d, t) { + var factorTimes2 = t * t; + var factor1 = factorTimes2 * (2 * t - 3) + 1; + var factor2 = factorTimes2 * (t - 2) + t; + var factor3 = factorTimes2 * (t - 1); + var factor4 = factorTimes2 * (3 - 2 * t); + + out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4; + out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4; + out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4; + + return out; +} + +/** + * Performs a bezier interpolation with two control points + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {vec3} c the third operand + * @param {vec3} d the fourth operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec3} out + */ +function bezier(out, a, b, c, d, t) { + var inverseFactor = 1 - t; + var inverseFactorTimesTwo = inverseFactor * inverseFactor; + var factorTimes2 = t * t; + var factor1 = inverseFactorTimesTwo * inverseFactor; + var factor2 = 3 * t * inverseFactorTimesTwo; + var factor3 = 3 * factorTimes2 * inverseFactor; + var factor4 = factorTimes2 * t; + + out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4; + out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4; + out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4; + + return out; +} + +/** + * Generates a random vector with the given scale + * + * @param {vec3} out the receiving vector + * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned + * @returns {vec3} out + */ +function random(out, scale) { + scale = scale || 1.0; + + var r = glMatrix.RANDOM() * 2.0 * Math.PI; + var z = glMatrix.RANDOM() * 2.0 - 1.0; + var zScale = Math.sqrt(1.0 - z * z) * scale; + + out[0] = Math.cos(r) * zScale; + out[1] = Math.sin(r) * zScale; + out[2] = z * scale; + return out; +} + +/** + * Transforms the vec3 with a mat4. + * 4th vector component is implicitly '1' + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to transform + * @param {mat4} m matrix to transform with + * @returns {vec3} out + */ +function transformMat4(out, a, m) { + var x = a[0], + y = a[1], + z = a[2]; + var w = m[3] * x + m[7] * y + m[11] * z + m[15]; + w = w || 1.0; + out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w; + out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w; + out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w; + return out; +} + +/** + * Transforms the vec3 with a mat3. + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to transform + * @param {mat3} m the 3x3 matrix to transform with + * @returns {vec3} out + */ +function transformMat3(out, a, m) { + var x = a[0], + y = a[1], + z = a[2]; + out[0] = x * m[0] + y * m[3] + z * m[6]; + out[1] = x * m[1] + y * m[4] + z * m[7]; + out[2] = x * m[2] + y * m[5] + z * m[8]; + return out; +} + +/** + * Transforms the vec3 with a quat + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to transform + * @param {quat} q quaternion to transform with + * @returns {vec3} out + */ +function transformQuat(out, a, q) { + // benchmarks: http://jsperf.com/quaternion-transform-vec3-implementations + + var x = a[0], + y = a[1], + z = a[2]; + var qx = q[0], + qy = q[1], + qz = q[2], + qw = q[3]; + + // calculate quat * vec + var ix = qw * x + qy * z - qz * y; + var iy = qw * y + qz * x - qx * z; + var iz = qw * z + qx * y - qy * x; + var iw = -qx * x - qy * y - qz * z; + + // calculate result * inverse quat + out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy; + out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz; + out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx; + return out; +} + +/** + * Rotate a 3D vector around the x-axis + * @param {vec3} out The receiving vec3 + * @param {vec3} a The vec3 point to rotate + * @param {vec3} b The origin of the rotation + * @param {Number} c The angle of rotation + * @returns {vec3} out + */ +function rotateX(out, a, b, c) { + var p = [], + r = []; + //Translate point to the origin + p[0] = a[0] - b[0]; + p[1] = a[1] - b[1]; + p[2] = a[2] - b[2]; + + //perform rotation + r[0] = p[0]; + r[1] = p[1] * Math.cos(c) - p[2] * Math.sin(c); + r[2] = p[1] * Math.sin(c) + p[2] * Math.cos(c); + + //translate to correct position + out[0] = r[0] + b[0]; + out[1] = r[1] + b[1]; + out[2] = r[2] + b[2]; + + return out; +} + +/** + * Rotate a 3D vector around the y-axis + * @param {vec3} out The receiving vec3 + * @param {vec3} a The vec3 point to rotate + * @param {vec3} b The origin of the rotation + * @param {Number} c The angle of rotation + * @returns {vec3} out + */ +function rotateY(out, a, b, c) { + var p = [], + r = []; + //Translate point to the origin + p[0] = a[0] - b[0]; + p[1] = a[1] - b[1]; + p[2] = a[2] - b[2]; + + //perform rotation + r[0] = p[2] * Math.sin(c) + p[0] * Math.cos(c); + r[1] = p[1]; + r[2] = p[2] * Math.cos(c) - p[0] * Math.sin(c); + + //translate to correct position + out[0] = r[0] + b[0]; + out[1] = r[1] + b[1]; + out[2] = r[2] + b[2]; + + return out; +} + +/** + * Rotate a 3D vector around the z-axis + * @param {vec3} out The receiving vec3 + * @param {vec3} a The vec3 point to rotate + * @param {vec3} b The origin of the rotation + * @param {Number} c The angle of rotation + * @returns {vec3} out + */ +function rotateZ(out, a, b, c) { + var p = [], + r = []; + //Translate point to the origin + p[0] = a[0] - b[0]; + p[1] = a[1] - b[1]; + p[2] = a[2] - b[2]; + + //perform rotation + r[0] = p[0] * Math.cos(c) - p[1] * Math.sin(c); + r[1] = p[0] * Math.sin(c) + p[1] * Math.cos(c); + r[2] = p[2]; + + //translate to correct position + out[0] = r[0] + b[0]; + out[1] = r[1] + b[1]; + out[2] = r[2] + b[2]; + + return out; +} + +/** + * Get the angle between two 3D vectors + * @param {vec3} a The first operand + * @param {vec3} b The second operand + * @returns {Number} The angle in radians + */ +function angle(a, b) { + var tempA = fromValues(a[0], a[1], a[2]); + var tempB = fromValues(b[0], b[1], b[2]); + + normalize(tempA, tempA); + normalize(tempB, tempB); + + var cosine = dot(tempA, tempB); + + if (cosine > 1.0) { + return 0; + } else if (cosine < -1.0) { + return Math.PI; + } else { + return Math.acos(cosine); + } +} + +/** + * Returns a string representation of a vector + * + * @param {vec3} a vector to represent as a string + * @returns {String} string representation of the vector + */ +function str(a) { + return 'vec3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ')'; +} + +/** + * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===) + * + * @param {vec3} a The first vector. + * @param {vec3} b The second vector. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ +function exactEquals(a, b) { + return a[0] === b[0] && a[1] === b[1] && a[2] === b[2]; +} + +/** + * Returns whether or not the vectors have approximately the same elements in the same position. + * + * @param {vec3} a The first vector. + * @param {vec3} b The second vector. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ +function equals(a, b) { + var a0 = a[0], + a1 = a[1], + a2 = a[2]; + var b0 = b[0], + b1 = b[1], + b2 = b[2]; + return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)); +} + +/** + * Alias for {@link vec3.subtract} + * @function + */ +var sub = exports.sub = subtract; + +/** + * Alias for {@link vec3.multiply} + * @function + */ +var mul = exports.mul = multiply; + +/** + * Alias for {@link vec3.divide} + * @function + */ +var div = exports.div = divide; + +/** + * Alias for {@link vec3.distance} + * @function + */ +var dist = exports.dist = distance; + +/** + * Alias for {@link vec3.squaredDistance} + * @function + */ +var sqrDist = exports.sqrDist = squaredDistance; + +/** + * Alias for {@link vec3.length} + * @function + */ +var len = exports.len = length; + +/** + * Alias for {@link vec3.squaredLength} + * @function + */ +var sqrLen = exports.sqrLen = squaredLength; + +/** + * Perform some operation over an array of vec3s. + * + * @param {Array} a the array of vectors to iterate over + * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed + * @param {Number} offset Number of elements to skip at the beginning of the array + * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array + * @param {Function} fn Function to call for each vector in the array + * @param {Object} [arg] additional argument to pass to fn + * @returns {Array} a + * @function + */ +var forEach = exports.forEach = function () { + var vec = create(); + + return function (a, stride, offset, count, fn, arg) { + var i = void 0, + l = void 0; + if (!stride) { + stride = 3; + } + + if (!offset) { + offset = 0; + } + + if (count) { + l = Math.min(count * stride + offset, a.length); + } else { + l = a.length; + } + + for (i = offset; i < l; i += stride) { + vec[0] = a[i];vec[1] = a[i + 1];vec[2] = a[i + 2]; + fn(vec, vec, arg); + a[i] = vec[0];a[i + 1] = vec[1];a[i + 2] = vec[2]; + } + + return a; + }; +}(); + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _XRViewport = __webpack_require__(22); + +var _XRViewport2 = _interopRequireDefault(_XRViewport); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +An XRView describes a single view into an XR scene. +It provides several values directly, and acts as a key to query view-specific values from other interfaces. +*/ +var XRView = function () { + function XRView(fov, depthNear, depthFar) { + var eye = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + _classCallCheck(this, XRView); + + this._fov = fov; + this._depthNear = depthNear; + this._depthFar = depthFar; + this._eye = eye; + this._viewport = new _XRViewport2.default(0, 0, 1, 1); + this._projectionMatrix = new Float32Array(16); + this._viewMatrix = new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]); + _MatrixMath2.default.mat4_perspectiveFromFieldOfView(this._projectionMatrix, this._fov, this._depthNear, this._depthFar); + } + + _createClass(XRView, [{ + key: 'setProjectionMatrix', + value: function setProjectionMatrix(array16) { + for (var i = 0; i < 16; i++) { + this._projectionMatrix[i] = array16[i]; + } + } + }, { + key: 'setViewMatrix', + value: function setViewMatrix(array16) { + for (var i = 0; i < 16; i++) { + this._viewMatrix[i] = array16[i]; + } + } + }, { + key: 'getViewport', + value: function getViewport(layer) { + if (this._eye === XRView.LEFT) { + this._viewport.x = 0; + this._viewport.y = 0; + this._viewport.width = layer.framebufferWidth / 2; + this._viewport.height = layer.framebufferHeight; + } else if (this._eye === XRView.RIGHT) { + this._viewport.x = layer.framebufferWidth / 2; + this._viewport.y = 0; + this._viewport.width = layer.framebufferWidth / 2; + this._viewport.height = layer.framebufferHeight; + } else { + this._viewport.x = 0; + this._viewport.y = 0; + this._viewport.width = layer.framebufferWidth; + this._viewport.height = layer.framebufferHeight; + } + return this._viewport; + } + }, { + key: 'fov', + set: function set(value) { + this._fov = value; + _MatrixMath2.default.mat4_perspectiveFromFieldOfView(this._projectionMatrix, this._fov, this._depthNear, this._depthFar); + } + }, { + key: 'eye', + get: function get() { + return this._eye; + } + }, { + key: 'projectionMatrix', + get: function get() { + return this._projectionMatrix; + } + }, { + key: 'viewMatrix', + get: function get() { + return this._viewMatrix; + } + }]); + + return XRView; +}(); + +exports.default = XRView; + + +XRView.LEFT = 'left'; +XRView.RIGHT = 'right'; +XRView.EYES = [XRView.LEFT, XRView.RIGHT]; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +var _Quaternion = __webpack_require__(2); + +var _Quaternion2 = _interopRequireDefault(_Quaternion); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRDevicePose describes the position and orientation of an XRDisplay relative to the query XRCoordinateSystem. +It also describes the view and projection matrices that should be used by the application to render a frame of the XR scene. +*/ +var XRViewPose = function () { + function XRViewPose() { + var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [0, 0, 0]; + var orientation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0, 1]; + + _classCallCheck(this, XRViewPose); + + this._poseModelMatrix = new Float32Array(16); + _MatrixMath2.default.mat4_fromRotationTranslation(this._poseModelMatrix, orientation, position); + } + + _createClass(XRViewPose, [{ + key: '_setPoseModelMatrix', + value: function _setPoseModelMatrix(array16) { + for (var i = 0; i < 16; i++) { + this._poseModelMatrix[i] = array16[i]; + } + } + }, { + key: '_translate', + value: function _translate(array3) { + this._poseModelMatrix[12] += array3[0]; + this._poseModelMatrix[13] += array3[1]; + this._poseModelMatrix[14] += array3[2]; + } + }, { + key: 'getViewMatrix', + value: function getViewMatrix(view) { + var out = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + if (out === null) { + out = new Float32Array(16); + } + _MatrixMath2.default.mat4_eyeView(out, this._poseModelMatrix); // TODO offsets + return out; + } + }, { + key: 'poseModelMatrix', + get: function get() { + return this._poseModelMatrix; + } + }, { + key: '_position', + get: function get() { + return [this._poseModelMatrix[12], this._poseModelMatrix[13], this._poseModelMatrix[14]]; + }, + set: function set(array3) { + this._poseModelMatrix[12] = array3[0]; + this._poseModelMatrix[13] = array3[1]; + this._poseModelMatrix[14] = array3[2]; + } + }, { + key: '_orientation', + get: function get() { + var quat = new _Quaternion2.default(); + quat.setFromRotationMatrix(this._poseModelMatrix); + return quat.toArray(); + }, + set: function set(array4) { + _MatrixMath2.default.mat4_fromRotationTranslation(this._poseModelMatrix, array4, this._position); + } + }]); + + return XRViewPose; +}(); + +// We are not going to use this any more. The way it was handled was broken, we'll just +// use the raw values for the coordinate systems. + + +exports.default = XRViewPose; +XRViewPose.SITTING_EYE_HEIGHT = 0; // meters + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +Vector3 wraps a vector of length 3, often used as a position in 3D space. + +Taken from https://github.com/googlevr/webvr-polyfill/blob/master/src/math-util.js which took it from Three.js +*/ +var Vector3 = function () { + function Vector3() { + var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + + _classCallCheck(this, Vector3); + + this.x = x; + this.y = y; + this.z = z; + } + + _createClass(Vector3, [{ + key: "set", + value: function set(x, y, z) { + this.x = x; + this.y = y; + this.z = z; + return this; + } + }, { + key: "copy", + value: function copy(v) { + this.x = v.x; + this.y = v.y; + this.z = v.z; + return this; + } + }, { + key: "toArray", + value: function toArray() { + return [this.x, this.y, this.z]; + } + }, { + key: "length", + value: function length() { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + } + }, { + key: "add", + value: function add(x, y, z) { + this.x += x; + this.y += y; + this.z += z; + } + }, { + key: "normalize", + value: function normalize() { + var scalar = this.length(); + if (scalar !== 0) { + this.multiplyScalar(1 / scalar); + } else { + this.x = 0; + this.y = 0; + this.z = 0; + } + return this; + } + }, { + key: "multiplyScalar", + value: function multiplyScalar(scalar) { + this.x *= scalar; + this.y *= scalar; + this.z *= scalar; + } + }, { + key: "applyQuaternion", + value: function applyQuaternion(q) { + var x = this.x; + var y = this.y; + var z = this.z; + + var qx = q.x; + var qy = q.y; + var qz = q.z; + var qw = q.w; + + // calculate quat * vector + var ix = qw * x + qy * z - qz * y; + var iy = qw * y + qz * x - qx * z; + var iz = qw * z + qx * y - qy * x; + var iw = -qx * x - qy * y - qz * z; + + // calculate result * inverse quat + this.x = ix * qw + iw * -qx + iy * -qz - iz * -qy; + this.y = iy * qw + iw * -qy + iz * -qx - ix * -qz; + this.z = iz * qw + iw * -qz + ix * -qy - iy * -qx; + + return this; + } + }, { + key: "applyMatrix4", + value: function applyMatrix4(matrix) { + var x = this.x; + var y = this.y; + var z = this.z; + var w = 1 / (matrix[3] * x + matrix[7] * y + matrix[11] * z + matrix[15]); + this.x = (matrix[0] * x + matrix[4] * y + matrix[8] * z + matrix[12]) * w; + this.y = (matrix[1] * x + matrix[5] * y + matrix[9] * z + matrix[13]) * w; + this.z = (matrix[2] * x + matrix[6] * y + matrix[10] * z + matrix[14]) * w; + return this; + } + }, { + key: "dot", + value: function dot(v) { + return this.x * v.x + this.y * v.y + this.z * v.z; + } + }, { + key: "crossVectors", + value: function crossVectors(a, b) { + var ax = a.x, + ay = a.y, + az = a.z; + var bx = b.x, + by = b.y, + bz = b.z; + this.x = ay * bz - az * by; + this.y = az * bx - ax * bz; + this.z = ax * by - ay * bx; + return this; + } + }]); + + return Vector3; +}(); + +exports.default = Vector3; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRFieldOFView represents the four boundaries of a camera's field of view: up, down, left, and right. +*/ +var XRFieldOfView = function () { + function XRFieldOfView(upDegrees, downDegrees, leftDegrees, rightDegrees) { + _classCallCheck(this, XRFieldOfView); + + this._upDegrees = upDegrees; + this._downDegrees = downDegrees; + this._leftDegrees = leftDegrees; + this._rightDegrees = rightDegrees; + } + + _createClass(XRFieldOfView, [{ + key: "upDegrees", + get: function get() { + return this._upDegrees; + } + }, { + key: "downDegrees", + get: function get() { + return this._downDegrees; + } + }, { + key: "leftDegrees", + get: function get() { + return this._leftDegrees; + } + }, { + key: "rightDegrees", + get: function get() { + return this._rightDegrees; + } + }]); + + return XRFieldOfView; +}(); + +exports.default = XRFieldOfView; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.sub = exports.mul = undefined; +exports.create = create; +exports.clone = clone; +exports.copy = copy; +exports.fromValues = fromValues; +exports.set = set; +exports.identity = identity; +exports.transpose = transpose; +exports.invert = invert; +exports.adjoint = adjoint; +exports.determinant = determinant; +exports.multiply = multiply; +exports.translate = translate; +exports.scale = scale; +exports.rotate = rotate; +exports.rotateX = rotateX; +exports.rotateY = rotateY; +exports.rotateZ = rotateZ; +exports.fromTranslation = fromTranslation; +exports.fromScaling = fromScaling; +exports.fromRotation = fromRotation; +exports.fromXRotation = fromXRotation; +exports.fromYRotation = fromYRotation; +exports.fromZRotation = fromZRotation; +exports.fromRotationTranslation = fromRotationTranslation; +exports.getTranslation = getTranslation; +exports.getScaling = getScaling; +exports.getRotation = getRotation; +exports.fromRotationTranslationScale = fromRotationTranslationScale; +exports.fromRotationTranslationScaleOrigin = fromRotationTranslationScaleOrigin; +exports.fromQuat = fromQuat; +exports.frustum = frustum; +exports.perspective = perspective; +exports.perspectiveFromFieldOfView = perspectiveFromFieldOfView; +exports.ortho = ortho; +exports.lookAt = lookAt; +exports.targetTo = targetTo; +exports.str = str; +exports.frob = frob; +exports.add = add; +exports.subtract = subtract; +exports.multiplyScalar = multiplyScalar; +exports.multiplyScalarAndAdd = multiplyScalarAndAdd; +exports.exactEquals = exactEquals; +exports.equals = equals; + +var _common = __webpack_require__(4); + +var glMatrix = _interopRequireWildcard(_common); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +/** + * 4x4 Matrix + * @module mat4 + */ + +/** + * Creates a new identity mat4 + * + * @returns {mat4} a new 4x4 matrix + */ +function create() { + var out = new glMatrix.ARRAY_TYPE(16); + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = 1; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 1; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; +} + +/** + * Creates a new mat4 initialized with values from an existing matrix + * + * @param {mat4} a matrix to clone + * @returns {mat4} a new 4x4 matrix + */ +/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +function clone(a) { + var out = new glMatrix.ARRAY_TYPE(16); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + out[9] = a[9]; + out[10] = a[10]; + out[11] = a[11]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + return out; +} + +/** + * Copy the values from one mat4 to another + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ +function copy(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + out[9] = a[9]; + out[10] = a[10]; + out[11] = a[11]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + return out; +} + +/** + * Create a new mat4 with the given values + * + * @param {Number} m00 Component in column 0, row 0 position (index 0) + * @param {Number} m01 Component in column 0, row 1 position (index 1) + * @param {Number} m02 Component in column 0, row 2 position (index 2) + * @param {Number} m03 Component in column 0, row 3 position (index 3) + * @param {Number} m10 Component in column 1, row 0 position (index 4) + * @param {Number} m11 Component in column 1, row 1 position (index 5) + * @param {Number} m12 Component in column 1, row 2 position (index 6) + * @param {Number} m13 Component in column 1, row 3 position (index 7) + * @param {Number} m20 Component in column 2, row 0 position (index 8) + * @param {Number} m21 Component in column 2, row 1 position (index 9) + * @param {Number} m22 Component in column 2, row 2 position (index 10) + * @param {Number} m23 Component in column 2, row 3 position (index 11) + * @param {Number} m30 Component in column 3, row 0 position (index 12) + * @param {Number} m31 Component in column 3, row 1 position (index 13) + * @param {Number} m32 Component in column 3, row 2 position (index 14) + * @param {Number} m33 Component in column 3, row 3 position (index 15) + * @returns {mat4} A new mat4 + */ +function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) { + var out = new glMatrix.ARRAY_TYPE(16); + out[0] = m00; + out[1] = m01; + out[2] = m02; + out[3] = m03; + out[4] = m10; + out[5] = m11; + out[6] = m12; + out[7] = m13; + out[8] = m20; + out[9] = m21; + out[10] = m22; + out[11] = m23; + out[12] = m30; + out[13] = m31; + out[14] = m32; + out[15] = m33; + return out; +} + +/** + * Set the components of a mat4 to the given values + * + * @param {mat4} out the receiving matrix + * @param {Number} m00 Component in column 0, row 0 position (index 0) + * @param {Number} m01 Component in column 0, row 1 position (index 1) + * @param {Number} m02 Component in column 0, row 2 position (index 2) + * @param {Number} m03 Component in column 0, row 3 position (index 3) + * @param {Number} m10 Component in column 1, row 0 position (index 4) + * @param {Number} m11 Component in column 1, row 1 position (index 5) + * @param {Number} m12 Component in column 1, row 2 position (index 6) + * @param {Number} m13 Component in column 1, row 3 position (index 7) + * @param {Number} m20 Component in column 2, row 0 position (index 8) + * @param {Number} m21 Component in column 2, row 1 position (index 9) + * @param {Number} m22 Component in column 2, row 2 position (index 10) + * @param {Number} m23 Component in column 2, row 3 position (index 11) + * @param {Number} m30 Component in column 3, row 0 position (index 12) + * @param {Number} m31 Component in column 3, row 1 position (index 13) + * @param {Number} m32 Component in column 3, row 2 position (index 14) + * @param {Number} m33 Component in column 3, row 3 position (index 15) + * @returns {mat4} out + */ +function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) { + out[0] = m00; + out[1] = m01; + out[2] = m02; + out[3] = m03; + out[4] = m10; + out[5] = m11; + out[6] = m12; + out[7] = m13; + out[8] = m20; + out[9] = m21; + out[10] = m22; + out[11] = m23; + out[12] = m30; + out[13] = m31; + out[14] = m32; + out[15] = m33; + return out; +} + +/** + * Set a mat4 to the identity matrix + * + * @param {mat4} out the receiving matrix + * @returns {mat4} out + */ +function identity(out) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = 1; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 1; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; +} + +/** + * Transpose the values of a mat4 + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ +function transpose(out, a) { + // If we are transposing ourselves we can skip a few steps but have to cache some values + if (out === a) { + var a01 = a[1], + a02 = a[2], + a03 = a[3]; + var a12 = a[6], + a13 = a[7]; + var a23 = a[11]; + + out[1] = a[4]; + out[2] = a[8]; + out[3] = a[12]; + out[4] = a01; + out[6] = a[9]; + out[7] = a[13]; + out[8] = a02; + out[9] = a12; + out[11] = a[14]; + out[12] = a03; + out[13] = a13; + out[14] = a23; + } else { + out[0] = a[0]; + out[1] = a[4]; + out[2] = a[8]; + out[3] = a[12]; + out[4] = a[1]; + out[5] = a[5]; + out[6] = a[9]; + out[7] = a[13]; + out[8] = a[2]; + out[9] = a[6]; + out[10] = a[10]; + out[11] = a[14]; + out[12] = a[3]; + out[13] = a[7]; + out[14] = a[11]; + out[15] = a[15]; + } + + return out; +} + +/** + * Inverts a mat4 + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ +function invert(out, a) { + var a00 = a[0], + a01 = a[1], + a02 = a[2], + a03 = a[3]; + var a10 = a[4], + a11 = a[5], + a12 = a[6], + a13 = a[7]; + var a20 = a[8], + a21 = a[9], + a22 = a[10], + a23 = a[11]; + var a30 = a[12], + a31 = a[13], + a32 = a[14], + a33 = a[15]; + + var b00 = a00 * a11 - a01 * a10; + var b01 = a00 * a12 - a02 * a10; + var b02 = a00 * a13 - a03 * a10; + var b03 = a01 * a12 - a02 * a11; + var b04 = a01 * a13 - a03 * a11; + var b05 = a02 * a13 - a03 * a12; + var b06 = a20 * a31 - a21 * a30; + var b07 = a20 * a32 - a22 * a30; + var b08 = a20 * a33 - a23 * a30; + var b09 = a21 * a32 - a22 * a31; + var b10 = a21 * a33 - a23 * a31; + var b11 = a22 * a33 - a23 * a32; + + // Calculate the determinant + var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; + + if (!det) { + return null; + } + det = 1.0 / det; + + out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det; + out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det; + out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det; + out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det; + out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det; + out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det; + out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det; + out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det; + out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det; + out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det; + out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det; + out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det; + out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det; + out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det; + out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det; + out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det; + + return out; +} + +/** + * Calculates the adjugate of a mat4 + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ +function adjoint(out, a) { + var a00 = a[0], + a01 = a[1], + a02 = a[2], + a03 = a[3]; + var a10 = a[4], + a11 = a[5], + a12 = a[6], + a13 = a[7]; + var a20 = a[8], + a21 = a[9], + a22 = a[10], + a23 = a[11]; + var a30 = a[12], + a31 = a[13], + a32 = a[14], + a33 = a[15]; + + out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22); + out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22)); + out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12); + out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12)); + out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22)); + out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22); + out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12)); + out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12); + out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21); + out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21)); + out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11); + out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11)); + out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21)); + out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21); + out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11)); + out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11); + return out; +} + +/** + * Calculates the determinant of a mat4 + * + * @param {mat4} a the source matrix + * @returns {Number} determinant of a + */ +function determinant(a) { + var a00 = a[0], + a01 = a[1], + a02 = a[2], + a03 = a[3]; + var a10 = a[4], + a11 = a[5], + a12 = a[6], + a13 = a[7]; + var a20 = a[8], + a21 = a[9], + a22 = a[10], + a23 = a[11]; + var a30 = a[12], + a31 = a[13], + a32 = a[14], + a33 = a[15]; + + var b00 = a00 * a11 - a01 * a10; + var b01 = a00 * a12 - a02 * a10; + var b02 = a00 * a13 - a03 * a10; + var b03 = a01 * a12 - a02 * a11; + var b04 = a01 * a13 - a03 * a11; + var b05 = a02 * a13 - a03 * a12; + var b06 = a20 * a31 - a21 * a30; + var b07 = a20 * a32 - a22 * a30; + var b08 = a20 * a33 - a23 * a30; + var b09 = a21 * a32 - a22 * a31; + var b10 = a21 * a33 - a23 * a31; + var b11 = a22 * a33 - a23 * a32; + + // Calculate the determinant + return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; +} + +/** + * Multiplies two mat4s + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @returns {mat4} out + */ +function multiply(out, a, b) { + var a00 = a[0], + a01 = a[1], + a02 = a[2], + a03 = a[3]; + var a10 = a[4], + a11 = a[5], + a12 = a[6], + a13 = a[7]; + var a20 = a[8], + a21 = a[9], + a22 = a[10], + a23 = a[11]; + var a30 = a[12], + a31 = a[13], + a32 = a[14], + a33 = a[15]; + + // Cache only the current line of the second matrix + var b0 = b[0], + b1 = b[1], + b2 = b[2], + b3 = b[3]; + out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30; + out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31; + out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32; + out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33; + + b0 = b[4];b1 = b[5];b2 = b[6];b3 = b[7]; + out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30; + out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31; + out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32; + out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33; + + b0 = b[8];b1 = b[9];b2 = b[10];b3 = b[11]; + out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30; + out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31; + out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32; + out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33; + + b0 = b[12];b1 = b[13];b2 = b[14];b3 = b[15]; + out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30; + out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31; + out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32; + out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33; + return out; +} + +/** + * Translate a mat4 by the given vector + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to translate + * @param {vec3} v vector to translate by + * @returns {mat4} out + */ +function translate(out, a, v) { + var x = v[0], + y = v[1], + z = v[2]; + var a00 = void 0, + a01 = void 0, + a02 = void 0, + a03 = void 0; + var a10 = void 0, + a11 = void 0, + a12 = void 0, + a13 = void 0; + var a20 = void 0, + a21 = void 0, + a22 = void 0, + a23 = void 0; + + if (a === out) { + out[12] = a[0] * x + a[4] * y + a[8] * z + a[12]; + out[13] = a[1] * x + a[5] * y + a[9] * z + a[13]; + out[14] = a[2] * x + a[6] * y + a[10] * z + a[14]; + out[15] = a[3] * x + a[7] * y + a[11] * z + a[15]; + } else { + a00 = a[0];a01 = a[1];a02 = a[2];a03 = a[3]; + a10 = a[4];a11 = a[5];a12 = a[6];a13 = a[7]; + a20 = a[8];a21 = a[9];a22 = a[10];a23 = a[11]; + + out[0] = a00;out[1] = a01;out[2] = a02;out[3] = a03; + out[4] = a10;out[5] = a11;out[6] = a12;out[7] = a13; + out[8] = a20;out[9] = a21;out[10] = a22;out[11] = a23; + + out[12] = a00 * x + a10 * y + a20 * z + a[12]; + out[13] = a01 * x + a11 * y + a21 * z + a[13]; + out[14] = a02 * x + a12 * y + a22 * z + a[14]; + out[15] = a03 * x + a13 * y + a23 * z + a[15]; + } + + return out; +} + +/** + * Scales the mat4 by the dimensions in the given vec3 not using vectorization + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to scale + * @param {vec3} v the vec3 to scale the matrix by + * @returns {mat4} out + **/ +function scale(out, a, v) { + var x = v[0], + y = v[1], + z = v[2]; + + out[0] = a[0] * x; + out[1] = a[1] * x; + out[2] = a[2] * x; + out[3] = a[3] * x; + out[4] = a[4] * y; + out[5] = a[5] * y; + out[6] = a[6] * y; + out[7] = a[7] * y; + out[8] = a[8] * z; + out[9] = a[9] * z; + out[10] = a[10] * z; + out[11] = a[11] * z; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + return out; +} + +/** + * Rotates a mat4 by the given angle around the given axis + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @param {vec3} axis the axis to rotate around + * @returns {mat4} out + */ +function rotate(out, a, rad, axis) { + var x = axis[0], + y = axis[1], + z = axis[2]; + var len = Math.sqrt(x * x + y * y + z * z); + var s = void 0, + c = void 0, + t = void 0; + var a00 = void 0, + a01 = void 0, + a02 = void 0, + a03 = void 0; + var a10 = void 0, + a11 = void 0, + a12 = void 0, + a13 = void 0; + var a20 = void 0, + a21 = void 0, + a22 = void 0, + a23 = void 0; + var b00 = void 0, + b01 = void 0, + b02 = void 0; + var b10 = void 0, + b11 = void 0, + b12 = void 0; + var b20 = void 0, + b21 = void 0, + b22 = void 0; + + if (Math.abs(len) < glMatrix.EPSILON) { + return null; + } + + len = 1 / len; + x *= len; + y *= len; + z *= len; + + s = Math.sin(rad); + c = Math.cos(rad); + t = 1 - c; + + a00 = a[0];a01 = a[1];a02 = a[2];a03 = a[3]; + a10 = a[4];a11 = a[5];a12 = a[6];a13 = a[7]; + a20 = a[8];a21 = a[9];a22 = a[10];a23 = a[11]; + + // Construct the elements of the rotation matrix + b00 = x * x * t + c;b01 = y * x * t + z * s;b02 = z * x * t - y * s; + b10 = x * y * t - z * s;b11 = y * y * t + c;b12 = z * y * t + x * s; + b20 = x * z * t + y * s;b21 = y * z * t - x * s;b22 = z * z * t + c; + + // Perform rotation-specific matrix multiplication + out[0] = a00 * b00 + a10 * b01 + a20 * b02; + out[1] = a01 * b00 + a11 * b01 + a21 * b02; + out[2] = a02 * b00 + a12 * b01 + a22 * b02; + out[3] = a03 * b00 + a13 * b01 + a23 * b02; + out[4] = a00 * b10 + a10 * b11 + a20 * b12; + out[5] = a01 * b10 + a11 * b11 + a21 * b12; + out[6] = a02 * b10 + a12 * b11 + a22 * b12; + out[7] = a03 * b10 + a13 * b11 + a23 * b12; + out[8] = a00 * b20 + a10 * b21 + a20 * b22; + out[9] = a01 * b20 + a11 * b21 + a21 * b22; + out[10] = a02 * b20 + a12 * b21 + a22 * b22; + out[11] = a03 * b20 + a13 * b21 + a23 * b22; + + if (a !== out) { + // If the source and destination differ, copy the unchanged last row + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + return out; +} + +/** + * Rotates a matrix by the given angle around the X axis + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ +function rotateX(out, a, rad) { + var s = Math.sin(rad); + var c = Math.cos(rad); + var a10 = a[4]; + var a11 = a[5]; + var a12 = a[6]; + var a13 = a[7]; + var a20 = a[8]; + var a21 = a[9]; + var a22 = a[10]; + var a23 = a[11]; + + if (a !== out) { + // If the source and destination differ, copy the unchanged rows + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + + // Perform axis-specific matrix multiplication + out[4] = a10 * c + a20 * s; + out[5] = a11 * c + a21 * s; + out[6] = a12 * c + a22 * s; + out[7] = a13 * c + a23 * s; + out[8] = a20 * c - a10 * s; + out[9] = a21 * c - a11 * s; + out[10] = a22 * c - a12 * s; + out[11] = a23 * c - a13 * s; + return out; +} + +/** + * Rotates a matrix by the given angle around the Y axis + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ +function rotateY(out, a, rad) { + var s = Math.sin(rad); + var c = Math.cos(rad); + var a00 = a[0]; + var a01 = a[1]; + var a02 = a[2]; + var a03 = a[3]; + var a20 = a[8]; + var a21 = a[9]; + var a22 = a[10]; + var a23 = a[11]; + + if (a !== out) { + // If the source and destination differ, copy the unchanged rows + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + + // Perform axis-specific matrix multiplication + out[0] = a00 * c - a20 * s; + out[1] = a01 * c - a21 * s; + out[2] = a02 * c - a22 * s; + out[3] = a03 * c - a23 * s; + out[8] = a00 * s + a20 * c; + out[9] = a01 * s + a21 * c; + out[10] = a02 * s + a22 * c; + out[11] = a03 * s + a23 * c; + return out; +} + +/** + * Rotates a matrix by the given angle around the Z axis + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ +function rotateZ(out, a, rad) { + var s = Math.sin(rad); + var c = Math.cos(rad); + var a00 = a[0]; + var a01 = a[1]; + var a02 = a[2]; + var a03 = a[3]; + var a10 = a[4]; + var a11 = a[5]; + var a12 = a[6]; + var a13 = a[7]; + + if (a !== out) { + // If the source and destination differ, copy the unchanged last row + out[8] = a[8]; + out[9] = a[9]; + out[10] = a[10]; + out[11] = a[11]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + + // Perform axis-specific matrix multiplication + out[0] = a00 * c + a10 * s; + out[1] = a01 * c + a11 * s; + out[2] = a02 * c + a12 * s; + out[3] = a03 * c + a13 * s; + out[4] = a10 * c - a00 * s; + out[5] = a11 * c - a01 * s; + out[6] = a12 * c - a02 * s; + out[7] = a13 * c - a03 * s; + return out; +} + +/** + * Creates a matrix from a vector translation + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, dest, vec); + * + * @param {mat4} out mat4 receiving operation result + * @param {vec3} v Translation vector + * @returns {mat4} out + */ +function fromTranslation(out, v) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = 1; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 1; + out[11] = 0; + out[12] = v[0]; + out[13] = v[1]; + out[14] = v[2]; + out[15] = 1; + return out; +} + +/** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.scale(dest, dest, vec); + * + * @param {mat4} out mat4 receiving operation result + * @param {vec3} v Scaling vector + * @returns {mat4} out + */ +function fromScaling(out, v) { + out[0] = v[0]; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = v[1]; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = v[2]; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; +} + +/** + * Creates a matrix from a given angle around a given axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotate(dest, dest, rad, axis); + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @param {vec3} axis the axis to rotate around + * @returns {mat4} out + */ +function fromRotation(out, rad, axis) { + var x = axis[0], + y = axis[1], + z = axis[2]; + var len = Math.sqrt(x * x + y * y + z * z); + var s = void 0, + c = void 0, + t = void 0; + + if (Math.abs(len) < glMatrix.EPSILON) { + return null; + } + + len = 1 / len; + x *= len; + y *= len; + z *= len; + + s = Math.sin(rad); + c = Math.cos(rad); + t = 1 - c; + + // Perform rotation-specific matrix multiplication + out[0] = x * x * t + c; + out[1] = y * x * t + z * s; + out[2] = z * x * t - y * s; + out[3] = 0; + out[4] = x * y * t - z * s; + out[5] = y * y * t + c; + out[6] = z * y * t + x * s; + out[7] = 0; + out[8] = x * z * t + y * s; + out[9] = y * z * t - x * s; + out[10] = z * z * t + c; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; +} + +/** + * Creates a matrix from the given angle around the X axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotateX(dest, dest, rad); + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ +function fromXRotation(out, rad) { + var s = Math.sin(rad); + var c = Math.cos(rad); + + // Perform axis-specific matrix multiplication + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = c; + out[6] = s; + out[7] = 0; + out[8] = 0; + out[9] = -s; + out[10] = c; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; +} + +/** + * Creates a matrix from the given angle around the Y axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotateY(dest, dest, rad); + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ +function fromYRotation(out, rad) { + var s = Math.sin(rad); + var c = Math.cos(rad); + + // Perform axis-specific matrix multiplication + out[0] = c; + out[1] = 0; + out[2] = -s; + out[3] = 0; + out[4] = 0; + out[5] = 1; + out[6] = 0; + out[7] = 0; + out[8] = s; + out[9] = 0; + out[10] = c; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; +} + +/** + * Creates a matrix from the given angle around the Z axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotateZ(dest, dest, rad); + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ +function fromZRotation(out, rad) { + var s = Math.sin(rad); + var c = Math.cos(rad); + + // Perform axis-specific matrix multiplication + out[0] = c; + out[1] = s; + out[2] = 0; + out[3] = 0; + out[4] = -s; + out[5] = c; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 1; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; +} + +/** + * Creates a matrix from a quaternion rotation and vector translation + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * let quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * + * @param {mat4} out mat4 receiving operation result + * @param {quat4} q Rotation quaternion + * @param {vec3} v Translation vector + * @returns {mat4} out + */ +function fromRotationTranslation(out, q, v) { + // Quaternion math + var x = q[0], + y = q[1], + z = q[2], + w = q[3]; + var x2 = x + x; + var y2 = y + y; + var z2 = z + z; + + var xx = x * x2; + var xy = x * y2; + var xz = x * z2; + var yy = y * y2; + var yz = y * z2; + var zz = z * z2; + var wx = w * x2; + var wy = w * y2; + var wz = w * z2; + + out[0] = 1 - (yy + zz); + out[1] = xy + wz; + out[2] = xz - wy; + out[3] = 0; + out[4] = xy - wz; + out[5] = 1 - (xx + zz); + out[6] = yz + wx; + out[7] = 0; + out[8] = xz + wy; + out[9] = yz - wx; + out[10] = 1 - (xx + yy); + out[11] = 0; + out[12] = v[0]; + out[13] = v[1]; + out[14] = v[2]; + out[15] = 1; + + return out; +} + +/** + * Returns the translation vector component of a transformation + * matrix. If a matrix is built with fromRotationTranslation, + * the returned vector will be the same as the translation vector + * originally supplied. + * @param {vec3} out Vector to receive translation component + * @param {mat4} mat Matrix to be decomposed (input) + * @return {vec3} out + */ +function getTranslation(out, mat) { + out[0] = mat[12]; + out[1] = mat[13]; + out[2] = mat[14]; + + return out; +} + +/** + * Returns the scaling factor component of a transformation + * matrix. If a matrix is built with fromRotationTranslationScale + * with a normalized Quaternion paramter, the returned vector will be + * the same as the scaling vector + * originally supplied. + * @param {vec3} out Vector to receive scaling factor component + * @param {mat4} mat Matrix to be decomposed (input) + * @return {vec3} out + */ +function getScaling(out, mat) { + var m11 = mat[0]; + var m12 = mat[1]; + var m13 = mat[2]; + var m21 = mat[4]; + var m22 = mat[5]; + var m23 = mat[6]; + var m31 = mat[8]; + var m32 = mat[9]; + var m33 = mat[10]; + + out[0] = Math.sqrt(m11 * m11 + m12 * m12 + m13 * m13); + out[1] = Math.sqrt(m21 * m21 + m22 * m22 + m23 * m23); + out[2] = Math.sqrt(m31 * m31 + m32 * m32 + m33 * m33); + + return out; +} + +/** + * Returns a quaternion representing the rotational component + * of a transformation matrix. If a matrix is built with + * fromRotationTranslation, the returned quaternion will be the + * same as the quaternion originally supplied. + * @param {quat} out Quaternion to receive the rotation component + * @param {mat4} mat Matrix to be decomposed (input) + * @return {quat} out + */ +function getRotation(out, mat) { + // Algorithm taken from http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm + var trace = mat[0] + mat[5] + mat[10]; + var S = 0; + + if (trace > 0) { + S = Math.sqrt(trace + 1.0) * 2; + out[3] = 0.25 * S; + out[0] = (mat[6] - mat[9]) / S; + out[1] = (mat[8] - mat[2]) / S; + out[2] = (mat[1] - mat[4]) / S; + } else if (mat[0] > mat[5] && mat[0] > mat[10]) { + S = Math.sqrt(1.0 + mat[0] - mat[5] - mat[10]) * 2; + out[3] = (mat[6] - mat[9]) / S; + out[0] = 0.25 * S; + out[1] = (mat[1] + mat[4]) / S; + out[2] = (mat[8] + mat[2]) / S; + } else if (mat[5] > mat[10]) { + S = Math.sqrt(1.0 + mat[5] - mat[0] - mat[10]) * 2; + out[3] = (mat[8] - mat[2]) / S; + out[0] = (mat[1] + mat[4]) / S; + out[1] = 0.25 * S; + out[2] = (mat[6] + mat[9]) / S; + } else { + S = Math.sqrt(1.0 + mat[10] - mat[0] - mat[5]) * 2; + out[3] = (mat[1] - mat[4]) / S; + out[0] = (mat[8] + mat[2]) / S; + out[1] = (mat[6] + mat[9]) / S; + out[2] = 0.25 * S; + } + + return out; +} + +/** + * Creates a matrix from a quaternion rotation, vector translation and vector scale + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * let quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * mat4.scale(dest, scale) + * + * @param {mat4} out mat4 receiving operation result + * @param {quat4} q Rotation quaternion + * @param {vec3} v Translation vector + * @param {vec3} s Scaling vector + * @returns {mat4} out + */ +function fromRotationTranslationScale(out, q, v, s) { + // Quaternion math + var x = q[0], + y = q[1], + z = q[2], + w = q[3]; + var x2 = x + x; + var y2 = y + y; + var z2 = z + z; + + var xx = x * x2; + var xy = x * y2; + var xz = x * z2; + var yy = y * y2; + var yz = y * z2; + var zz = z * z2; + var wx = w * x2; + var wy = w * y2; + var wz = w * z2; + var sx = s[0]; + var sy = s[1]; + var sz = s[2]; + + out[0] = (1 - (yy + zz)) * sx; + out[1] = (xy + wz) * sx; + out[2] = (xz - wy) * sx; + out[3] = 0; + out[4] = (xy - wz) * sy; + out[5] = (1 - (xx + zz)) * sy; + out[6] = (yz + wx) * sy; + out[7] = 0; + out[8] = (xz + wy) * sz; + out[9] = (yz - wx) * sz; + out[10] = (1 - (xx + yy)) * sz; + out[11] = 0; + out[12] = v[0]; + out[13] = v[1]; + out[14] = v[2]; + out[15] = 1; + + return out; +} + +/** + * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * mat4.translate(dest, origin); + * let quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * mat4.scale(dest, scale) + * mat4.translate(dest, negativeOrigin); + * + * @param {mat4} out mat4 receiving operation result + * @param {quat4} q Rotation quaternion + * @param {vec3} v Translation vector + * @param {vec3} s Scaling vector + * @param {vec3} o The origin vector around which to scale and rotate + * @returns {mat4} out + */ +function fromRotationTranslationScaleOrigin(out, q, v, s, o) { + // Quaternion math + var x = q[0], + y = q[1], + z = q[2], + w = q[3]; + var x2 = x + x; + var y2 = y + y; + var z2 = z + z; + + var xx = x * x2; + var xy = x * y2; + var xz = x * z2; + var yy = y * y2; + var yz = y * z2; + var zz = z * z2; + var wx = w * x2; + var wy = w * y2; + var wz = w * z2; + + var sx = s[0]; + var sy = s[1]; + var sz = s[2]; + + var ox = o[0]; + var oy = o[1]; + var oz = o[2]; + + var out0 = (1 - (yy + zz)) * sx; + var out1 = (xy + wz) * sx; + var out2 = (xz - wy) * sx; + var out4 = (xy - wz) * sy; + var out5 = (1 - (xx + zz)) * sy; + var out6 = (yz + wx) * sy; + var out8 = (xz + wy) * sz; + var out9 = (yz - wx) * sz; + var out10 = (1 - (xx + yy)) * sz; + + out[0] = out0; + out[1] = out1; + out[2] = out2; + out[3] = 0; + out[4] = out4; + out[5] = out5; + out[6] = out6; + out[7] = 0; + out[8] = out8; + out[9] = out9; + out[10] = out10; + out[11] = 0; + out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz); + out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz); + out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz); + out[15] = 1; + + return out; +} + +/** + * Calculates a 4x4 matrix from the given quaternion + * + * @param {mat4} out mat4 receiving operation result + * @param {quat} q Quaternion to create matrix from + * + * @returns {mat4} out + */ +function fromQuat(out, q) { + var x = q[0], + y = q[1], + z = q[2], + w = q[3]; + var x2 = x + x; + var y2 = y + y; + var z2 = z + z; + + var xx = x * x2; + var yx = y * x2; + var yy = y * y2; + var zx = z * x2; + var zy = z * y2; + var zz = z * z2; + var wx = w * x2; + var wy = w * y2; + var wz = w * z2; + + out[0] = 1 - yy - zz; + out[1] = yx + wz; + out[2] = zx - wy; + out[3] = 0; + + out[4] = yx - wz; + out[5] = 1 - xx - zz; + out[6] = zy + wx; + out[7] = 0; + + out[8] = zx + wy; + out[9] = zy - wx; + out[10] = 1 - xx - yy; + out[11] = 0; + + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + + return out; +} + +/** + * Generates a frustum matrix with the given bounds + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {Number} left Left bound of the frustum + * @param {Number} right Right bound of the frustum + * @param {Number} bottom Bottom bound of the frustum + * @param {Number} top Top bound of the frustum + * @param {Number} near Near bound of the frustum + * @param {Number} far Far bound of the frustum + * @returns {mat4} out + */ +function frustum(out, left, right, bottom, top, near, far) { + var rl = 1 / (right - left); + var tb = 1 / (top - bottom); + var nf = 1 / (near - far); + out[0] = near * 2 * rl; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = near * 2 * tb; + out[6] = 0; + out[7] = 0; + out[8] = (right + left) * rl; + out[9] = (top + bottom) * tb; + out[10] = (far + near) * nf; + out[11] = -1; + out[12] = 0; + out[13] = 0; + out[14] = far * near * 2 * nf; + out[15] = 0; + return out; +} + +/** + * Generates a perspective projection matrix with the given bounds + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {number} fovy Vertical field of view in radians + * @param {number} aspect Aspect ratio. typically viewport width/height + * @param {number} near Near bound of the frustum + * @param {number} far Far bound of the frustum + * @returns {mat4} out + */ +function perspective(out, fovy, aspect, near, far) { + var f = 1.0 / Math.tan(fovy / 2); + var nf = 1 / (near - far); + out[0] = f / aspect; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = f; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = (far + near) * nf; + out[11] = -1; + out[12] = 0; + out[13] = 0; + out[14] = 2 * far * near * nf; + out[15] = 0; + return out; +} + +/** + * Generates a perspective projection matrix with the given field of view. + * This is primarily useful for generating projection matrices to be used + * with the still experiemental WebVR API. + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees + * @param {number} near Near bound of the frustum + * @param {number} far Far bound of the frustum + * @returns {mat4} out + */ +function perspectiveFromFieldOfView(out, fov, near, far) { + var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0); + var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0); + var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0); + var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0); + var xScale = 2.0 / (leftTan + rightTan); + var yScale = 2.0 / (upTan + downTan); + + out[0] = xScale; + out[1] = 0.0; + out[2] = 0.0; + out[3] = 0.0; + out[4] = 0.0; + out[5] = yScale; + out[6] = 0.0; + out[7] = 0.0; + out[8] = -((leftTan - rightTan) * xScale * 0.5); + out[9] = (upTan - downTan) * yScale * 0.5; + out[10] = far / (near - far); + out[11] = -1.0; + out[12] = 0.0; + out[13] = 0.0; + out[14] = far * near / (near - far); + out[15] = 0.0; + return out; +} + +/** + * Generates a orthogonal projection matrix with the given bounds + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {number} left Left bound of the frustum + * @param {number} right Right bound of the frustum + * @param {number} bottom Bottom bound of the frustum + * @param {number} top Top bound of the frustum + * @param {number} near Near bound of the frustum + * @param {number} far Far bound of the frustum + * @returns {mat4} out + */ +function ortho(out, left, right, bottom, top, near, far) { + var lr = 1 / (left - right); + var bt = 1 / (bottom - top); + var nf = 1 / (near - far); + out[0] = -2 * lr; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = -2 * bt; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 2 * nf; + out[11] = 0; + out[12] = (left + right) * lr; + out[13] = (top + bottom) * bt; + out[14] = (far + near) * nf; + out[15] = 1; + return out; +} + +/** + * Generates a look-at matrix with the given eye position, focal point, and up axis. + * If you want a matrix that actually makes an object look at another object, you should use targetTo instead. + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {vec3} eye Position of the viewer + * @param {vec3} center Point the viewer is looking at + * @param {vec3} up vec3 pointing up + * @returns {mat4} out + */ +function lookAt(out, eye, center, up) { + var x0 = void 0, + x1 = void 0, + x2 = void 0, + y0 = void 0, + y1 = void 0, + y2 = void 0, + z0 = void 0, + z1 = void 0, + z2 = void 0, + len = void 0; + var eyex = eye[0]; + var eyey = eye[1]; + var eyez = eye[2]; + var upx = up[0]; + var upy = up[1]; + var upz = up[2]; + var centerx = center[0]; + var centery = center[1]; + var centerz = center[2]; + + if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) { + return identity(out); + } + + z0 = eyex - centerx; + z1 = eyey - centery; + z2 = eyez - centerz; + + len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2); + z0 *= len; + z1 *= len; + z2 *= len; + + x0 = upy * z2 - upz * z1; + x1 = upz * z0 - upx * z2; + x2 = upx * z1 - upy * z0; + len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2); + if (!len) { + x0 = 0; + x1 = 0; + x2 = 0; + } else { + len = 1 / len; + x0 *= len; + x1 *= len; + x2 *= len; + } + + y0 = z1 * x2 - z2 * x1; + y1 = z2 * x0 - z0 * x2; + y2 = z0 * x1 - z1 * x0; + + len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2); + if (!len) { + y0 = 0; + y1 = 0; + y2 = 0; + } else { + len = 1 / len; + y0 *= len; + y1 *= len; + y2 *= len; + } + + out[0] = x0; + out[1] = y0; + out[2] = z0; + out[3] = 0; + out[4] = x1; + out[5] = y1; + out[6] = z1; + out[7] = 0; + out[8] = x2; + out[9] = y2; + out[10] = z2; + out[11] = 0; + out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez); + out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez); + out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez); + out[15] = 1; + + return out; +} + +/** + * Generates a matrix that makes something look at something else. + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {vec3} eye Position of the viewer + * @param {vec3} center Point the viewer is looking at + * @param {vec3} up vec3 pointing up + * @returns {mat4} out + */ +function targetTo(out, eye, target, up) { + var eyex = eye[0], + eyey = eye[1], + eyez = eye[2], + upx = up[0], + upy = up[1], + upz = up[2]; + + var z0 = eyex - target[0], + z1 = eyey - target[1], + z2 = eyez - target[2]; + + var len = z0 * z0 + z1 * z1 + z2 * z2; + if (len > 0) { + len = 1 / Math.sqrt(len); + z0 *= len; + z1 *= len; + z2 *= len; + } + + var x0 = upy * z2 - upz * z1, + x1 = upz * z0 - upx * z2, + x2 = upx * z1 - upy * z0; + + len = x0 * x0 + x1 * x1 + x2 * x2; + if (len > 0) { + len = 1 / Math.sqrt(len); + x0 *= len; + x1 *= len; + x2 *= len; + } + + out[0] = x0; + out[1] = x1; + out[2] = x2; + out[3] = 0; + out[4] = z1 * x2 - z2 * x1; + out[5] = z2 * x0 - z0 * x2; + out[6] = z0 * x1 - z1 * x0; + out[7] = 0; + out[8] = z0; + out[9] = z1; + out[10] = z2; + out[11] = 0; + out[12] = eyex; + out[13] = eyey; + out[14] = eyez; + out[15] = 1; + return out; +}; + +/** + * Returns a string representation of a mat4 + * + * @param {mat4} a matrix to represent as a string + * @returns {String} string representation of the matrix + */ +function str(a) { + return 'mat4(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ', ' + a[4] + ', ' + a[5] + ', ' + a[6] + ', ' + a[7] + ', ' + a[8] + ', ' + a[9] + ', ' + a[10] + ', ' + a[11] + ', ' + a[12] + ', ' + a[13] + ', ' + a[14] + ', ' + a[15] + ')'; +} + +/** + * Returns Frobenius norm of a mat4 + * + * @param {mat4} a the matrix to calculate Frobenius norm of + * @returns {Number} Frobenius norm + */ +function frob(a) { + return Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2) + Math.pow(a[9], 2) + Math.pow(a[10], 2) + Math.pow(a[11], 2) + Math.pow(a[12], 2) + Math.pow(a[13], 2) + Math.pow(a[14], 2) + Math.pow(a[15], 2)); +} + +/** + * Adds two mat4's + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @returns {mat4} out + */ +function add(out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + out[2] = a[2] + b[2]; + out[3] = a[3] + b[3]; + out[4] = a[4] + b[4]; + out[5] = a[5] + b[5]; + out[6] = a[6] + b[6]; + out[7] = a[7] + b[7]; + out[8] = a[8] + b[8]; + out[9] = a[9] + b[9]; + out[10] = a[10] + b[10]; + out[11] = a[11] + b[11]; + out[12] = a[12] + b[12]; + out[13] = a[13] + b[13]; + out[14] = a[14] + b[14]; + out[15] = a[15] + b[15]; + return out; +} + +/** + * Subtracts matrix b from matrix a + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @returns {mat4} out + */ +function subtract(out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + out[2] = a[2] - b[2]; + out[3] = a[3] - b[3]; + out[4] = a[4] - b[4]; + out[5] = a[5] - b[5]; + out[6] = a[6] - b[6]; + out[7] = a[7] - b[7]; + out[8] = a[8] - b[8]; + out[9] = a[9] - b[9]; + out[10] = a[10] - b[10]; + out[11] = a[11] - b[11]; + out[12] = a[12] - b[12]; + out[13] = a[13] - b[13]; + out[14] = a[14] - b[14]; + out[15] = a[15] - b[15]; + return out; +} + +/** + * Multiply each element of the matrix by a scalar. + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to scale + * @param {Number} b amount to scale the matrix's elements by + * @returns {mat4} out + */ +function multiplyScalar(out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + out[2] = a[2] * b; + out[3] = a[3] * b; + out[4] = a[4] * b; + out[5] = a[5] * b; + out[6] = a[6] * b; + out[7] = a[7] * b; + out[8] = a[8] * b; + out[9] = a[9] * b; + out[10] = a[10] * b; + out[11] = a[11] * b; + out[12] = a[12] * b; + out[13] = a[13] * b; + out[14] = a[14] * b; + out[15] = a[15] * b; + return out; +} + +/** + * Adds two mat4's after multiplying each element of the second operand by a scalar value. + * + * @param {mat4} out the receiving vector + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @param {Number} scale the amount to scale b's elements by before adding + * @returns {mat4} out + */ +function multiplyScalarAndAdd(out, a, b, scale) { + out[0] = a[0] + b[0] * scale; + out[1] = a[1] + b[1] * scale; + out[2] = a[2] + b[2] * scale; + out[3] = a[3] + b[3] * scale; + out[4] = a[4] + b[4] * scale; + out[5] = a[5] + b[5] * scale; + out[6] = a[6] + b[6] * scale; + out[7] = a[7] + b[7] * scale; + out[8] = a[8] + b[8] * scale; + out[9] = a[9] + b[9] * scale; + out[10] = a[10] + b[10] * scale; + out[11] = a[11] + b[11] * scale; + out[12] = a[12] + b[12] * scale; + out[13] = a[13] + b[13] * scale; + out[14] = a[14] + b[14] * scale; + out[15] = a[15] + b[15] * scale; + return out; +} + +/** + * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) + * + * @param {mat4} a The first matrix. + * @param {mat4} b The second matrix. + * @returns {Boolean} True if the matrices are equal, false otherwise. + */ +function exactEquals(a, b) { + return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15]; +} + +/** + * Returns whether or not the matrices have approximately the same elements in the same position. + * + * @param {mat4} a The first matrix. + * @param {mat4} b The second matrix. + * @returns {Boolean} True if the matrices are equal, false otherwise. + */ +function equals(a, b) { + var a0 = a[0], + a1 = a[1], + a2 = a[2], + a3 = a[3]; + var a4 = a[4], + a5 = a[5], + a6 = a[6], + a7 = a[7]; + var a8 = a[8], + a9 = a[9], + a10 = a[10], + a11 = a[11]; + var a12 = a[12], + a13 = a[13], + a14 = a[14], + a15 = a[15]; + + var b0 = b[0], + b1 = b[1], + b2 = b[2], + b3 = b[3]; + var b4 = b[4], + b5 = b[5], + b6 = b[6], + b7 = b[7]; + var b8 = b[8], + b9 = b[9], + b10 = b[10], + b11 = b[11]; + var b12 = b[12], + b13 = b[13], + b14 = b[14], + b15 = b[15]; + + return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15)); +} + +/** + * Alias for {@link mat4.multiply} + * @function + */ +var mul = exports.mul = multiply; + +/** + * Alias for {@link mat4.subtract} + * @function + */ +var sub = exports.sub = subtract; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.setAxes = exports.sqlerp = exports.rotationTo = exports.equals = exports.exactEquals = exports.normalize = exports.sqrLen = exports.squaredLength = exports.len = exports.length = exports.lerp = exports.dot = exports.scale = exports.mul = exports.add = exports.set = exports.copy = exports.fromValues = exports.clone = undefined; +exports.create = create; +exports.identity = identity; +exports.setAxisAngle = setAxisAngle; +exports.getAxisAngle = getAxisAngle; +exports.multiply = multiply; +exports.rotateX = rotateX; +exports.rotateY = rotateY; +exports.rotateZ = rotateZ; +exports.calculateW = calculateW; +exports.slerp = slerp; +exports.invert = invert; +exports.conjugate = conjugate; +exports.fromMat3 = fromMat3; +exports.fromEuler = fromEuler; +exports.str = str; + +var _common = __webpack_require__(4); + +var glMatrix = _interopRequireWildcard(_common); + +var _mat = __webpack_require__(27); + +var mat3 = _interopRequireWildcard(_mat); + +var _vec = __webpack_require__(12); + +var vec3 = _interopRequireWildcard(_vec); + +var _vec2 = __webpack_require__(28); + +var vec4 = _interopRequireWildcard(_vec2); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +/** + * Quaternion + * @module quat + */ + +/** + * Creates a new identity quat + * + * @returns {quat} a new quaternion + */ +/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +function create() { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = 0; + out[1] = 0; + out[2] = 0; + out[3] = 1; + return out; +} + +/** + * Set a quat to the identity quaternion + * + * @param {quat} out the receiving quaternion + * @returns {quat} out + */ +function identity(out) { + out[0] = 0; + out[1] = 0; + out[2] = 0; + out[3] = 1; + return out; +} + +/** + * Sets a quat from the given angle and rotation axis, + * then returns it. + * + * @param {quat} out the receiving quaternion + * @param {vec3} axis the axis around which to rotate + * @param {Number} rad the angle in radians + * @returns {quat} out + **/ +function setAxisAngle(out, axis, rad) { + rad = rad * 0.5; + var s = Math.sin(rad); + out[0] = s * axis[0]; + out[1] = s * axis[1]; + out[2] = s * axis[2]; + out[3] = Math.cos(rad); + return out; +} + +/** + * Gets the rotation axis and angle for a given + * quaternion. If a quaternion is created with + * setAxisAngle, this method will return the same + * values as providied in the original parameter list + * OR functionally equivalent values. + * Example: The quaternion formed by axis [0, 0, 1] and + * angle -90 is the same as the quaternion formed by + * [0, 0, 1] and 270. This method favors the latter. + * @param {vec3} out_axis Vector receiving the axis of rotation + * @param {quat} q Quaternion to be decomposed + * @return {Number} Angle, in radians, of the rotation + */ +function getAxisAngle(out_axis, q) { + var rad = Math.acos(q[3]) * 2.0; + var s = Math.sin(rad / 2.0); + if (s != 0.0) { + out_axis[0] = q[0] / s; + out_axis[1] = q[1] / s; + out_axis[2] = q[2] / s; + } else { + // If s is zero, return any axis (no rotation - axis does not matter) + out_axis[0] = 1; + out_axis[1] = 0; + out_axis[2] = 0; + } + return rad; +} + +/** + * Multiplies two quat's + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @returns {quat} out + */ +function multiply(out, a, b) { + var ax = a[0], + ay = a[1], + az = a[2], + aw = a[3]; + var bx = b[0], + by = b[1], + bz = b[2], + bw = b[3]; + + out[0] = ax * bw + aw * bx + ay * bz - az * by; + out[1] = ay * bw + aw * by + az * bx - ax * bz; + out[2] = az * bw + aw * bz + ax * by - ay * bx; + out[3] = aw * bw - ax * bx - ay * by - az * bz; + return out; +} + +/** + * Rotates a quaternion by the given angle about the X axis + * + * @param {quat} out quat receiving operation result + * @param {quat} a quat to rotate + * @param {number} rad angle (in radians) to rotate + * @returns {quat} out + */ +function rotateX(out, a, rad) { + rad *= 0.5; + + var ax = a[0], + ay = a[1], + az = a[2], + aw = a[3]; + var bx = Math.sin(rad), + bw = Math.cos(rad); + + out[0] = ax * bw + aw * bx; + out[1] = ay * bw + az * bx; + out[2] = az * bw - ay * bx; + out[3] = aw * bw - ax * bx; + return out; +} + +/** + * Rotates a quaternion by the given angle about the Y axis + * + * @param {quat} out quat receiving operation result + * @param {quat} a quat to rotate + * @param {number} rad angle (in radians) to rotate + * @returns {quat} out + */ +function rotateY(out, a, rad) { + rad *= 0.5; + + var ax = a[0], + ay = a[1], + az = a[2], + aw = a[3]; + var by = Math.sin(rad), + bw = Math.cos(rad); + + out[0] = ax * bw - az * by; + out[1] = ay * bw + aw * by; + out[2] = az * bw + ax * by; + out[3] = aw * bw - ay * by; + return out; +} + +/** + * Rotates a quaternion by the given angle about the Z axis + * + * @param {quat} out quat receiving operation result + * @param {quat} a quat to rotate + * @param {number} rad angle (in radians) to rotate + * @returns {quat} out + */ +function rotateZ(out, a, rad) { + rad *= 0.5; + + var ax = a[0], + ay = a[1], + az = a[2], + aw = a[3]; + var bz = Math.sin(rad), + bw = Math.cos(rad); + + out[0] = ax * bw + ay * bz; + out[1] = ay * bw - ax * bz; + out[2] = az * bw + aw * bz; + out[3] = aw * bw - az * bz; + return out; +} + +/** + * Calculates the W component of a quat from the X, Y, and Z components. + * Assumes that quaternion is 1 unit in length. + * Any existing W component will be ignored. + * + * @param {quat} out the receiving quaternion + * @param {quat} a quat to calculate W component of + * @returns {quat} out + */ +function calculateW(out, a) { + var x = a[0], + y = a[1], + z = a[2]; + + out[0] = x; + out[1] = y; + out[2] = z; + out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z)); + return out; +} + +/** + * Performs a spherical linear interpolation between two quat + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {quat} out + */ +function slerp(out, a, b, t) { + // benchmarks: + // http://jsperf.com/quaternion-slerp-implementations + var ax = a[0], + ay = a[1], + az = a[2], + aw = a[3]; + var bx = b[0], + by = b[1], + bz = b[2], + bw = b[3]; + + var omega = void 0, + cosom = void 0, + sinom = void 0, + scale0 = void 0, + scale1 = void 0; + + // calc cosine + cosom = ax * bx + ay * by + az * bz + aw * bw; + // adjust signs (if necessary) + if (cosom < 0.0) { + cosom = -cosom; + bx = -bx; + by = -by; + bz = -bz; + bw = -bw; + } + // calculate coefficients + if (1.0 - cosom > 0.000001) { + // standard case (slerp) + omega = Math.acos(cosom); + sinom = Math.sin(omega); + scale0 = Math.sin((1.0 - t) * omega) / sinom; + scale1 = Math.sin(t * omega) / sinom; + } else { + // "from" and "to" quaternions are very close + // ... so we can do a linear interpolation + scale0 = 1.0 - t; + scale1 = t; + } + // calculate final values + out[0] = scale0 * ax + scale1 * bx; + out[1] = scale0 * ay + scale1 * by; + out[2] = scale0 * az + scale1 * bz; + out[3] = scale0 * aw + scale1 * bw; + + return out; +} + +/** + * Calculates the inverse of a quat + * + * @param {quat} out the receiving quaternion + * @param {quat} a quat to calculate inverse of + * @returns {quat} out + */ +function invert(out, a) { + var a0 = a[0], + a1 = a[1], + a2 = a[2], + a3 = a[3]; + var dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3; + var invDot = dot ? 1.0 / dot : 0; + + // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0 + + out[0] = -a0 * invDot; + out[1] = -a1 * invDot; + out[2] = -a2 * invDot; + out[3] = a3 * invDot; + return out; +} + +/** + * Calculates the conjugate of a quat + * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result. + * + * @param {quat} out the receiving quaternion + * @param {quat} a quat to calculate conjugate of + * @returns {quat} out + */ +function conjugate(out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + out[2] = -a[2]; + out[3] = a[3]; + return out; +} + +/** + * Creates a quaternion from the given 3x3 rotation matrix. + * + * NOTE: The resultant quaternion is not normalized, so you should be sure + * to renormalize the quaternion yourself where necessary. + * + * @param {quat} out the receiving quaternion + * @param {mat3} m rotation matrix + * @returns {quat} out + * @function + */ +function fromMat3(out, m) { + // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes + // article "Quaternion Calculus and Fast Animation". + var fTrace = m[0] + m[4] + m[8]; + var fRoot = void 0; + + if (fTrace > 0.0) { + // |w| > 1/2, may as well choose w > 1/2 + fRoot = Math.sqrt(fTrace + 1.0); // 2w + out[3] = 0.5 * fRoot; + fRoot = 0.5 / fRoot; // 1/(4w) + out[0] = (m[5] - m[7]) * fRoot; + out[1] = (m[6] - m[2]) * fRoot; + out[2] = (m[1] - m[3]) * fRoot; + } else { + // |w| <= 1/2 + var i = 0; + if (m[4] > m[0]) i = 1; + if (m[8] > m[i * 3 + i]) i = 2; + var j = (i + 1) % 3; + var k = (i + 2) % 3; + + fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0); + out[i] = 0.5 * fRoot; + fRoot = 0.5 / fRoot; + out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot; + out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot; + out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot; + } + + return out; +} + +/** + * Creates a quaternion from the given euler angle x, y, z. + * + * @param {quat} out the receiving quaternion + * @param {x} Angle to rotate around X axis in degrees. + * @param {y} Angle to rotate around Y axis in degrees. + * @param {z} Angle to rotate around Z axis in degrees. + * @returns {quat} out + * @function + */ +function fromEuler(out, x, y, z) { + var halfToRad = 0.5 * Math.PI / 180.0; + x *= halfToRad; + y *= halfToRad; + z *= halfToRad; + + var sx = Math.sin(x); + var cx = Math.cos(x); + var sy = Math.sin(y); + var cy = Math.cos(y); + var sz = Math.sin(z); + var cz = Math.cos(z); + + out[0] = sx * cy * cz - cx * sy * sz; + out[1] = cx * sy * cz + sx * cy * sz; + out[2] = cx * cy * sz - sx * sy * cz; + out[3] = cx * cy * cz + sx * sy * sz; + + return out; +} + +/** + * Returns a string representation of a quatenion + * + * @param {quat} a vector to represent as a string + * @returns {String} string representation of the vector + */ +function str(a) { + return 'quat(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')'; +} + +/** + * Creates a new quat initialized with values from an existing quaternion + * + * @param {quat} a quaternion to clone + * @returns {quat} a new quaternion + * @function + */ +var clone = exports.clone = vec4.clone; + +/** + * Creates a new quat initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {quat} a new quaternion + * @function + */ +var fromValues = exports.fromValues = vec4.fromValues; + +/** + * Copy the values from one quat to another + * + * @param {quat} out the receiving quaternion + * @param {quat} a the source quaternion + * @returns {quat} out + * @function + */ +var copy = exports.copy = vec4.copy; + +/** + * Set the components of a quat to the given values + * + * @param {quat} out the receiving quaternion + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {quat} out + * @function + */ +var set = exports.set = vec4.set; + +/** + * Adds two quat's + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @returns {quat} out + * @function + */ +var add = exports.add = vec4.add; + +/** + * Alias for {@link quat.multiply} + * @function + */ +var mul = exports.mul = multiply; + +/** + * Scales a quat by a scalar number + * + * @param {quat} out the receiving vector + * @param {quat} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {quat} out + * @function + */ +var scale = exports.scale = vec4.scale; + +/** + * Calculates the dot product of two quat's + * + * @param {quat} a the first operand + * @param {quat} b the second operand + * @returns {Number} dot product of a and b + * @function + */ +var dot = exports.dot = vec4.dot; + +/** + * Performs a linear interpolation between two quat's + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {quat} out + * @function + */ +var lerp = exports.lerp = vec4.lerp; + +/** + * Calculates the length of a quat + * + * @param {quat} a vector to calculate length of + * @returns {Number} length of a + */ +var length = exports.length = vec4.length; + +/** + * Alias for {@link quat.length} + * @function + */ +var len = exports.len = length; + +/** + * Calculates the squared length of a quat + * + * @param {quat} a vector to calculate squared length of + * @returns {Number} squared length of a + * @function + */ +var squaredLength = exports.squaredLength = vec4.squaredLength; + +/** + * Alias for {@link quat.squaredLength} + * @function + */ +var sqrLen = exports.sqrLen = squaredLength; + +/** + * Normalize a quat + * + * @param {quat} out the receiving quaternion + * @param {quat} a quaternion to normalize + * @returns {quat} out + * @function + */ +var normalize = exports.normalize = vec4.normalize; + +/** + * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===) + * + * @param {quat} a The first quaternion. + * @param {quat} b The second quaternion. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ +var exactEquals = exports.exactEquals = vec4.exactEquals; + +/** + * Returns whether or not the quaternions have approximately the same elements in the same position. + * + * @param {quat} a The first vector. + * @param {quat} b The second vector. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ +var equals = exports.equals = vec4.equals; + +/** + * Sets a quaternion to represent the shortest rotation from one + * vector to another. + * + * Both vectors are assumed to be unit length. + * + * @param {quat} out the receiving quaternion. + * @param {vec3} a the initial vector + * @param {vec3} b the destination vector + * @returns {quat} out + */ +var rotationTo = exports.rotationTo = function () { + var tmpvec3 = vec3.create(); + var xUnitVec3 = vec3.fromValues(1, 0, 0); + var yUnitVec3 = vec3.fromValues(0, 1, 0); + + return function (out, a, b) { + var dot = vec3.dot(a, b); + if (dot < -0.999999) { + vec3.cross(tmpvec3, xUnitVec3, a); + if (vec3.len(tmpvec3) < 0.000001) vec3.cross(tmpvec3, yUnitVec3, a); + vec3.normalize(tmpvec3, tmpvec3); + setAxisAngle(out, tmpvec3, Math.PI); + return out; + } else if (dot > 0.999999) { + out[0] = 0; + out[1] = 0; + out[2] = 0; + out[3] = 1; + return out; + } else { + vec3.cross(tmpvec3, a, b); + out[0] = tmpvec3[0]; + out[1] = tmpvec3[1]; + out[2] = tmpvec3[2]; + out[3] = 1 + dot; + return normalize(out, out); + } + }; +}(); + +/** + * Performs a spherical linear interpolation with two control points + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @param {quat} c the third operand + * @param {quat} d the fourth operand + * @param {Number} t interpolation amount + * @returns {quat} out + */ +var sqlerp = exports.sqlerp = function () { + var temp1 = create(); + var temp2 = create(); + + return function (out, a, b, c, d, t) { + slerp(temp1, a, d, t); + slerp(temp2, b, c, t); + slerp(out, temp1, temp2, 2 * t * (1 - t)); + + return out; + }; +}(); + +/** + * Sets the specified quaternion with values corresponding to the given + * axes. Each axis is a vec3 and is expected to be unit length and + * perpendicular to all other specified axes. + * + * @param {vec3} view the vector representing the viewing direction + * @param {vec3} right the vector representing the local "right" direction + * @param {vec3} up the vector representing the local "up" direction + * @returns {quat} out + */ +var setAxes = exports.setAxes = function () { + var matr = mat3.create(); + + return function (out, view, right, up) { + matr[0] = right[0]; + matr[3] = right[1]; + matr[6] = right[2]; + + matr[1] = up[0]; + matr[4] = up[1]; + matr[7] = up[2]; + + matr[2] = -view[0]; + matr[5] = -view[1]; + matr[8] = -view[2]; + + return normalize(out, fromMat3(out, matr)); + }; +}(); + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +Copyright (c) 2011, Daniel Guerrero +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL DANIEL GUERRERO BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Uses the new array typed in javascript to binary base64 encode/decode + * at the moment just decodes a binary base64 encoded + * into either an ArrayBuffer (decodeArrayBuffer) + * or into an Uint8Array (decode) + * + * References: + * https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer + * https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array + */ + +var base64 = function () { + function base64() { + _classCallCheck(this, base64); + } + + _createClass(base64, null, [{ + key: 'decodeLength', + value: function decodeLength(input) { + return input.length / 4 * 3; + } + + /* will return a Uint8Array type */ + + }, { + key: 'decodeArrayBuffer', + value: function decodeArrayBuffer(input, buffer) { + var bytes = input.length / 4 * 3; + if (!buffer || buffer.byteLength != bytes) { + // replace the buffer with a new, appropriately sized one + buffer = new ArrayBuffer(bytes); + } + this.decode(input, buffer); + + return buffer; + } + }, { + key: 'removePaddingChars', + value: function removePaddingChars(input) { + var lkey = this._keyStr.indexOf(input.charAt(input.length - 1)); + if (lkey == 64) { + return input.substring(0, input.length - 1); + } + return input; + } + }, { + key: 'decode', + value: function decode(input, arrayBuffer) { + //get last chars to see if are valid + input = this.removePaddingChars(input); + input = this.removePaddingChars(input); + + var bytes = parseInt(input.length / 4 * 3, 10); + + var uarray; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + var j = 0; + + if (arrayBuffer) uarray = new Uint8Array(arrayBuffer);else uarray = new Uint8Array(bytes); + + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + + for (i = 0; i < bytes; i += 3) { + //get the 3 octects in 4 ascii chars + enc1 = this._keyStr.indexOf(input.charAt(j++)); + enc2 = this._keyStr.indexOf(input.charAt(j++)); + enc3 = this._keyStr.indexOf(input.charAt(j++)); + enc4 = this._keyStr.indexOf(input.charAt(j++)); + + chr1 = enc1 << 2 | enc2 >> 4; + chr2 = (enc2 & 15) << 4 | enc3 >> 2; + chr3 = (enc3 & 3) << 6 | enc4; + + uarray[i] = chr1; + if (enc3 != 64) uarray[i + 1] = chr2; + if (enc4 != 64) uarray[i + 2] = chr3; + } + + return uarray; + } + + // pass in a typedArray, ArrayBuffer, or ImageData object + + }, { + key: 'encode', + value: function encode(buffer) { + var base64 = ''; + var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + + var bytes = buffer; // assume it's a typedArrayBuffer + + if (buffer instanceof ArrayBuffer) { + bytes = new Uint8Array(arrayBuffer); + } else if (buffer instanceof ImageData) { + bytes = buffer.data; + } + + var byteLength = buffer.length; + var byteRemainder = byteLength % 3; + var mainLength = byteLength - byteRemainder; + + var a, b, c, d; + var chunk; + + // Main loop deals with bytes in chunks of 3 + for (var i = 0; i < mainLength; i = i + 3) { + // Combine the three bytes into a single integer + chunk = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2]; + + // Use bitmasks to extract 6-bit segments from the triplet + a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18 + b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12 + c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6 + d = chunk & 63; // 63 = 2^6 - 1 + + // Convert the raw binary segments to the appropriate ASCII encoding + base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]; + } + + // Deal with the remaining bytes and padding + if (byteRemainder == 1) { + chunk = bytes[mainLength]; + + a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2 + + // Set the 4 least significant bits to zero + b = (chunk & 3) << 4; // 3 = 2^2 - 1 + + base64 += encodings[a] + encodings[b] + '=='; + } else if (byteRemainder == 2) { + chunk = bytes[mainLength] << 8 | bytes[mainLength + 1]; + + a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10 + b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4 + + // Set the 2 least significant bits to zero + c = (chunk & 15) << 2; // 15 = 2^4 - 1 + + base64 += encodings[a] + encodings[b] + encodings[c] + '='; + } + + return base64; + } + }]); + + return base64; +}(); + +exports.default = base64; + +base64._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRLightEstimate represents the attributes of environmental light as supplied by the device's sensors. +*/ +var XRLightEstimate = function () { + function XRLightEstimate() { + _classCallCheck(this, XRLightEstimate); + + this._ambientLightIntensity = 1; + } + + _createClass(XRLightEstimate, [{ + key: 'getAmbientColorTemperature', + value: function getAmbientColorTemperature() { + //readonly attribute double ambientColorTemperature; + throw new Error('Not implemented'); + } + }, { + key: 'ambientIntensity', + set: function set(value) { + // A value of 1000 represents "neutral" lighting. (https://developer.apple.com/documentation/arkit/arlightestimate/2878308-ambientintensity) + this._ambientLightIntensity = value / 1000; + }, + get: function get() { + //readonly attribute double ambientIntensity; + return this._ambientLightIntensity; + } + }]); + + return XRLightEstimate; +}(); + +exports.default = XRLightEstimate; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +var _Quaternion = __webpack_require__(2); + +var _Quaternion2 = _interopRequireDefault(_Quaternion); + +var _XRAnchor = __webpack_require__(1); + +var _XRAnchor2 = _interopRequireDefault(_XRAnchor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRAnchorOffset represents a pose in relation to an XRAnchor +*/ +var XRAnchorOffset = function () { + function XRAnchorOffset(anchorUID) { + var poseMatrix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + _classCallCheck(this, XRAnchorOffset); + + this._anchorUID = anchorUID; + this._tempArray = new Float32Array(16); + this._poseMatrix = poseMatrix || _MatrixMath2.default.mat4_generateIdentity(); + } + + _createClass(XRAnchorOffset, [{ + key: 'setIdentityOffset', + value: function setIdentityOffset() { + var p = this._poseMatrix; + p[0] = p[5] = p[10] = p[15] = 1; + p[1] = p[2] = p[3] = 0; + p[4] = p[6] = p[7] = 0; + p[8] = p[9] = p[11] = 0; + p[12] = p[13] = p[14] = 0; + } + }, { + key: 'getOffsetTransform', + + + /* + Return a transform matrix that is offset by this XRAnchorOffset.poseMatrix relative to coordinateSystem + */ + value: function getOffsetTransform(coordinateSystem) { + return _MatrixMath2.default.mat4_multiply(this._tempArray, this._poseMatrix, coordinateSystem._poseModelMatrix); + } + }, { + key: 'anchorUID', + get: function get() { + return this._anchorUID; + } + + /* + A Float32Array(16) representing a column major affine transform matrix + */ + + }, { + key: 'poseMatrix', + get: function get() { + return this._poseMatrix; + }, + set: function set(array16) { + for (var i = 0; i < 16; i++) { + this._poseMatrix[i] = array16[i]; + } + } + + /* + returns a Float32Array(4) representing an x, y, z position from this.poseMatrix + */ + + }, { + key: 'position', + get: function get() { + return new Float32Array([this._poseMatrix[12], this._poseMatrix[13], this._poseMatrix[14]]); + } + + /* + returns a Float32Array(4) representing x, y, z, w of a quaternion from this.poseMatrix + */ + + }, { + key: 'orientation', + get: function get() { + var quat = new _Quaternion2.default(); + quat.setFromRotationMatrix(this._poseMatrix); + return quat.toArray(); + } + }]); + + return XRAnchorOffset; +}(); + +exports.default = XRAnchorOffset; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRViewport represents the dimensions in pixels of an XRView. +*/ +var XRViewport = function () { + function XRViewport(x, y, width, height) { + _classCallCheck(this, XRViewport); + + this._x = x; + this._y = y; + this._width = width; + this._height = height; + } + + _createClass(XRViewport, [{ + key: "x", + get: function get() { + return this._x; + }, + set: function set(value) { + this._x = value; + } + }, { + key: "y", + get: function get() { + return this._y; + }, + set: function set(value) { + this._y = value; + } + }, { + key: "width", + get: function get() { + return this._width; + }, + set: function set(value) { + this._width = value; + } + }, { + key: "height", + get: function get() { + return this._height; + }, + set: function set(value) { + this._height = value; + } + }]); + + return XRViewport; +}(); + +exports.default = XRViewport; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _EventHandlerBase2 = __webpack_require__(3); + +var _EventHandlerBase3 = _interopRequireDefault(_EventHandlerBase2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +XRLayer defines a source of bitmap images and a description of how the image is to be rendered in the XRDisplay +*/ +var XRLayer = function (_EventHandlerBase) { + _inherits(XRLayer, _EventHandlerBase); + + function XRLayer() { + _classCallCheck(this, XRLayer); + + return _possibleConstructorReturn(this, (XRLayer.__proto__ || Object.getPrototypeOf(XRLayer)).apply(this, arguments)); + } + + return XRLayer; +}(_EventHandlerBase3.default); + +exports.default = XRLayer; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _EventHandlerBase2 = __webpack_require__(3); + +var _EventHandlerBase3 = _interopRequireDefault(_EventHandlerBase2); + +var _Vector = __webpack_require__(15); + +var _Vector2 = _interopRequireDefault(_Vector); + +var _Quaternion = __webpack_require__(2); + +var _Quaternion2 = _interopRequireDefault(_Quaternion); + +var _Euler = __webpack_require__(38); + +var _Euler2 = _interopRequireDefault(_Euler); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +DeviceOrientationTracker keeps track of device orientation, which can be queried usnig `getOrientation` +*/ +var DeviceOrientationTracker = function (_EventHandlerBase) { + _inherits(DeviceOrientationTracker, _EventHandlerBase); + + function DeviceOrientationTracker() { + _classCallCheck(this, DeviceOrientationTracker); + + var _this = _possibleConstructorReturn(this, (DeviceOrientationTracker.__proto__ || Object.getPrototypeOf(DeviceOrientationTracker)).call(this)); + + _this._deviceOrientation = null; + _this._windowOrientation = 0; + + window.addEventListener('orientationchange', function () { + _this._windowOrientation = window.orientation || 0; + }, false); + window.addEventListener('deviceorientation', function (ev) { + _this._deviceOrientation = ev; + try { + _this.dispatchEvent(new CustomEvent(DeviceOrientationTracker.ORIENTATION_UPDATE_EVENT, { + deviceOrientation: _this._deviceOrientation, + windowOrientation: _this._windowOrientation + })); + } catch (e) { + console.error('deviceorientation event handler error', e); + } + }, false); + return _this; + } + + /* + getOrientation sets the value of outQuaternion to the most recently tracked device orientation + returns true if a device orientation has been received, otherwise false + */ + + + _createClass(DeviceOrientationTracker, [{ + key: 'getOrientation', + value: function getOrientation(outQuaternion) { + if (this._deviceOrientation === null) { + outQuaternion.set(0, 0, 0, 1); + return false; + } + DeviceOrientationTracker.WORKING_EULER.set(this._deviceOrientation.beta * DeviceOrientationTracker.DEG_TO_RAD, this._deviceOrientation.alpha * DeviceOrientationTracker.DEG_TO_RAD, -1 * this._deviceOrientation.gamma * DeviceOrientationTracker.DEG_TO_RAD, 'YXZ'); + outQuaternion.setFromEuler(DeviceOrientationTracker.WORKING_EULER.x, DeviceOrientationTracker.WORKING_EULER.y, DeviceOrientationTracker.WORKING_EULER.z, DeviceOrientationTracker.WORKING_EULER.order); + outQuaternion.multiply(DeviceOrientationTracker.HALF_PI_AROUND_X); + outQuaternion.multiply(DeviceOrientationTracker.WORKING_QUATERNION.setFromAxisAngle(DeviceOrientationTracker.Z_AXIS, -this._windowOrientation * DeviceOrientationTracker.DEG_TO_RAD)); + return true; + } + }]); + + return DeviceOrientationTracker; +}(_EventHandlerBase3.default); + +exports.default = DeviceOrientationTracker; + + +DeviceOrientationTracker.ORIENTATION_UPDATE_EVENT = 'orientation-update'; + +DeviceOrientationTracker.Z_AXIS = new _Vector2.default(0, 0, 1); +DeviceOrientationTracker.WORKING_EULER = new _Euler2.default(); +DeviceOrientationTracker.WORKING_QUATERNION = new _Quaternion2.default(); +DeviceOrientationTracker.HALF_PI_AROUND_X = new _Quaternion2.default(-Math.sqrt(0.5), 0, 0, Math.sqrt(0.5)); +DeviceOrientationTracker.DEG_TO_RAD = Math.PI / 180; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _XRDisplay2 = __webpack_require__(6); + +var _XRDisplay3 = _interopRequireDefault(_XRDisplay2); + +var _XRSession2 = __webpack_require__(11); + +var _XRSession3 = _interopRequireDefault(_XRSession2); + +var _XRSessionCreateParameters2 = __webpack_require__(29); + +var _XRSessionCreateParameters3 = _interopRequireDefault(_XRSessionCreateParameters2); + +var _Reality2 = __webpack_require__(7); + +var _Reality3 = _interopRequireDefault(_Reality2); + +var _XRPointCloud2 = __webpack_require__(30); + +var _XRPointCloud3 = _interopRequireDefault(_XRPointCloud2); + +var _XRLightEstimate2 = __webpack_require__(20); + +var _XRLightEstimate3 = _interopRequireDefault(_XRLightEstimate2); + +var _XRAnchor2 = __webpack_require__(1); + +var _XRAnchor3 = _interopRequireDefault(_XRAnchor2); + +var _XRPlaneAnchor2 = __webpack_require__(10); + +var _XRPlaneAnchor3 = _interopRequireDefault(_XRPlaneAnchor2); + +var _XRFaceAnchor2 = __webpack_require__(8); + +var _XRFaceAnchor3 = _interopRequireDefault(_XRFaceAnchor2); + +var _XRImageAnchor2 = __webpack_require__(9); + +var _XRImageAnchor3 = _interopRequireDefault(_XRImageAnchor2); + +var _XRAnchorOffset2 = __webpack_require__(21); + +var _XRAnchorOffset3 = _interopRequireDefault(_XRAnchorOffset2); + +var _XRStageBounds2 = __webpack_require__(31); + +var _XRStageBounds3 = _interopRequireDefault(_XRStageBounds2); + +var _XRStageBoundsPoint2 = __webpack_require__(32); + +var _XRStageBoundsPoint3 = _interopRequireDefault(_XRStageBoundsPoint2); + +var _XRPresentationFrame2 = __webpack_require__(33); + +var _XRPresentationFrame3 = _interopRequireDefault(_XRPresentationFrame2); + +var _XRView2 = __webpack_require__(13); + +var _XRView3 = _interopRequireDefault(_XRView2); + +var _XRViewport2 = __webpack_require__(22); + +var _XRViewport3 = _interopRequireDefault(_XRViewport2); + +var _XRCoordinateSystem2 = __webpack_require__(34); + +var _XRCoordinateSystem3 = _interopRequireDefault(_XRCoordinateSystem2); + +var _XRViewPose2 = __webpack_require__(14); + +var _XRViewPose3 = _interopRequireDefault(_XRViewPose2); + +var _XRLayer2 = __webpack_require__(23); + +var _XRLayer3 = _interopRequireDefault(_XRLayer2); + +var _XRWebGLLayer2 = __webpack_require__(35); + +var _XRWebGLLayer3 = _interopRequireDefault(_XRWebGLLayer2); + +var _XRVideoFrame2 = __webpack_require__(36); + +var _XRVideoFrame3 = _interopRequireDefault(_XRVideoFrame2); + +var _EventHandlerBase2 = __webpack_require__(3); + +var _EventHandlerBase3 = _interopRequireDefault(_EventHandlerBase2); + +var _FlatDisplay = __webpack_require__(37); + +var _FlatDisplay2 = _interopRequireDefault(_FlatDisplay); + +var _HeadMountedDisplay = __webpack_require__(39); + +var _HeadMountedDisplay2 = _interopRequireDefault(_HeadMountedDisplay); + +var _CameraReality = __webpack_require__(40); + +var _CameraReality2 = _interopRequireDefault(_CameraReality); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +XRPolyfill implements the window.XR functionality as a polyfill + +Code below will check for window.XR and if it doesn't exist will install this polyfill, +so you can safely include this script in any page. +*/ +var XRPolyfill = function (_EventHandlerBase) { + _inherits(XRPolyfill, _EventHandlerBase); + + function XRPolyfill() { + _classCallCheck(this, XRPolyfill); + + var _this = _possibleConstructorReturn(this, (XRPolyfill.__proto__ || Object.getPrototypeOf(XRPolyfill)).call(this)); + + window.XRDisplay = _XRDisplay3.default; + window.XRSession = _XRSession3.default; + window.XRSessionCreateParameters = _XRSessionCreateParameters3.default; + window.Reality = _Reality3.default; + window.XRPointCloud = _XRPointCloud3.default; + window.XRLightEstimate = _XRLightEstimate3.default; + window.XRAnchor = _XRAnchor3.default; + window.XRPlaneAnchor = _XRPlaneAnchor3.default; + window.XRFaceAnchor = _XRFaceAnchor3.default; + window.XRImageAnchor = _XRImageAnchor3.default; + window.XRAnchorOffset = _XRAnchorOffset3.default; + window.XRStageBounds = _XRStageBounds3.default; + window.XRStageBoundsPoint = _XRStageBoundsPoint3.default; + window.XRPresentationFrame = _XRPresentationFrame3.default; + window.XRView = _XRView3.default; + window.XRViewport = _XRViewport3.default; + window.XRCoordinateSystem = _XRCoordinateSystem3.default; + window.XRViewPose = _XRViewPose3.default; + window.XRLayer = _XRLayer3.default; + window.XRWebGLLayer = _XRWebGLLayer3.default; + window.XRVideoFrame = _XRVideoFrame3.default; + + XRDisplay = window.XRDisplay; + XRSession = window.XRSession; + XRSessionCreateParameters = window.XRSessionCreateParameters; + Reality = window.Reality; + XRPointCloud = window.XRPointCloud; + XRLightEstimate = window.XRLightEstimate; + XRAnchor = window.XRAnchor; + XRPlaneAnchor = window.XRPlaneAnchor; + XRFaceAnchor = window.XRFaceAnchor; + XRImageAnchor = window.XRImageAnchor; + XRAnchorOffset = window.XRAnchorOffset; + XRStageBounds = window.XRStageBounds; + XRStageBoundsPoint = window.XRStageBoundsPoint; + XRPresentationFrame = window.XRPresentationFrame; + XRView = window.XRView; + XRViewport = window.XRViewport; + XRCoordinateSystem = window.XRCoordinateSystem; + XRViewPose = window.XRViewPose; + XRLayer = window.XRLayer; + XRWebGLLayer = window.XRWebGLLayer; + XRVideoFrame = window.XRVideoFrame; + + _this._getVRDisplaysFinished = false; + + // Reality instances that may be shared by multiple XRSessions + _this._sharedRealities = [new _CameraReality2.default(_this)]; + _this._privateRealities = []; + + _this._displays = [new _FlatDisplay2.default(_this, _this._sharedRealities[0])]; + + if (typeof navigator.getVRDisplays === 'function') { + navigator.getVRDisplays().then(function (displays) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = displays[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var display = _step.value; + + if (display === null) continue; + if (display.capabilities.canPresent) { + _this._displays.push(new _HeadMountedDisplay2.default(_this, _this._sharedRealities[0], display)); + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + _this._getVRDisplaysFinished = true; + }); + } else { + // if no WebVR, we don't need to wait + _this._getVRDisplaysFinished = true; + } + + // These elements are at the beginning of the body and absolutely positioned to fill the entire window + // Sessions and realities add their elements to these divs so that they are in the right render order + _this._sessionEls = document.createElement('div'); + _this._sessionEls.setAttribute('class', 'webxr-sessions'); + _this._realityEls = document.createElement('div'); + _this._realityEls.setAttribute('class', 'webxr-realities'); + var _arr = [_this._sessionEls, _this._realityEls]; + for (var _i = 0; _i < _arr.length; _i++) { + var el = _arr[_i]; + el.style.position = 'absolute'; + el.style.width = '100%'; + el.style.height = '100%'; + } + + var prependElements = function prependElements() { + document.body.style.width = '100%'; + document.body.style.height = '100%'; + document.body.prepend(_this._sessionEls); + document.body.prepend(_this._realityEls); // realities must render behind the sessions + }; + + if (document.readyState !== 'loading') { + prependElements(); + } else { + document.addEventListener('DOMContentLoaded', prependElements); + } + return _this; + } + + _createClass(XRPolyfill, [{ + key: 'getDisplays', + value: function getDisplays() { + var self = this; + var waitTillDisplaysChecked = function waitTillDisplaysChecked(resolve) { + if (!self._getVRDisplaysFinished) { + setTimeout(waitTillDisplaysChecked.bind(self, resolve), 30); + } else { + resolve(self._displays); + } + }; + return new Promise(function (resolve, reject) { + waitTillDisplaysChecked(resolve); + }); + } + + //attribute EventHandler ondisplayconnect; + //attribute EventHandler ondisplaydisconnect; + + }]); + + return XRPolyfill; +}(_EventHandlerBase3.default); + +/* Install XRPolyfill if window.XR does not exist */ + + +if (typeof navigator.XR === 'undefined') { + navigator.XR = new XRPolyfill(); +} + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _Reality2 = __webpack_require__(7); + +var _Reality3 = _interopRequireDefault(_Reality2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +VirtualReality is a Reality that is empty and waiting for fanstastic CG scenes. +*/ +var VirtualReality = function (_Reality) { + _inherits(VirtualReality, _Reality); + + function VirtualReality(xr) { + _classCallCheck(this, VirtualReality); + + return _possibleConstructorReturn(this, (VirtualReality.__proto__ || Object.getPrototypeOf(VirtualReality)).call(this, xr, 'Virtual', false, false)); + } + + /* + Called when at least one active XRSession is using this Reality + */ + + + _createClass(VirtualReality, [{ + key: '_start', + value: function _start(parameters) {} + + /* + Called when no more active XRSessions are using this Reality + */ + + }, { + key: '_stop', + value: function _stop() {} + + /* + Called by a session before it hands a new XRPresentationFrame to the app + */ + + }, { + key: '_handleNewFrame', + value: function _handleNewFrame() {} + + /* + Create an anchor hung in space + */ + + }, { + key: '_addAnchor', + value: function _addAnchor(anchor, display) { + this._anchors.set(anchor.uid, anchor); + return anchor.uid; + } + + /* + Create an anchor attached to a surface, as found by a ray + normalized screen x and y are in range 0..1, with 0,0 at top left and 1,1 at bottom right + */ + + }, { + key: '_findAnchor', + value: function _findAnchor(normalizedScreenX, normalizedScreenY, display) { + var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + return new Promise(function (resolve, reject) { + resolve(null); + }); + } + }, { + key: '_removeAnchor', + value: function _removeAnchor(uid) { + this._anchors.delete(uid); + } + }, { + key: '_hitTestNoAnchor', + value: function _hitTestNoAnchor(normalizedScreenX, normalizedScreenY, display) { + return null; + } + }, { + key: '_getHasLightEstimate', + value: function _getHasLightEstimate() { + return false; + } + + /* + Find an XRAnchorOffset that is at floor level below the current head pose + returns a Promise that resolves either to an AnchorOffset or null if the floor level is unknown + */ + + }, { + key: '_findFloorAnchor', + value: function _findFloorAnchor(display) { + var _this2 = this; + + var uid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + // Copy the head model matrix for the current pose so we have it in the promise below + var headModelMatrix = new Float32Array(display._headPose.poseModelMatrix); + return new Promise(function (resolve, reject) { + // For now, just create an anchor at origin level. Probably want to use stage more intelligently + headModelMatrix[13] = 0; + var coordinateSystem = new XRCoordinateSystem(display, XRCoordinateSystem.TRACKER); + coordinateSystem._relativeMatrix = headModelMatrix; + var anchor = new XRAnchor(coordinateSystem, uid); + _this2._addAnchor(anchor, display); + resolve(new XRAnchorOffset(anchor.uid)); + }); + } + }, { + key: '_getTimeStamp', + value: function _getTimeStamp(timestamp) { + return timestamp; + } + }]); + + return VirtualReality; +}(_Reality3.default); + +exports.default = VirtualReality; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.sub = exports.mul = undefined; +exports.create = create; +exports.fromMat4 = fromMat4; +exports.clone = clone; +exports.copy = copy; +exports.fromValues = fromValues; +exports.set = set; +exports.identity = identity; +exports.transpose = transpose; +exports.invert = invert; +exports.adjoint = adjoint; +exports.determinant = determinant; +exports.multiply = multiply; +exports.translate = translate; +exports.rotate = rotate; +exports.scale = scale; +exports.fromTranslation = fromTranslation; +exports.fromRotation = fromRotation; +exports.fromScaling = fromScaling; +exports.fromMat2d = fromMat2d; +exports.fromQuat = fromQuat; +exports.normalFromMat4 = normalFromMat4; +exports.projection = projection; +exports.str = str; +exports.frob = frob; +exports.add = add; +exports.subtract = subtract; +exports.multiplyScalar = multiplyScalar; +exports.multiplyScalarAndAdd = multiplyScalarAndAdd; +exports.exactEquals = exactEquals; +exports.equals = equals; + +var _common = __webpack_require__(4); + +var glMatrix = _interopRequireWildcard(_common); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +/** + * 3x3 Matrix + * @module mat3 + */ + +/** + * Creates a new identity mat3 + * + * @returns {mat3} a new 3x3 matrix + */ +function create() { + var out = new glMatrix.ARRAY_TYPE(9); + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 1; + out[5] = 0; + out[6] = 0; + out[7] = 0; + out[8] = 1; + return out; +} + +/** + * Copies the upper-left 3x3 values into the given mat3. + * + * @param {mat3} out the receiving 3x3 matrix + * @param {mat4} a the source 4x4 matrix + * @returns {mat3} out + */ +/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +function fromMat4(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[4]; + out[4] = a[5]; + out[5] = a[6]; + out[6] = a[8]; + out[7] = a[9]; + out[8] = a[10]; + return out; +} + +/** + * Creates a new mat3 initialized with values from an existing matrix + * + * @param {mat3} a matrix to clone + * @returns {mat3} a new 3x3 matrix + */ +function clone(a) { + var out = new glMatrix.ARRAY_TYPE(9); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + return out; +} + +/** + * Copy the values from one mat3 to another + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the source matrix + * @returns {mat3} out + */ +function copy(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + return out; +} + +/** + * Create a new mat3 with the given values + * + * @param {Number} m00 Component in column 0, row 0 position (index 0) + * @param {Number} m01 Component in column 0, row 1 position (index 1) + * @param {Number} m02 Component in column 0, row 2 position (index 2) + * @param {Number} m10 Component in column 1, row 0 position (index 3) + * @param {Number} m11 Component in column 1, row 1 position (index 4) + * @param {Number} m12 Component in column 1, row 2 position (index 5) + * @param {Number} m20 Component in column 2, row 0 position (index 6) + * @param {Number} m21 Component in column 2, row 1 position (index 7) + * @param {Number} m22 Component in column 2, row 2 position (index 8) + * @returns {mat3} A new mat3 + */ +function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) { + var out = new glMatrix.ARRAY_TYPE(9); + out[0] = m00; + out[1] = m01; + out[2] = m02; + out[3] = m10; + out[4] = m11; + out[5] = m12; + out[6] = m20; + out[7] = m21; + out[8] = m22; + return out; +} + +/** + * Set the components of a mat3 to the given values + * + * @param {mat3} out the receiving matrix + * @param {Number} m00 Component in column 0, row 0 position (index 0) + * @param {Number} m01 Component in column 0, row 1 position (index 1) + * @param {Number} m02 Component in column 0, row 2 position (index 2) + * @param {Number} m10 Component in column 1, row 0 position (index 3) + * @param {Number} m11 Component in column 1, row 1 position (index 4) + * @param {Number} m12 Component in column 1, row 2 position (index 5) + * @param {Number} m20 Component in column 2, row 0 position (index 6) + * @param {Number} m21 Component in column 2, row 1 position (index 7) + * @param {Number} m22 Component in column 2, row 2 position (index 8) + * @returns {mat3} out + */ +function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) { + out[0] = m00; + out[1] = m01; + out[2] = m02; + out[3] = m10; + out[4] = m11; + out[5] = m12; + out[6] = m20; + out[7] = m21; + out[8] = m22; + return out; +} + +/** + * Set a mat3 to the identity matrix + * + * @param {mat3} out the receiving matrix + * @returns {mat3} out + */ +function identity(out) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 1; + out[5] = 0; + out[6] = 0; + out[7] = 0; + out[8] = 1; + return out; +} + +/** + * Transpose the values of a mat3 + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the source matrix + * @returns {mat3} out + */ +function transpose(out, a) { + // If we are transposing ourselves we can skip a few steps but have to cache some values + if (out === a) { + var a01 = a[1], + a02 = a[2], + a12 = a[5]; + out[1] = a[3]; + out[2] = a[6]; + out[3] = a01; + out[5] = a[7]; + out[6] = a02; + out[7] = a12; + } else { + out[0] = a[0]; + out[1] = a[3]; + out[2] = a[6]; + out[3] = a[1]; + out[4] = a[4]; + out[5] = a[7]; + out[6] = a[2]; + out[7] = a[5]; + out[8] = a[8]; + } + + return out; +} + +/** + * Inverts a mat3 + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the source matrix + * @returns {mat3} out + */ +function invert(out, a) { + var a00 = a[0], + a01 = a[1], + a02 = a[2]; + var a10 = a[3], + a11 = a[4], + a12 = a[5]; + var a20 = a[6], + a21 = a[7], + a22 = a[8]; + + var b01 = a22 * a11 - a12 * a21; + var b11 = -a22 * a10 + a12 * a20; + var b21 = a21 * a10 - a11 * a20; + + // Calculate the determinant + var det = a00 * b01 + a01 * b11 + a02 * b21; + + if (!det) { + return null; + } + det = 1.0 / det; + + out[0] = b01 * det; + out[1] = (-a22 * a01 + a02 * a21) * det; + out[2] = (a12 * a01 - a02 * a11) * det; + out[3] = b11 * det; + out[4] = (a22 * a00 - a02 * a20) * det; + out[5] = (-a12 * a00 + a02 * a10) * det; + out[6] = b21 * det; + out[7] = (-a21 * a00 + a01 * a20) * det; + out[8] = (a11 * a00 - a01 * a10) * det; + return out; +} + +/** + * Calculates the adjugate of a mat3 + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the source matrix + * @returns {mat3} out + */ +function adjoint(out, a) { + var a00 = a[0], + a01 = a[1], + a02 = a[2]; + var a10 = a[3], + a11 = a[4], + a12 = a[5]; + var a20 = a[6], + a21 = a[7], + a22 = a[8]; + + out[0] = a11 * a22 - a12 * a21; + out[1] = a02 * a21 - a01 * a22; + out[2] = a01 * a12 - a02 * a11; + out[3] = a12 * a20 - a10 * a22; + out[4] = a00 * a22 - a02 * a20; + out[5] = a02 * a10 - a00 * a12; + out[6] = a10 * a21 - a11 * a20; + out[7] = a01 * a20 - a00 * a21; + out[8] = a00 * a11 - a01 * a10; + return out; +} + +/** + * Calculates the determinant of a mat3 + * + * @param {mat3} a the source matrix + * @returns {Number} determinant of a + */ +function determinant(a) { + var a00 = a[0], + a01 = a[1], + a02 = a[2]; + var a10 = a[3], + a11 = a[4], + a12 = a[5]; + var a20 = a[6], + a21 = a[7], + a22 = a[8]; + + return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20); +} + +/** + * Multiplies two mat3's + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the first operand + * @param {mat3} b the second operand + * @returns {mat3} out + */ +function multiply(out, a, b) { + var a00 = a[0], + a01 = a[1], + a02 = a[2]; + var a10 = a[3], + a11 = a[4], + a12 = a[5]; + var a20 = a[6], + a21 = a[7], + a22 = a[8]; + + var b00 = b[0], + b01 = b[1], + b02 = b[2]; + var b10 = b[3], + b11 = b[4], + b12 = b[5]; + var b20 = b[6], + b21 = b[7], + b22 = b[8]; + + out[0] = b00 * a00 + b01 * a10 + b02 * a20; + out[1] = b00 * a01 + b01 * a11 + b02 * a21; + out[2] = b00 * a02 + b01 * a12 + b02 * a22; + + out[3] = b10 * a00 + b11 * a10 + b12 * a20; + out[4] = b10 * a01 + b11 * a11 + b12 * a21; + out[5] = b10 * a02 + b11 * a12 + b12 * a22; + + out[6] = b20 * a00 + b21 * a10 + b22 * a20; + out[7] = b20 * a01 + b21 * a11 + b22 * a21; + out[8] = b20 * a02 + b21 * a12 + b22 * a22; + return out; +} + +/** + * Translate a mat3 by the given vector + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the matrix to translate + * @param {vec2} v vector to translate by + * @returns {mat3} out + */ +function translate(out, a, v) { + var a00 = a[0], + a01 = a[1], + a02 = a[2], + a10 = a[3], + a11 = a[4], + a12 = a[5], + a20 = a[6], + a21 = a[7], + a22 = a[8], + x = v[0], + y = v[1]; + + out[0] = a00; + out[1] = a01; + out[2] = a02; + + out[3] = a10; + out[4] = a11; + out[5] = a12; + + out[6] = x * a00 + y * a10 + a20; + out[7] = x * a01 + y * a11 + a21; + out[8] = x * a02 + y * a12 + a22; + return out; +} + +/** + * Rotates a mat3 by the given angle + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat3} out + */ +function rotate(out, a, rad) { + var a00 = a[0], + a01 = a[1], + a02 = a[2], + a10 = a[3], + a11 = a[4], + a12 = a[5], + a20 = a[6], + a21 = a[7], + a22 = a[8], + s = Math.sin(rad), + c = Math.cos(rad); + + out[0] = c * a00 + s * a10; + out[1] = c * a01 + s * a11; + out[2] = c * a02 + s * a12; + + out[3] = c * a10 - s * a00; + out[4] = c * a11 - s * a01; + out[5] = c * a12 - s * a02; + + out[6] = a20; + out[7] = a21; + out[8] = a22; + return out; +}; + +/** + * Scales the mat3 by the dimensions in the given vec2 + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the matrix to rotate + * @param {vec2} v the vec2 to scale the matrix by + * @returns {mat3} out + **/ +function scale(out, a, v) { + var x = v[0], + y = v[1]; + + out[0] = x * a[0]; + out[1] = x * a[1]; + out[2] = x * a[2]; + + out[3] = y * a[3]; + out[4] = y * a[4]; + out[5] = y * a[5]; + + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + return out; +} + +/** + * Creates a matrix from a vector translation + * This is equivalent to (but much faster than): + * + * mat3.identity(dest); + * mat3.translate(dest, dest, vec); + * + * @param {mat3} out mat3 receiving operation result + * @param {vec2} v Translation vector + * @returns {mat3} out + */ +function fromTranslation(out, v) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 1; + out[5] = 0; + out[6] = v[0]; + out[7] = v[1]; + out[8] = 1; + return out; +} + +/** + * Creates a matrix from a given angle + * This is equivalent to (but much faster than): + * + * mat3.identity(dest); + * mat3.rotate(dest, dest, rad); + * + * @param {mat3} out mat3 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat3} out + */ +function fromRotation(out, rad) { + var s = Math.sin(rad), + c = Math.cos(rad); + + out[0] = c; + out[1] = s; + out[2] = 0; + + out[3] = -s; + out[4] = c; + out[5] = 0; + + out[6] = 0; + out[7] = 0; + out[8] = 1; + return out; +} + +/** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat3.identity(dest); + * mat3.scale(dest, dest, vec); + * + * @param {mat3} out mat3 receiving operation result + * @param {vec2} v Scaling vector + * @returns {mat3} out + */ +function fromScaling(out, v) { + out[0] = v[0]; + out[1] = 0; + out[2] = 0; + + out[3] = 0; + out[4] = v[1]; + out[5] = 0; + + out[6] = 0; + out[7] = 0; + out[8] = 1; + return out; +} + +/** + * Copies the values from a mat2d into a mat3 + * + * @param {mat3} out the receiving matrix + * @param {mat2d} a the matrix to copy + * @returns {mat3} out + **/ +function fromMat2d(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = 0; + + out[3] = a[2]; + out[4] = a[3]; + out[5] = 0; + + out[6] = a[4]; + out[7] = a[5]; + out[8] = 1; + return out; +} + +/** +* Calculates a 3x3 matrix from the given quaternion +* +* @param {mat3} out mat3 receiving operation result +* @param {quat} q Quaternion to create matrix from +* +* @returns {mat3} out +*/ +function fromQuat(out, q) { + var x = q[0], + y = q[1], + z = q[2], + w = q[3]; + var x2 = x + x; + var y2 = y + y; + var z2 = z + z; + + var xx = x * x2; + var yx = y * x2; + var yy = y * y2; + var zx = z * x2; + var zy = z * y2; + var zz = z * z2; + var wx = w * x2; + var wy = w * y2; + var wz = w * z2; + + out[0] = 1 - yy - zz; + out[3] = yx - wz; + out[6] = zx + wy; + + out[1] = yx + wz; + out[4] = 1 - xx - zz; + out[7] = zy - wx; + + out[2] = zx - wy; + out[5] = zy + wx; + out[8] = 1 - xx - yy; + + return out; +} + +/** +* Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix +* +* @param {mat3} out mat3 receiving operation result +* @param {mat4} a Mat4 to derive the normal matrix from +* +* @returns {mat3} out +*/ +function normalFromMat4(out, a) { + var a00 = a[0], + a01 = a[1], + a02 = a[2], + a03 = a[3]; + var a10 = a[4], + a11 = a[5], + a12 = a[6], + a13 = a[7]; + var a20 = a[8], + a21 = a[9], + a22 = a[10], + a23 = a[11]; + var a30 = a[12], + a31 = a[13], + a32 = a[14], + a33 = a[15]; + + var b00 = a00 * a11 - a01 * a10; + var b01 = a00 * a12 - a02 * a10; + var b02 = a00 * a13 - a03 * a10; + var b03 = a01 * a12 - a02 * a11; + var b04 = a01 * a13 - a03 * a11; + var b05 = a02 * a13 - a03 * a12; + var b06 = a20 * a31 - a21 * a30; + var b07 = a20 * a32 - a22 * a30; + var b08 = a20 * a33 - a23 * a30; + var b09 = a21 * a32 - a22 * a31; + var b10 = a21 * a33 - a23 * a31; + var b11 = a22 * a33 - a23 * a32; + + // Calculate the determinant + var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; + + if (!det) { + return null; + } + det = 1.0 / det; + + out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det; + out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det; + out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det; + + out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det; + out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det; + out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det; + + out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det; + out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det; + out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det; + + return out; +} + +/** + * Generates a 2D projection matrix with the given bounds + * + * @param {mat3} out mat3 frustum matrix will be written into + * @param {number} width Width of your gl context + * @param {number} height Height of gl context + * @returns {mat3} out + */ +function projection(out, width, height) { + out[0] = 2 / width; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = -2 / height; + out[5] = 0; + out[6] = -1; + out[7] = 1; + out[8] = 1; + return out; +} + +/** + * Returns a string representation of a mat3 + * + * @param {mat3} a matrix to represent as a string + * @returns {String} string representation of the matrix + */ +function str(a) { + return 'mat3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ', ' + a[4] + ', ' + a[5] + ', ' + a[6] + ', ' + a[7] + ', ' + a[8] + ')'; +} + +/** + * Returns Frobenius norm of a mat3 + * + * @param {mat3} a the matrix to calculate Frobenius norm of + * @returns {Number} Frobenius norm + */ +function frob(a) { + return Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2)); +} + +/** + * Adds two mat3's + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the first operand + * @param {mat3} b the second operand + * @returns {mat3} out + */ +function add(out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + out[2] = a[2] + b[2]; + out[3] = a[3] + b[3]; + out[4] = a[4] + b[4]; + out[5] = a[5] + b[5]; + out[6] = a[6] + b[6]; + out[7] = a[7] + b[7]; + out[8] = a[8] + b[8]; + return out; +} + +/** + * Subtracts matrix b from matrix a + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the first operand + * @param {mat3} b the second operand + * @returns {mat3} out + */ +function subtract(out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + out[2] = a[2] - b[2]; + out[3] = a[3] - b[3]; + out[4] = a[4] - b[4]; + out[5] = a[5] - b[5]; + out[6] = a[6] - b[6]; + out[7] = a[7] - b[7]; + out[8] = a[8] - b[8]; + return out; +} + +/** + * Multiply each element of the matrix by a scalar. + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the matrix to scale + * @param {Number} b amount to scale the matrix's elements by + * @returns {mat3} out + */ +function multiplyScalar(out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + out[2] = a[2] * b; + out[3] = a[3] * b; + out[4] = a[4] * b; + out[5] = a[5] * b; + out[6] = a[6] * b; + out[7] = a[7] * b; + out[8] = a[8] * b; + return out; +} + +/** + * Adds two mat3's after multiplying each element of the second operand by a scalar value. + * + * @param {mat3} out the receiving vector + * @param {mat3} a the first operand + * @param {mat3} b the second operand + * @param {Number} scale the amount to scale b's elements by before adding + * @returns {mat3} out + */ +function multiplyScalarAndAdd(out, a, b, scale) { + out[0] = a[0] + b[0] * scale; + out[1] = a[1] + b[1] * scale; + out[2] = a[2] + b[2] * scale; + out[3] = a[3] + b[3] * scale; + out[4] = a[4] + b[4] * scale; + out[5] = a[5] + b[5] * scale; + out[6] = a[6] + b[6] * scale; + out[7] = a[7] + b[7] * scale; + out[8] = a[8] + b[8] * scale; + return out; +} + +/** + * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) + * + * @param {mat3} a The first matrix. + * @param {mat3} b The second matrix. + * @returns {Boolean} True if the matrices are equal, false otherwise. + */ +function exactEquals(a, b) { + return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8]; +} + +/** + * Returns whether or not the matrices have approximately the same elements in the same position. + * + * @param {mat3} a The first matrix. + * @param {mat3} b The second matrix. + * @returns {Boolean} True if the matrices are equal, false otherwise. + */ +function equals(a, b) { + var a0 = a[0], + a1 = a[1], + a2 = a[2], + a3 = a[3], + a4 = a[4], + a5 = a[5], + a6 = a[6], + a7 = a[7], + a8 = a[8]; + var b0 = b[0], + b1 = b[1], + b2 = b[2], + b3 = b[3], + b4 = b[4], + b5 = b[5], + b6 = b[6], + b7 = b[7], + b8 = b[8]; + return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)); +} + +/** + * Alias for {@link mat3.multiply} + * @function + */ +var mul = exports.mul = multiply; + +/** + * Alias for {@link mat3.subtract} + * @function + */ +var sub = exports.sub = subtract; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.forEach = exports.sqrLen = exports.len = exports.sqrDist = exports.dist = exports.div = exports.mul = exports.sub = undefined; +exports.create = create; +exports.clone = clone; +exports.fromValues = fromValues; +exports.copy = copy; +exports.set = set; +exports.add = add; +exports.subtract = subtract; +exports.multiply = multiply; +exports.divide = divide; +exports.ceil = ceil; +exports.floor = floor; +exports.min = min; +exports.max = max; +exports.round = round; +exports.scale = scale; +exports.scaleAndAdd = scaleAndAdd; +exports.distance = distance; +exports.squaredDistance = squaredDistance; +exports.length = length; +exports.squaredLength = squaredLength; +exports.negate = negate; +exports.inverse = inverse; +exports.normalize = normalize; +exports.dot = dot; +exports.lerp = lerp; +exports.random = random; +exports.transformMat4 = transformMat4; +exports.transformQuat = transformQuat; +exports.str = str; +exports.exactEquals = exactEquals; +exports.equals = equals; + +var _common = __webpack_require__(4); + +var glMatrix = _interopRequireWildcard(_common); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +/** + * 4 Dimensional Vector + * @module vec4 + */ + +/** + * Creates a new, empty vec4 + * + * @returns {vec4} a new 4D vector + */ +function create() { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = 0; + out[1] = 0; + out[2] = 0; + out[3] = 0; + return out; +} + +/** + * Creates a new vec4 initialized with values from an existing vector + * + * @param {vec4} a vector to clone + * @returns {vec4} a new 4D vector + */ +/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +function clone(a) { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + return out; +} + +/** + * Creates a new vec4 initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {vec4} a new 4D vector + */ +function fromValues(x, y, z, w) { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = x; + out[1] = y; + out[2] = z; + out[3] = w; + return out; +} + +/** + * Copy the values from one vec4 to another + * + * @param {vec4} out the receiving vector + * @param {vec4} a the source vector + * @returns {vec4} out + */ +function copy(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + return out; +} + +/** + * Set the components of a vec4 to the given values + * + * @param {vec4} out the receiving vector + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {vec4} out + */ +function set(out, x, y, z, w) { + out[0] = x; + out[1] = y; + out[2] = z; + out[3] = w; + return out; +} + +/** + * Adds two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function add(out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + out[2] = a[2] + b[2]; + out[3] = a[3] + b[3]; + return out; +} + +/** + * Subtracts vector b from vector a + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function subtract(out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + out[2] = a[2] - b[2]; + out[3] = a[3] - b[3]; + return out; +} + +/** + * Multiplies two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function multiply(out, a, b) { + out[0] = a[0] * b[0]; + out[1] = a[1] * b[1]; + out[2] = a[2] * b[2]; + out[3] = a[3] * b[3]; + return out; +} + +/** + * Divides two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function divide(out, a, b) { + out[0] = a[0] / b[0]; + out[1] = a[1] / b[1]; + out[2] = a[2] / b[2]; + out[3] = a[3] / b[3]; + return out; +} + +/** + * Math.ceil the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to ceil + * @returns {vec4} out + */ +function ceil(out, a) { + out[0] = Math.ceil(a[0]); + out[1] = Math.ceil(a[1]); + out[2] = Math.ceil(a[2]); + out[3] = Math.ceil(a[3]); + return out; +} + +/** + * Math.floor the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to floor + * @returns {vec4} out + */ +function floor(out, a) { + out[0] = Math.floor(a[0]); + out[1] = Math.floor(a[1]); + out[2] = Math.floor(a[2]); + out[3] = Math.floor(a[3]); + return out; +} + +/** + * Returns the minimum of two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function min(out, a, b) { + out[0] = Math.min(a[0], b[0]); + out[1] = Math.min(a[1], b[1]); + out[2] = Math.min(a[2], b[2]); + out[3] = Math.min(a[3], b[3]); + return out; +} + +/** + * Returns the maximum of two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ +function max(out, a, b) { + out[0] = Math.max(a[0], b[0]); + out[1] = Math.max(a[1], b[1]); + out[2] = Math.max(a[2], b[2]); + out[3] = Math.max(a[3], b[3]); + return out; +} + +/** + * Math.round the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to round + * @returns {vec4} out + */ +function round(out, a) { + out[0] = Math.round(a[0]); + out[1] = Math.round(a[1]); + out[2] = Math.round(a[2]); + out[3] = Math.round(a[3]); + return out; +} + +/** + * Scales a vec4 by a scalar number + * + * @param {vec4} out the receiving vector + * @param {vec4} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec4} out + */ +function scale(out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + out[2] = a[2] * b; + out[3] = a[3] * b; + return out; +} + +/** + * Adds two vec4's after scaling the second operand by a scalar value + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @param {Number} scale the amount to scale b by before adding + * @returns {vec4} out + */ +function scaleAndAdd(out, a, b, scale) { + out[0] = a[0] + b[0] * scale; + out[1] = a[1] + b[1] * scale; + out[2] = a[2] + b[2] * scale; + out[3] = a[3] + b[3] * scale; + return out; +} + +/** + * Calculates the euclidian distance between two vec4's + * + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {Number} distance between a and b + */ +function distance(a, b) { + var x = b[0] - a[0]; + var y = b[1] - a[1]; + var z = b[2] - a[2]; + var w = b[3] - a[3]; + return Math.sqrt(x * x + y * y + z * z + w * w); +} + +/** + * Calculates the squared euclidian distance between two vec4's + * + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {Number} squared distance between a and b + */ +function squaredDistance(a, b) { + var x = b[0] - a[0]; + var y = b[1] - a[1]; + var z = b[2] - a[2]; + var w = b[3] - a[3]; + return x * x + y * y + z * z + w * w; +} + +/** + * Calculates the length of a vec4 + * + * @param {vec4} a vector to calculate length of + * @returns {Number} length of a + */ +function length(a) { + var x = a[0]; + var y = a[1]; + var z = a[2]; + var w = a[3]; + return Math.sqrt(x * x + y * y + z * z + w * w); +} + +/** + * Calculates the squared length of a vec4 + * + * @param {vec4} a vector to calculate squared length of + * @returns {Number} squared length of a + */ +function squaredLength(a) { + var x = a[0]; + var y = a[1]; + var z = a[2]; + var w = a[3]; + return x * x + y * y + z * z + w * w; +} + +/** + * Negates the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to negate + * @returns {vec4} out + */ +function negate(out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + out[2] = -a[2]; + out[3] = -a[3]; + return out; +} + +/** + * Returns the inverse of the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to invert + * @returns {vec4} out + */ +function inverse(out, a) { + out[0] = 1.0 / a[0]; + out[1] = 1.0 / a[1]; + out[2] = 1.0 / a[2]; + out[3] = 1.0 / a[3]; + return out; +} + +/** + * Normalize a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to normalize + * @returns {vec4} out + */ +function normalize(out, a) { + var x = a[0]; + var y = a[1]; + var z = a[2]; + var w = a[3]; + var len = x * x + y * y + z * z + w * w; + if (len > 0) { + len = 1 / Math.sqrt(len); + out[0] = x * len; + out[1] = y * len; + out[2] = z * len; + out[3] = w * len; + } + return out; +} + +/** + * Calculates the dot product of two vec4's + * + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {Number} dot product of a and b + */ +function dot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; +} + +/** + * Performs a linear interpolation between two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec4} out + */ +function lerp(out, a, b, t) { + var ax = a[0]; + var ay = a[1]; + var az = a[2]; + var aw = a[3]; + out[0] = ax + t * (b[0] - ax); + out[1] = ay + t * (b[1] - ay); + out[2] = az + t * (b[2] - az); + out[3] = aw + t * (b[3] - aw); + return out; +} + +/** + * Generates a random vector with the given scale + * + * @param {vec4} out the receiving vector + * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned + * @returns {vec4} out + */ +function random(out, vectorScale) { + vectorScale = vectorScale || 1.0; + + //TODO: This is a pretty awful way of doing this. Find something better. + out[0] = glMatrix.RANDOM(); + out[1] = glMatrix.RANDOM(); + out[2] = glMatrix.RANDOM(); + out[3] = glMatrix.RANDOM(); + normalize(out, out); + scale(out, out, vectorScale); + return out; +} + +/** + * Transforms the vec4 with a mat4. + * + * @param {vec4} out the receiving vector + * @param {vec4} a the vector to transform + * @param {mat4} m matrix to transform with + * @returns {vec4} out + */ +function transformMat4(out, a, m) { + var x = a[0], + y = a[1], + z = a[2], + w = a[3]; + out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w; + out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w; + out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w; + out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w; + return out; +} + +/** + * Transforms the vec4 with a quat + * + * @param {vec4} out the receiving vector + * @param {vec4} a the vector to transform + * @param {quat} q quaternion to transform with + * @returns {vec4} out + */ +function transformQuat(out, a, q) { + var x = a[0], + y = a[1], + z = a[2]; + var qx = q[0], + qy = q[1], + qz = q[2], + qw = q[3]; + + // calculate quat * vec + var ix = qw * x + qy * z - qz * y; + var iy = qw * y + qz * x - qx * z; + var iz = qw * z + qx * y - qy * x; + var iw = -qx * x - qy * y - qz * z; + + // calculate result * inverse quat + out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy; + out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz; + out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx; + out[3] = a[3]; + return out; +} + +/** + * Returns a string representation of a vector + * + * @param {vec4} a vector to represent as a string + * @returns {String} string representation of the vector + */ +function str(a) { + return 'vec4(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')'; +} + +/** + * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===) + * + * @param {vec4} a The first vector. + * @param {vec4} b The second vector. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ +function exactEquals(a, b) { + return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3]; +} + +/** + * Returns whether or not the vectors have approximately the same elements in the same position. + * + * @param {vec4} a The first vector. + * @param {vec4} b The second vector. + * @returns {Boolean} True if the vectors are equal, false otherwise. + */ +function equals(a, b) { + var a0 = a[0], + a1 = a[1], + a2 = a[2], + a3 = a[3]; + var b0 = b[0], + b1 = b[1], + b2 = b[2], + b3 = b[3]; + return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)); +} + +/** + * Alias for {@link vec4.subtract} + * @function + */ +var sub = exports.sub = subtract; + +/** + * Alias for {@link vec4.multiply} + * @function + */ +var mul = exports.mul = multiply; + +/** + * Alias for {@link vec4.divide} + * @function + */ +var div = exports.div = divide; + +/** + * Alias for {@link vec4.distance} + * @function + */ +var dist = exports.dist = distance; + +/** + * Alias for {@link vec4.squaredDistance} + * @function + */ +var sqrDist = exports.sqrDist = squaredDistance; + +/** + * Alias for {@link vec4.length} + * @function + */ +var len = exports.len = length; + +/** + * Alias for {@link vec4.squaredLength} + * @function + */ +var sqrLen = exports.sqrLen = squaredLength; + +/** + * Perform some operation over an array of vec4s. + * + * @param {Array} a the array of vectors to iterate over + * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed + * @param {Number} offset Number of elements to skip at the beginning of the array + * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array + * @param {Function} fn Function to call for each vector in the array + * @param {Object} [arg] additional argument to pass to fn + * @returns {Array} a + * @function + */ +var forEach = exports.forEach = function () { + var vec = create(); + + return function (a, stride, offset, count, fn, arg) { + var i = void 0, + l = void 0; + if (!stride) { + stride = 4; + } + + if (!offset) { + offset = 0; + } + + if (count) { + l = Math.min(count * stride + offset, a.length); + } else { + l = a.length; + } + + for (i = offset; i < l; i += stride) { + vec[0] = a[i];vec[1] = a[i + 1];vec[2] = a[i + 2];vec[3] = a[i + 3]; + fn(vec, vec, arg); + a[i] = vec[0];a[i + 1] = vec[1];a[i + 2] = vec[2];a[i + 3] = vec[3]; + } + + return a; + }; +}(); + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +The XRSessionCreateParametersInit dictionary provides a session description, indicating the desired capabilities of a session to be returned from requestSession() +*/ +var XRSessionCreateParameters = function () { + function XRSessionCreateParameters() { + _classCallCheck(this, XRSessionCreateParameters); + } + + _createClass(XRSessionCreateParameters, [{ + key: 'exclusive', + get: function get() { + //readonly attribute boolean exclusive; + throw 'Not implemented'; + } + }, { + key: 'type', + get: function get() { + //readonly attribute XRSessionRealityType type; + throw 'Not implemented'; + } + }]); + + return XRSessionCreateParameters; +}(); + +exports.default = XRSessionCreateParameters; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRPointCloud holds an array of float values where each four values represents [x, y, z, confidence in range 0-1] that describe a point in space detected by the device's sensors. +*/ +var XRPointCloud = function () { + function XRPointCloud() { + _classCallCheck(this, XRPointCloud); + } + + _createClass(XRPointCloud, [{ + key: 'points', + get: function get() { + //readonly attribute Float32Array points + throw new Error('Not implemented'); + } + }]); + + return XRPointCloud; +}(); + +exports.default = XRPointCloud; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +The XRStageBounds interface describes a space known as a "Stage". +The stage is a bounded, floor-relative play space that the user can be expected to safely be able to move within. +Other XR platforms sometimes refer to this concept as "room scale" or "standing XR". +*/ +var XRStageBounds = function () { + function XRStageBounds() { + _classCallCheck(this, XRStageBounds); + } + + _createClass(XRStageBounds, [{ + key: 'center', + get: function get() { + //readonly attribute XRCoordinateSystem center; + throw new Error('Not implemented'); + } + }, { + key: 'geometry', + get: function get() { + //readonly attribute FrozenArray<XRStageBoundsPoint>? geometry; + throw new Error('Not implemented'); + } + }]); + + return XRStageBounds; +}(); + +exports.default = XRStageBounds; + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRStageBoundPoints represent the offset in meters from the stage origin along the X and Z axes. +*/ +var XRStageBoundsPoint = function () { + function XRStageBoundsPoint() { + _classCallCheck(this, XRStageBoundsPoint); + } + + _createClass(XRStageBoundsPoint, [{ + key: 'x', + get: function get() { + //readonly attribute double x; + throw new Error('Not implemented'); + } + }, { + key: 'y', + get: function get() { + //readonly attribute double z; + throw new Error('Not implemented'); + } + }]); + + return XRStageBoundsPoint; +}(); + +exports.default = XRStageBoundsPoint; + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _XRAnchor = __webpack_require__(1); + +var _XRAnchor2 = _interopRequireDefault(_XRAnchor); + +var _ARKitWrapper = __webpack_require__(5); + +var _ARKitWrapper2 = _interopRequireDefault(_ARKitWrapper); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRPresentationFrame provides all of the values needed to render a single frame of an XR scene to the XRDisplay. +*/ +var XRPresentationFrame = function () { + function XRPresentationFrame(session, timestamp) { + _classCallCheck(this, XRPresentationFrame); + + this._session = session; + this._timestamp = this._session.reality._getTimeStamp(timestamp); + } + + _createClass(XRPresentationFrame, [{ + key: 'addAnchor', + + + /* + Create an anchor at a specific position defined by XRAnchor.coordinates + */ + value: function addAnchor(coordinateSystem) { + var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0]; + var orientation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0, 0, 1]; + var uid = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + //DOMString? addAnchor(XRCoordinateSystem, position, orientation); + var poseMatrix = _MatrixMath2.default.mat4_fromRotationTranslation(new Float32Array(16), orientation, position); + _MatrixMath2.default.mat4_multiply(poseMatrix, coordinateSystem.getTransformTo(this._session._display._trackerCoordinateSystem), poseMatrix); + var anchorCoordinateSystem = new XRCoordinateSystem(this._session._display, XRCoordinateSystem.TRACKER); + anchorCoordinateSystem._relativeMatrix = poseMatrix; + return this._session.reality._addAnchor(new _XRAnchor2.default(anchorCoordinateSystem, uid), this._session.display); + } + + // normalized screen x and y are in range 0..1, with 0,0 at top left and 1,1 at bottom right + + }, { + key: 'findAnchor', + value: function findAnchor(normalizedScreenX, normalizedScreenY) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + // Promise<XRAnchorOffset?> findAnchor(float32, float32); // cast a ray to find or create an anchor at the first intersection in the Reality + return this._session.reality._findAnchor(normalizedScreenX, normalizedScreenY, this._session.display, options); + } + }, { + key: 'hitTestNoAnchor', + value: function hitTestNoAnchor(normalizedScreenX, normalizedScreenY) { + // Array<VRHit> hitTestNoAnchor(float32, float32); // cast a ray to find all plane intersections in the Reality + return this._session.reality._hitTestNoAnchor(normalizedScreenX, normalizedScreenY, this._session.display); + } + + /* + Find an XRAnchorOffset that is at floor level below the current head pose + uid will be the resulting anchor uid (if any), or if null one will be assigned + */ + + }, { + key: 'findFloorAnchor', + value: function findFloorAnchor() { + var uid = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + // Promise<XRAnchorOffset?> findFloorAnchor(); + return this._session.reality._findFloorAnchor(this._session.display, uid); + } + }, { + key: 'removeAnchor', + value: function removeAnchor(uid) { + // void removeAnchor(DOMString uid); + return this._session.reality._removeAnchor(uid); + } + + /* + Returns an existing XRAnchor or null if uid is unknown + */ + + }, { + key: 'getAnchor', + value: function getAnchor(uid) { + // XRAnchor? getAnchor(DOMString uid); + return this._session.reality._getAnchor(uid); + } + }, { + key: 'getCoordinateSystem', + value: function getCoordinateSystem() { + var _session; + + // XRCoordinateSystem? getCoordinateSystem(...XRFrameOfReferenceType types); // Tries the types in order, returning the first match or null if none is found + return (_session = this._session)._getCoordinateSystem.apply(_session, arguments); + } + }, { + key: 'getDisplayPose', + value: function getDisplayPose(coordinateSystem) { + // XRViewPose? getDisplayPose(XRCoordinateSystem coordinateSystem); + switch (coordinateSystem._type) { + case XRCoordinateSystem.HEAD_MODEL: + return this._session._display._headPose; + case XRCoordinateSystem.EYE_LEVEL: + return this._session._display._eyeLevelPose; + default: + return null; + } + } + }, { + key: 'session', + get: function get() { + return this._session; + } + }, { + key: 'views', + get: function get() { + //readonly attribute FrozenArray<XRView> views; + return this._session._display._views; + } + }, { + key: 'hasPointCloud', + get: function get() { + //readonly attribute boolean hasPointCloud; + return false; + } + }, { + key: 'pointCloud', + get: function get() { + //readonly attribute XRPointCloud? pointCloud; + return null; + } + }, { + key: 'hasLightEstimate', + get: function get() { + //readonly attribute boolean hasLightEstimate; + return this._session.reality._getHasLightEstimate(); + } + }, { + key: 'lightEstimate', + get: function get() { + //readonly attribute XRLightEstimate? lightEstimate; + return this._session.reality._getLightAmbientIntensity(); + } + }, { + key: 'timestamp', + get: function get() { + return this._timestamp; + } + /* + Returns an array of known XRAnchor instances. May be empty. + */ + + }, { + key: 'anchors', + get: function get() { + //readonly attribute sequence<XRAnchor> anchors; + var results = []; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = this._session.reality._anchors.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var value = _step.value; + + results.push(value); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return results; + } + }]); + + return XRPresentationFrame; +}(); + +// hit test types + + +exports.default = XRPresentationFrame; +XRPresentationFrame.HIT_TEST_TYPE_FEATURE_POINT = _ARKitWrapper2.default.HIT_TEST_TYPE_FEATURE_POINT; +XRPresentationFrame.HIT_TEST_TYPE_ESTIMATED_HORIZONTAL_PLANE = _ARKitWrapper2.default.HIT_TEST_TYPE_ESTIMATED_HORIZONTAL_PLANE; +XRPresentationFrame.HIT_TEST_TYPE_ESTIMATED_VERTICAL_PLANE = _ARKitWrapper2.default.HIT_TEST_TYPE_ESTIMATED_VERTICAL_PLANE; +XRPresentationFrame.HIT_TEST_TYPE_EXISTING_PLANE = _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANE; +XRPresentationFrame.HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT = _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT; +XRPresentationFrame.HIT_TEST_TYPE_EXISTING_PLANE_USING_GEOMETRY = _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANE_USING_GEOMETRY; + +XRPresentationFrame.HIT_TEST_TYPE_ALL = _ARKitWrapper2.default.HIT_TEST_TYPE_FEATURE_POINT | _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANE | _ARKitWrapper2.default.HIT_TEST_TYPE_ESTIMATED_HORIZONTAL_PLANE | _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT; + +XRPresentationFrame.HIT_TEST_TYPE_EXISTING_PLANES = _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANE | _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT; + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRCoordinateSystem represents the origin of a 3D coordinate system positioned at a known frame of reference. +The XRCoordinateSystem is a string from XRCoordinateSystem.TYPES: + +These types are used by the app code when requesting a coordinate system from the session: +- XRCoordinateSystem.HEAD_MODEL: origin is aligned with the pose of the head, as sensed by HMD or handset trackers +- XRCoordinateSystem.EYE_LEVEL: origin is at a fixed distance above the ground + +This is an internal type, specific to just this polyfill and not visible to the app code +- XRCoordinateSystem.TRACKER: The origin of this coordinate system is at floor level at or below the origin of the HMD or handset provided tracking system + +*/ +var XRCoordinateSystem = function () { + function XRCoordinateSystem(display, type) { + _classCallCheck(this, XRCoordinateSystem); + + this._display = display; + this._type = type; + + this.__relativeMatrix = _MatrixMath2.default.mat4_generateIdentity(); + this._workingMatrix = _MatrixMath2.default.mat4_generateIdentity(); + } + + _createClass(XRCoordinateSystem, [{ + key: 'getTransformTo', + value: function getTransformTo(otherCoordinateSystem) { + // apply inverse of the poseModelMatrix to the identity matrix + var inverse = _MatrixMath2.default.mat4_invert(new Float32Array(16), otherCoordinateSystem._poseModelMatrix); + var out = _MatrixMath2.default.mat4_generateIdentity(); + _MatrixMath2.default.mat4_multiply(out, inverse, out); + + // apply the other system's poseModelMatrix + _MatrixMath2.default.mat4_multiply(out, this._poseModelMatrix, out); + return out; + } + }, { + key: '_relativeMatrix', + get: function get() { + return this.__relativeMatrix; + }, + set: function set(value) { + for (var i = 0; i < 16; i++) { + this.__relativeMatrix[i] = value[i]; + } + } + }, { + key: '_poseModelMatrix', + get: function get() { + switch (this._type) { + case XRCoordinateSystem.HEAD_MODEL: + return this._display._headPose.poseModelMatrix; + case XRCoordinateSystem.EYE_LEVEL: + return this._display._eyeLevelPose.poseModelMatrix; + case XRCoordinateSystem.TRACKER: + _MatrixMath2.default.mat4_multiply(this._workingMatrix, this.__relativeMatrix, this._display._trackerPoseModelMatrix); + return this._workingMatrix; + default: + throw new Error('Unknown coordinate system type: ' + this._type); + } + } + }]); + + return XRCoordinateSystem; +}(); + +exports.default = XRCoordinateSystem; + + +XRCoordinateSystem.HEAD_MODEL = 'headModel'; +XRCoordinateSystem.EYE_LEVEL = 'eyeLevel'; +XRCoordinateSystem.TRACKER = 'tracker'; + +XRCoordinateSystem.TYPES = [XRCoordinateSystem.HEAD_MODEL, XRCoordinateSystem.EYE_LEVEL, XRCoordinateSystem.TRACKER]; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _XRLayer2 = __webpack_require__(23); + +var _XRLayer3 = _interopRequireDefault(_XRLayer2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +XRWebGLLayer defines the WebGL or WebGL 2 context that is rendering the visuals for this layer. +*/ +var XRWebGLLayer = function (_XRLayer) { + _inherits(XRWebGLLayer, _XRLayer); + + function XRWebGLLayer(session, context) { + _classCallCheck(this, XRWebGLLayer); + + var _this = _possibleConstructorReturn(this, (XRWebGLLayer.__proto__ || Object.getPrototypeOf(XRWebGLLayer)).call(this)); + + _this._session = session; + _this._context = context; + _this._width = _this._context.canvas.width; + _this._height = _this._context.canvas.height; + _this._framebuffer = null; // TODO + return _this; + } + + _createClass(XRWebGLLayer, [{ + key: 'requestViewportScaling', + value: function requestViewportScaling(viewportScaleFactor) { + // void requestViewportScaling(double viewportScaleFactor); + throw 'Not implemented'; + } + }, { + key: 'context', + get: function get() { + return this._context; + } + }, { + key: 'antialias', + get: function get() { + // readonly attribute boolean antialias; + throw 'Not implemented'; + } + }, { + key: 'depth', + get: function get() { + // readonly attribute boolean depth; + throw 'Not implemented'; + } + }, { + key: 'stencil', + get: function get() { + // readonly attribute boolean stencil; + throw 'Not implemented'; + } + }, { + key: 'alpha', + get: function get() { + // readonly attribute boolean alpha; + throw 'Not implemented'; + } + }, { + key: 'multiview', + get: function get() { + // readonly attribute boolean multiview; + throw 'Not implemented'; + } + }, { + key: 'framebuffer', + get: function get() { + return this._framebuffer; + } + }, { + key: 'framebufferWidth', + set: function set(w) { + this._width = w; + this._context.canvas.width = w; + }, + get: function get() { + // not using this for now, on iOS it's not good. + // var pr = window.devicePixelRatio || 1; + //return this._context.canvas.clientWidth; + return this._width; + } + }, { + key: 'framebufferHeight', + set: function set(h) { + this._height = h; + this._context.canvas.height = h; + }, + get: function get() { + // not using this for now, on iOS it's not good. + // var pr = window.devicePixelRatio || 1; + //return this._context.canvas.clientHeight; + return this._height; + } + }]); + + return XRWebGLLayer; +}(_XRLayer3.default); + +exports.default = XRWebGLLayer; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _common = __webpack_require__(4); + +var glMatrix = _interopRequireWildcard(_common); + +var _mat = __webpack_require__(17); + +var mat4 = _interopRequireWildcard(_mat); + +var _quat = __webpack_require__(18); + +var quat = _interopRequireWildcard(_quat); + +var _vec = __webpack_require__(12); + +var vec3 = _interopRequireWildcard(_vec); + +var _base64Binary = __webpack_require__(19); + +var _base64Binary2 = _interopRequireDefault(_base64Binary); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* +XRVideoFrame represents the a video frame from a camera. + +{ + "frame": { + "buffers": [ // Array of base64 encoded string buffers + { + "size": { + "width": 320, + "height": 180, + "bytesPerRow": 320, + "bytesPerPixel": 1 + }, + "buffer": "e3x...d7d" /// convert to Uint8 buffer in code below + }, + { + "size": { + "width": 160, + "height": 90, + "bytesPerRow": 320, + "bytesPerPixel": 2 + }, + "buffer": "ZZF.../fIJ7" /// convert to Uint8 buffer in code below + } + ], + "pixelFormat": "YUV420P", /// Added in the code below, clients should ignore pixelFormatType + "timestamp": 337791 + }, + "camera": { + "cameraIntrinsics": [3x3 matrix], + fx 0 px + 0 fy py + 0 0 1 + fx and fy are the focal length in pixels. + px and py are the coordinates of the principal point in pixels. + The origin is at the center of the upper-left pixel. + + "cameraImageResolution": { + "width": 1280, + "height": 720 + }, + "viewMatrix": [4x4 camera view matrix], + "arCamera": true; + "cameraOrientation": 0, // orientation in degrees of image relative to display + // normally 0, but on video mixed displays that keep the camera in a fixed + // orientation, but rotate the UI, like on some phones, this will change + // as the display orientation changes + "projectionMatrix": [4x4 camera projection matrix] + } +} + +frame.buffers.buffer[*] can be String (which will be lazily converted to ArrayBuffer) or ArrayBuffer. +pixelFormat should be one of XRVideoFrame.IMAGEFORMAT + +*/ + +// store unused ArrayBuffers +// we'll push to it on release, pop from it when we need a new one. In the common case, where the +// same camera setup is running and the same cv is running, we should get some speed up by not reallocating +// because the same size and number of buffers will be pushed/popped in the same order +var _ab = []; + +var XRVideoFrame = function () { + function XRVideoFrame(buffers, pixelFormat, timestamp, camera) { + _classCallCheck(this, XRVideoFrame); + + this._buffers = buffers; + for (var i = 0; i < buffers.length; i++) { + buffers[i]._buffer = buffers[i].buffer; + buffers[i].buffer = null; + + // if we didn't pass in an abCache, as might happen when we pass this + // to/from a worker, see if there is a saved ArrayBuffer of the right size + if (!buffers[i]._abCache && typeof buffers[i]._buffer == "string") { + var bytes = _base64Binary2.default.decodeLength(buffers[i]._buffer); + for (var j = 0; j < _ab.length; j++) { + if (_ab[j].byteLength == bytes) { + buffers[i]._abCache = _ab[j]; + _ab.splice(j, 1); + break; + } + } + } else if (!buffers[i]._abCache && buffers[i]._buffer instanceof ImageData) { + var data = buffers[i]._buffer.data; + var bytes = data.length; + for (var j = 0; j < _ab.length; j++) { + if (_ab[j].byteLength == bytes) { + buffers[i]._abCache = _ab[j]; + _ab.splice(j, 1); + break; + } + } + + var ab = buffers[i]._abCache ? buffers[i]._abCache : new ArrayBuffer(bytes); + buffers[i]._abCache = null; + + var buffData = new Uint8Array(ab); + for (var k = 0; k < bytes; k++) { + buffData[k] = data[k]; + }buffers[i]._buffer = ab; + } + } + this._pixelFormat = pixelFormat; + this._timestamp = timestamp; + this._camera = camera; + } + + _createClass(XRVideoFrame, [{ + key: "numBuffers", + value: function numBuffers() { + this._buffers.length; + } + }, { + key: "buffer", + value: function buffer(index) { + if (index >= 0 && index < this._buffers.length) { + var buff = this._buffers[index]; + if (!buff.buffer) { + if (typeof buff._buffer == "string") { + // use the ArrayBuffer cache if there + buff._buffer = _base64Binary2.default.decodeArrayBuffer(buff._buffer, buff._abCache); + buff._abCache = null; + buff.buffer = new Uint8Array(buff._buffer); + } else if (buff._buffer instanceof ArrayBuffer) { + buff.buffer = new Uint8Array(buff._buffer); + } else if (buff._buffer instanceof ImageData) { + buff.buffer = ImageData.data; + } + } + return buff; + } + return null; + } + }, { + key: "release", + value: function release() { + // if buffers are passed in, check if they are ArrayBuffers, and if so, save + // them for possible use on the next frame. + // + // we do this because passing buffers down into Workers invalidates them, so we need to + // return them here when we get them back from the Worker, so they can be reused. + var buffers = this._buffers; + for (var i = 0; i < buffers.length; i++) { + if (buffers[i]._buffer instanceof ArrayBuffer && buffers[i]._buffer.byteLength > 0) { + _ab.push(buffers[i]._buffer); + } + if (buffers[i]._abCache instanceof ArrayBuffer && buffers[i]._abCache.byteLength > 0) { + _ab.push(buffers[i]._abCache); + } + } + } + }, { + key: "postMessageToWorker", + value: function postMessageToWorker(worker, options) { + var msg = Object.assign({}, options || {}); + msg.buffers = this._buffers; + msg.timestamp = this._timestamp; + msg.pixelFormat = this._pixelFormat; + msg.camera = this._camera; + + var buffs = []; + for (var i = 0; i < msg.buffers.length; i++) { + msg.buffers[i].buffer = msg.buffers[i]._buffer; + + if (msg.buffers[i]._buffer instanceof ArrayBuffer || msg.buffers[i]._buffer instanceof ImageData) { + buffs.push(msg.buffers[i]._buffer); + } + msg.buffers[i]._buffer = null; + + if (msg.buffers[i]._abCache instanceof ArrayBuffer) { + buffs.push(msg.buffers[i]._abCache); + } + } + worker.postMessage(msg, buffs); + } + }, { + key: "postReplyMessage", + value: function postReplyMessage(options) { + var msg = Object.assign({}, options); + msg.buffers = this._buffers; + msg.timestamp = this._timestamp; + msg.pixelFormat = this._pixelFormat; + msg.camera = this._camera; + + var buffs = []; + for (var i = 0; i < msg.buffers.length; i++) { + msg.buffers[i].buffer = null; + if (msg.buffers[i]._buffer instanceof ArrayBuffer || msg.buffers[i]._buffer instanceof ImageData) { + // any array buffers should be marked for transfer + buffs.push(msg.buffers[i]._buffer); + msg.buffers[i].buffer = msg.buffers[i]._buffer; + } + msg.buffers[i]._buffer = null; + + if (msg.buffers[i]._abCache instanceof ArrayBuffer) { + buffs.push(msg.buffers[i]._abCache); + } + } + postMessage(msg, buffs); + } + }, { + key: "pixelFormat", + get: function get() { + return this._pixelFormat; + } + }, { + key: "timestamp", + get: function get() { + return this._timestamp; + } + }, { + key: "camera", + get: function get() { + return this._camera; + } + }], [{ + key: "createFromMessage", + value: function createFromMessage(event) { + return new this(event.data.buffers, event.data.pixelFormat, event.data.timestamp, event.data.camera); + } + }]); + + return XRVideoFrame; +}(); + +/* +ImageFormat taken from +https://w3c.github.io/mediacapture-worker/#imagebitmap-extensions + +enum ImageFormat { + "RGBA32", + "BGRA32", + "RGB24", + "BGR24", + "GRAY8", + "YUV444P", + "YUV422P", + "YUV420P", + "YUV420SP_NV12", + "YUV420SP_NV21", + "HSV", + "Lab", + "DEPTH", + // empty string + "" +}; + + +*/ + + +exports.default = XRVideoFrame; +XRVideoFrame.IMAGEFORMAT_RGBA32 = "RGBA32"; +XRVideoFrame.IMAGEFORMAT_BGRA32 = "BGRA32"; +XRVideoFrame.IMAGEFORMAT_RGB24 = "RGB24"; +XRVideoFrame.IMAGEFORMAT_BGR24 = "BGR24"; +XRVideoFrame.IMAGEFORMAT_GRAY8 = "GRAY8"; +XRVideoFrame.IMAGEFORMAT_YUV444P = "YUV444P"; +XRVideoFrame.IMAGEFORMAT_YUV422P = "YUV422P"; +XRVideoFrame.IMAGEFORMAT_YUV420P = "YUV420P"; +XRVideoFrame.IMAGEFORMAT_YUV420SP_NV12 = "YUV420SP_NV12"; +XRVideoFrame.IMAGEFORMAT_YUV420SP_NV21 = "YUV420SP_NV21"; +XRVideoFrame.IMAGEFORMAT_HSV = "HSV"; +XRVideoFrame.IMAGEFORMAT_Lab = "Lab"; +XRVideoFrame.IMAGEFORMAT_DEPTH = "DEPTH"; +XRVideoFrame.IMAGEFORMAT_NULL = ""; + +XRVideoFrame.IMAGEFORMAT = [XRVideoFrame.IMAGEFORMAT_RGBA32, XRVideoFrame.IMAGEFORMAT_BGRA32, XRVideoFrame.IMAGEFORMAT_RGB24, XRVideoFrame.IMAGEFORMAT_BGR24, XRVideoFrame.IMAGEFORMAT_GRAY8, XRVideoFrame.IMAGEFORMAT_YUV444P, XRVideoFrame.IMAGEFORMAT_YUV422P, XRVideoFrame.IMAGEFORMAT_YUV420P, XRVideoFrame.IMAGEFORMAT_YUV420SP_NV12, XRVideoFrame.IMAGEFORMAT_YUV420SP_NV21, XRVideoFrame.IMAGEFORMAT_HSV, XRVideoFrame.IMAGEFORMAT_Lab, XRVideoFrame.IMAGEFORMAT_DEPTH, XRVideoFrame.IMAGEFORMAT_NULL]; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _XRDisplay2 = __webpack_require__(6); + +var _XRDisplay3 = _interopRequireDefault(_XRDisplay2); + +var _XRView = __webpack_require__(13); + +var _XRView2 = _interopRequireDefault(_XRView); + +var _XRSession = __webpack_require__(11); + +var _XRSession2 = _interopRequireDefault(_XRSession); + +var _XRFieldOfView = __webpack_require__(16); + +var _XRFieldOfView2 = _interopRequireDefault(_XRFieldOfView); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +var _Quaternion = __webpack_require__(2); + +var _Quaternion2 = _interopRequireDefault(_Quaternion); + +var _Vector = __webpack_require__(15); + +var _Vector2 = _interopRequireDefault(_Vector); + +var _DeviceOrientationTracker = __webpack_require__(24); + +var _DeviceOrientationTracker2 = _interopRequireDefault(_DeviceOrientationTracker); + +var _ARKitWrapper = __webpack_require__(5); + +var _ARKitWrapper2 = _interopRequireDefault(_ARKitWrapper); + +var _XRPlaneAnchor = __webpack_require__(10); + +var _XRPlaneAnchor2 = _interopRequireDefault(_XRPlaneAnchor); + +var _XRFaceAnchor = __webpack_require__(8); + +var _XRFaceAnchor2 = _interopRequireDefault(_XRFaceAnchor); + +var _XRAnchor = __webpack_require__(1); + +var _XRAnchor2 = _interopRequireDefault(_XRAnchor); + +var _XRImageAnchor = __webpack_require__(9); + +var _XRImageAnchor2 = _interopRequireDefault(_XRImageAnchor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +FlatDisplay takes over a handset's full screen and presents a moving view into a Reality, as if it were a magic window. + +If ARKit is present, it uses the ARKit updates to set the headModel pose. +If ARCore is available on the VRDisplays, use that to pose the headModel. (TODO) +Otherwise, use orientation events. +*/ +var FlatDisplay = function (_XRDisplay) { + _inherits(FlatDisplay, _XRDisplay); + + function FlatDisplay(xr, reality) { + _classCallCheck(this, FlatDisplay); + + var _this = _possibleConstructorReturn(this, (FlatDisplay.__proto__ || Object.getPrototypeOf(FlatDisplay)).call(this, xr, 'Flat', false, reality)); + + _this._started = false; + _this._initialized = false; + + // This is used if we have ARKit support + _this._arKitWrapper = null; + + // This is used if we have ARCore support + _this._vrFrameData = null; + + // This is used if we are using orientation events + _this._deviceOrientationTracker = null; + + // These are used if we have ARCore support or use window orientation events + _this._deviceOrientation = null; // Quaternion + _this._devicePosition = null; // Vector3 + _this._deviceWorldMatrix = null; // Float32Array(16) + + // Currently only support full screen views + _this._views.push(new _XRView2.default(_this._fov, _this._depthNear, _this._depthFar)); + return _this; + } + + _createClass(FlatDisplay, [{ + key: '_start', + value: function _start() { + var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (this._reality._vrDisplay) { + // Use ARCore + if (this._vrFrameData === null) { + this._vrFrameData = new VRFrameData(); + this._views[0]._depthNear = this._reality._vrDisplay.depthNear; + this._views[0]._depthFar = this._reality._vrDisplay.depthFar; + this._deviceOrientation = new _Quaternion2.default(); + this._devicePosition = new _Vector2.default(); + this._deviceWorldMatrix = new Float32Array(16); + } + } else if (_ARKitWrapper2.default.HasARKit()) { + // Use ARKit + if (this._initialized === false) { + this._initialized = true; + this._arKitWrapper = _ARKitWrapper2.default.GetOrCreate(); + this._arKitWrapper.addEventListener(_ARKitWrapper2.default.INIT_EVENT, this._handleARKitInit.bind(this)); + this._arKitWrapper.addEventListener(_ARKitWrapper2.default.WATCH_EVENT, this._handleARKitUpdate.bind(this)); + this._arKitWrapper.addEventListener(_ARKitWrapper2.default.WINDOW_RESIZE_EVENT, this._handleARKitWindowResize.bind(this)); + this._arKitWrapper.addEventListener(_ARKitWrapper2.default.ON_ERROR, this._handleOnError.bind(this)); + this._arKitWrapper.addEventListener(_ARKitWrapper2.default.AR_TRACKING_CHANGED, this._handleArTrackingChanged.bind(this)); + this._arKitWrapper.addEventListener(_ARKitWrapper2.default.COMPUTER_VISION_DATA, this._handleComputerVisionData.bind(this)); + this._reality.addEventListener(Reality.NEW_WORLD_ANCHOR, this._handleNewWorldAnchor.bind(this)); + this._reality.addEventListener(Reality.UPDATE_WORLD_ANCHOR, this._handleUpdateWorldAnchor.bind(this)); + this._reality.addEventListener(Reality.REMOVE_WORLD_ANCHOR, this._handleRemoveWorldAnchor.bind(this)); + this._arKitWrapper.waitForInit().then(function () { + // doing this in the reality + // this._arKitWrapper.watch() + }); + } else { + // doing this in the reality + // this._arKitWrapper.watch() + } + } else { + // Use device orientation + if (this._initialized === false) { + this._initialized = true; + this._deviceOrientation = new _Quaternion2.default(); + this._devicePosition = new _Vector2.default(); + this._deviceWorldMatrix = new Float32Array(16); + this._deviceOrientationTracker = new _DeviceOrientationTracker2.default(); + this._deviceOrientationTracker.addEventListener(_DeviceOrientationTracker2.default.ORIENTATION_UPDATE_EVENT, this._updateFromDeviceOrientationTracker.bind(this)); + this._reality.addEventListener(Reality.COMPUTER_VISION_DATA, this._handleComputerVisionData.bind(this)); + this._reality.addEventListener(Reality.WINDOW_RESIZE_EVENT, this._handleWindowResize.bind(this)); + } + } + this.running = true; + this._reality._start(parameters); + } + }, { + key: '_stop', + value: function _stop() { + // TODO figure out how to stop ARKit and ARCore so that CameraReality can still work + if (this.running === false) return; + this.running = false; + this._reality._stop(); + } + }, { + key: '_fixFov', + value: function _fixFov(width, height, focalLength) { + if (!this.baseLayer) { + return; + } + var ratio = width / this.baseLayer._context.canvas.clientWidth; + focalLength = focalLength / ratio; + + var x = 0.5 * this.baseLayer._context.canvas.clientWidth / focalLength; + var fovx = 180 / Math.PI * 2 * Math.atan(x); + var y = 0.5 * this.baseLayer._context.canvas.clientHeight / focalLength; + var fovy = 180 / Math.PI * 2 * Math.atan(y); + + // var x = (Math.tan(0.5 * fov) / this.baseLayer.framebufferHeight) * this.baseLayer.framebufferWidth + // var fovx = (Math.atan(x) * 2) / (Math.PI/180); + this._fov = new _XRFieldOfView2.default(fovy / 2, fovy / 2, fovx / 2, fovx / 2); + + this._views[0].fov = this._fov; + } + }, { + key: '_handleWindowResize', + value: function _handleWindowResize(ev) { + this._fixFov(ev.detail.width, ev.detail.height, ev.detail.focalLength); + } + }, { + key: '_handleNewWorldAnchor', + value: function _handleNewWorldAnchor(event) { + var anchorObject = event.detail; + var coordinateSystem = new XRCoordinateSystem(this, XRCoordinateSystem.TRACKER); + coordinateSystem._relativeMatrix = anchorObject.transform; + + var anchor = void 0; + switch (anchorObject.type) { + case _ARKitWrapper2.default.ANCHOR_TYPE_PLANE: + anchor = new _XRPlaneAnchor2.default(coordinateSystem, anchorObject.uuid, anchorObject.plane_center, [anchorObject.plane_extent.x, anchorObject.plane_extent.z], anchorObject.plane_alignment, anchorObject.geometry); + break; + case _ARKitWrapper2.default.ANCHOR_TYPE_FACE: + anchor = new _XRFaceAnchor2.default(coordinateSystem, anchorObject.uuid, anchorObject.geometry, anchorObject.blendShapes); + break; + case _ARKitWrapper2.default.ANCHOR_TYPE_ANCHOR: + anchor = new _XRAnchor2.default(coordinateSystem, anchorObject.uuid); + break; + case _ARKitWrapper2.default.ANCHOR_TYPE_IMAGE: + anchor = new _XRImageAnchor2.default(coordinateSystem, anchorObject.uuid); + break; + } + + this._reality._anchors.set(anchorObject.uuid, anchor); + //console.log(`New world anchor: ${JSON.stringify(ev)}`) + + try { + this.dispatchEvent(new CustomEvent(_XRDisplay3.default.NEW_WORLD_ANCHOR, { + source: this, + detail: anchor + })); + } catch (e) { + console.error('NEW_WORLD_ANCHOR event error', e); + } + } + }, { + key: '_handleUpdateWorldAnchor', + value: function _handleUpdateWorldAnchor(event) { + var anchorUUID = event.detail; + var anchor = this._reality._anchors.get(anchorUUID); + if (anchor !== null) { + try { + this.dispatchEvent(new CustomEvent(_XRDisplay3.default.UPDATE_WORLD_ANCHOR, { + source: this, + detail: anchor + })); + } catch (e) { + console.error('UPDATE_WORLD_ANCHOR event error', e); + } + } + } + }, { + key: '_handleRemoveWorldAnchor', + value: function _handleRemoveWorldAnchor(event) { + var anchorUUID = event.detail; + var anchor = this._reality._anchors.get(anchorUUID); + if (anchor !== null) { + try { + this.dispatchEvent(new CustomEvent(_XRDisplay3.default.REMOVE_WORLD_ANCHOR, { + source: this, + detail: anchor + })); + } catch (e) { + console.error('REMOVE_WORLD_ANCHOR event error', e); + } + } + } + + /* + Called by a session to indicate that its baseLayer attribute has been set. + FlatDisplay just adds the layer's canvas to DOM elements created by the XR polyfill + */ + + }, { + key: '_handleNewBaseLayer', + value: function _handleNewBaseLayer(baseLayer) { + this.baseLayer = baseLayer; + baseLayer._context.canvas.style.width = "100%"; + baseLayer._context.canvas.style.height = "100%"; + baseLayer.framebufferWidth = this._xr._sessionEls.clientWidth; + baseLayer.framebufferHeight = this._xr._sessionEls.clientHeight; + + if (this._arKitWrapper === null) { + // TODO: Need to remove this listener if a new base layer is set + window.addEventListener('resize', function () { + baseLayer.framebufferWidth = baseLayer._context.canvas.clientWidth; + baseLayer.framebufferHeight = baseLayer._context.canvas.clientHeight; + }, false); + } + //this._fixFov(baseLayer.framebufferWidth, baseLayer.framebufferHeight, this._reality._focalLength) + + this._xr._sessionEls.appendChild(baseLayer._context.canvas); + } + + /* + Called by a session before it hands a new XRPresentationFrame to the app + */ + + }, { + key: '_handleNewFrame', + value: function _handleNewFrame(frame) { + if (this._vrFrameData !== null) { + this._updateFromVRDevice(); + } + } + }, { + key: '_updateFromVRDevice', + value: function _updateFromVRDevice() { + var _deviceOrientation, _devicePosition; + + this._reality._vrDisplay.getFrameData(this._vrFrameData); + this._views[0].setProjectionMatrix(this._vrFrameData.leftProjectionMatrix); + (_deviceOrientation = this._deviceOrientation).set.apply(_deviceOrientation, _toConsumableArray(this._vrFrameData.pose.orientation)); + (_devicePosition = this._devicePosition).set.apply(_devicePosition, _toConsumableArray(this._vrFrameData.pose.position)); + this._devicePosition.add(0, XRViewPose.SITTING_EYE_HEIGHT, 0); + _MatrixMath2.default.mat4_fromRotationTranslation(this._deviceWorldMatrix, this._deviceOrientation.toArray(), this._devicePosition.toArray()); + this._views[0].setViewMatrix(this._deviceWorldMatrix); + this._headPose._setPoseModelMatrix(this._deviceWorldMatrix); + this._eyeLevelPose._position = this._devicePosition.toArray(); + } + }, { + key: '_updateFromDeviceOrientationTracker', + value: function _updateFromDeviceOrientationTracker() { + // TODO set XRView's FOV + this._deviceOrientationTracker.getOrientation(this._deviceOrientation); + this._devicePosition.set(this._headPose.poseModelMatrix[12], this._headPose.poseModelMatrix[13], this._headPose.poseModelMatrix[14]); + this._devicePosition.add(0, XRViewPose.SITTING_EYE_HEIGHT, 0); + _MatrixMath2.default.mat4_fromRotationTranslation(this._deviceWorldMatrix, this._deviceOrientation.toArray(), this._devicePosition.toArray()); + this._headPose._setPoseModelMatrix(this._deviceWorldMatrix); + this._views[0].setViewMatrix(this._deviceWorldMatrix); + this._eyeLevelPose._position = this._devicePosition.toArray(); + } + }, { + key: '_handleARKitUpdate', + value: function _handleARKitUpdate() { + var cameraTransformMatrix = this._arKitWrapper.getData('camera_transform'); + if (cameraTransformMatrix) { + this._headPose._setPoseModelMatrix(cameraTransformMatrix); + this._views[0].setViewMatrix(cameraTransformMatrix); + this._headPose._poseModelMatrix[13] += XRViewPose.SITTING_EYE_HEIGHT; + this._eyeLevelPose._position = this._headPose._position; + } else { + console.log('no camera transform', this._arKitWrapper.rawARData); + } + + var cameraProjectionMatrix = this._arKitWrapper.getData('projection_camera'); + if (cameraProjectionMatrix) { + this._views[0].setProjectionMatrix(cameraProjectionMatrix); + } else { + console.log('no projection camera', this._arKitWrapper.rawARData); + } + } + }, { + key: '_handleARKitInit', + value: function _handleARKitInit(ev) { + // doing this in the reality + // setTimeout(() => { + // this._arKitWrapper.watch({ + // location: true, + // camera: true, + // objects: true, + // light_intensity: true, + // computer_vision_data: true + // }) + // }, 1000) + } + }, { + key: '_handleARKitWindowResize', + value: function _handleARKitWindowResize(ev) { + this.baseLayer.framebufferWidth = ev.detail.width; + this.baseLayer.framebufferHeight = ev.detail.height; + } + }, { + key: '_handleOnError', + value: function _handleOnError(ev) { + //"domain": "error domain", + //"code": 1234, + //"message": "error message" + // Ex: > {code: 3, message: "error.localizedDescription", domain: "error.domain"} + } + }, { + key: '_handleArTrackingChanged', + value: function _handleArTrackingChanged(ev) { + // ev.detail values + // #define WEB_AR_TRACKING_STATE_NORMAL @"ar_tracking_normal" + // #define WEB_AR_TRACKING_STATE_LIMITED @"ar_tracking_limited" + // #define WEB_AR_TRACKING_STATE_LIMITED_INITIALIZING @"ar_tracking_limited_initializing" + // #define WEB_AR_TRACKING_STATE_LIMITED_MOTION @"ar_tracking_limited_excessive_motion" + // #define WEB_AR_TRACKING_STATE_LIMITED_FEATURES @"ar_tracking_limited_insufficient_features" + // #define WEB_AR_TRACKING_STATE_NOT_AVAILABLE @"ar_tracking_not_available" + // #define WEB_AR_TRACKING_STATE_RELOCALIZING @"ar_tracking_relocalizing" + + // the string gets sent as a single member array, pull the member out + try { + this.dispatchEvent(new CustomEvent(_XRDisplay3.default.TRACKING_CHANGED, { + source: this, + detail: ev.detail[0] + })); + } catch (e) { + console.error('trackingChanged callback error', e); + } + } + }, { + key: '_handleComputerVisionData', + value: function _handleComputerVisionData(ev) { + // Do whatever is needed with the image buffers here + try { + this.dispatchEvent(new CustomEvent(_XRDisplay3.default.VIDEO_FRAME, { + source: this, + detail: ev.detail + })); + } catch (e) { + console.error('computer vision callback error', e); + } + } + }, { + key: '_requestVideoFrame', + value: function _requestVideoFrame() { + if (this._arKitWrapper) { + // Use ARKit + // call this._arKitWrapper.requestComputerVisionData(buffers) to request a new one + this._arKitWrapper._requestComputerVisionData(); + } else { + // might have webrtc video in the reality + this._reality._requestVideoFrame(); + } + } + }, { + key: '_stopVideoFrames', + value: function _stopVideoFrames() { + if (this._arKitWrapper) { + // Use ARKit + // call this._arKitWrapper.requestComputerVisionData(buffers) to request a new one + this._arKitWrapper._stopSendingComputerVisionData(); + } else { + // might have webrtc video in the reality + this._reality._stopVideoFrames(); + } + } + }, { + key: '_startVideoFrames', + value: function _startVideoFrames() { + if (this._arKitWrapper) { + // Use ARKit + // call this._arKitWrapper.requestComputerVisionData(buffers) to request a new one + this._arKitWrapper._startSendingComputerVisionData(); + } else { + // might have webrtc video in the reality + this._reality._startVideoFrames(); + } + } + }, { + key: '_createSession', + value: function _createSession() { + var _this2 = this; + + var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + this._start(parameters); + + if (_ARKitWrapper2.default.HasARKit()) { + // Use ARKit + return this._arKitWrapper.waitForInit().then(function () { + return _get(FlatDisplay.prototype.__proto__ || Object.getPrototypeOf(FlatDisplay.prototype), '_createSession', _this2).call(_this2, parameters); + }); + } else { + return _get(FlatDisplay.prototype.__proto__ || Object.getPrototypeOf(FlatDisplay.prototype), '_createSession', this).call(this, parameters); + } + } + }, { + key: '_supportedCreationParameters', + value: function _supportedCreationParameters(parameters) { + return parameters.type === _XRSession2.default.AUGMENTATION && parameters.exclusive === false; + } + + //attribute EventHandler ondeactivate; // FlatDisplay never deactivates + + }]); + + return FlatDisplay; +}(_XRDisplay3.default); + +exports.default = FlatDisplay; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Euler = function () { + function Euler(x, y, z) { + var order = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Euler.DefaultOrder; + + _classCallCheck(this, Euler); + + this.x = x; + this.y = y; + this.z = z; + this.order = order; + } + + _createClass(Euler, [{ + key: 'set', + value: function set(x, y, z) { + var order = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Euler.DefaultOrder; + + this.x = x; + this.y = y; + this.z = z; + this.order = order; + } + }, { + key: 'toArray', + value: function toArray() { + return [this.x, this.y, this.z]; + } + }]); + + return Euler; +}(); + +exports.default = Euler; + + +Euler.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX']; +Euler.DefaultOrder = 'XYZ'; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _XRDisplay2 = __webpack_require__(6); + +var _XRDisplay3 = _interopRequireDefault(_XRDisplay2); + +var _XRView = __webpack_require__(13); + +var _XRView2 = _interopRequireDefault(_XRView); + +var _XRSession = __webpack_require__(11); + +var _XRSession2 = _interopRequireDefault(_XRSession); + +var _XRViewPose = __webpack_require__(14); + +var _XRViewPose2 = _interopRequireDefault(_XRViewPose); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +var _Quaternion = __webpack_require__(2); + +var _Quaternion2 = _interopRequireDefault(_Quaternion); + +var _Vector = __webpack_require__(15); + +var _Vector2 = _interopRequireDefault(_Vector); + +var _DeviceOrientationTracker = __webpack_require__(24); + +var _DeviceOrientationTracker2 = _interopRequireDefault(_DeviceOrientationTracker); + +var _ARKitWrapper = __webpack_require__(5); + +var _ARKitWrapper2 = _interopRequireDefault(_ARKitWrapper); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +HeadMountedDisplay wraps a WebVR 1.1 display, like a Vive, Rift, or Daydream. +*/ +var HeadMountedDisplay = function (_XRDisplay) { + _inherits(HeadMountedDisplay, _XRDisplay); + + function HeadMountedDisplay(xr, reality, vrDisplay) { + _classCallCheck(this, HeadMountedDisplay); + + var _this = _possibleConstructorReturn(this, (HeadMountedDisplay.__proto__ || Object.getPrototypeOf(HeadMountedDisplay)).call(this, xr, vrDisplay.displayName, vrDisplay.capabilities.hasExternalDisplay, reality)); + + _this._vrDisplay = vrDisplay; + _this._vrFrameData = new VRFrameData(); + + // The view projection matrices will be reset using VRFrameData during this._handleNewFrame + _this._leftView = new _XRView2.default(_this._fov, _this._depthNear, _this._depthFar, _XRView2.default.LEFT); + _this._rightView = new _XRView2.default(_this._fov, _this._depthNear, _this._depthFar, _XRView2.default.RIGHT); + _this._views = [_this._leftView, _this._rightView]; + + // These will be used to set the head and eye level poses during this._handleNewFrame + _this._deviceOrientation = new _Quaternion2.default(); + _this._devicePosition = new _Vector2.default(); + _this._deviceWorldMatrix = new Float32Array(16); + return _this; + } + + /* + Called via the XRSession.requestAnimationFrame + */ + + + _createClass(HeadMountedDisplay, [{ + key: '_requestAnimationFrame', + value: function _requestAnimationFrame(callback) { + if (this._vrDisplay.isPresenting) { + this._vrDisplay.requestAnimationFrame(callback); + } else { + window.requestAnimationFrame(callback); + } + } + + /* + Called by a session to indicate that its baseLayer attribute has been set. + This is where the VRDisplay is used to create a session + */ + + }, { + key: '_handleNewBaseLayer', + value: function _handleNewBaseLayer(baseLayer) { + var _this2 = this; + + this._vrDisplay.requestPresent([{ + source: baseLayer._context.canvas + }]).then(function () { + var leftEye = _this2._vrDisplay.getEyeParameters('left'); + var rightEye = _this2._vrDisplay.getEyeParameters('right'); + baseLayer.framebufferWidth = Math.max(leftEye.renderWidth, rightEye.renderWidth) * 2; + baseLayer.framebufferHeight = Math.max(leftEye.renderHeight, rightEye.renderHeight); + baseLayer._context.canvas.style.position = 'absolute'; + baseLayer._context.canvas.style.bottom = '1px'; + baseLayer._context.canvas.style.right = '1px'; + baseLayer._context.canvas.style.width = "100%"; + baseLayer._context.canvas.style.height = "100%"; + document.body.appendChild(baseLayer._context.canvas); + }).catch(function (e) { + console.error('Unable to init WebVR 1.1 display', e); + }); + } + }, { + key: '_stop', + value: function _stop() { + // TODO figure out how to stop ARKit and ARCore so that CameraReality can still work + if (this.running === false) return; + this.running = false; + this._reality._stop(); + } + + /* + Called by a session before it hands a new XRPresentationFrame to the app + */ + + }, { + key: '_handleNewFrame', + value: function _handleNewFrame(frame) { + if (this._vrDisplay.isPresenting) { + this._updateFromVRFrameData(); + } + } + }, { + key: '_handleAfterFrame', + value: function _handleAfterFrame(frame) { + if (this._vrDisplay.isPresenting) { + this._vrDisplay.submitFrame(); + } + } + }, { + key: '_supportedCreationParameters', + value: function _supportedCreationParameters(parameters) { + return parameters.type === _XRSession2.default.REALITY && parameters.exclusive === true; + } + }, { + key: '_updateFromVRFrameData', + value: function _updateFromVRFrameData() { + this._vrDisplay.getFrameData(this._vrFrameData); + this._leftView.setViewMatrix(this._vrFrameData.leftViewMatrix); + this._rightView.setViewMatrix(this._vrFrameData.rightViewMatrix); + this._leftView.setProjectionMatrix(this._vrFrameData.leftProjectionMatrix); + this._rightView.setProjectionMatrix(this._vrFrameData.rightProjectionMatrix); + if (this._vrFrameData.pose) { + if (this._vrFrameData.pose.orientation) { + var _deviceOrientation; + + (_deviceOrientation = this._deviceOrientation).set.apply(_deviceOrientation, _toConsumableArray(this._vrFrameData.pose.orientation)); + } + if (this._vrFrameData.pose.position) { + var _devicePosition; + + (_devicePosition = this._devicePosition).set.apply(_devicePosition, _toConsumableArray(this._vrFrameData.pose.position)); + } + _MatrixMath2.default.mat4_fromRotationTranslation(this._deviceWorldMatrix, this._deviceOrientation.toArray(), this._devicePosition.toArray()); + if (this._vrDisplay.stageParameters && this._vrDisplay.stageParameters.sittingToStandingTransform) { + _MatrixMath2.default.mat4_multiply(this._deviceWorldMatrix, this._vrDisplay.stageParameters.sittingToStandingTransform, this._deviceWorldMatrix); + } + this._headPose._setPoseModelMatrix(this._deviceWorldMatrix); + this._eyeLevelPose.position = this._devicePosition.toArray(); + } + } + }]); + + return HeadMountedDisplay; +}(_XRDisplay3.default); + +exports.default = HeadMountedDisplay; + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _Reality2 = __webpack_require__(7); + +var _Reality3 = _interopRequireDefault(_Reality2); + +var _XRAnchor = __webpack_require__(1); + +var _XRAnchor2 = _interopRequireDefault(_XRAnchor); + +var _XRViewPose = __webpack_require__(14); + +var _XRViewPose2 = _interopRequireDefault(_XRViewPose); + +var _XRAnchorOffset = __webpack_require__(21); + +var _XRAnchorOffset2 = _interopRequireDefault(_XRAnchorOffset); + +var _XRLightEstimate = __webpack_require__(20); + +var _XRLightEstimate2 = _interopRequireDefault(_XRLightEstimate); + +var _MatrixMath = __webpack_require__(0); + +var _MatrixMath2 = _interopRequireDefault(_MatrixMath); + +var _Quaternion = __webpack_require__(2); + +var _Quaternion2 = _interopRequireDefault(_Quaternion); + +var _ARKitWrapper = __webpack_require__(5); + +var _ARKitWrapper2 = _interopRequireDefault(_ARKitWrapper); + +var _ARCoreCameraRenderer = __webpack_require__(41); + +var _ARCoreCameraRenderer2 = _interopRequireDefault(_ARCoreCameraRenderer); + +var _XRImageAnchor = __webpack_require__(9); + +var _XRImageAnchor2 = _interopRequireDefault(_XRImageAnchor); + +var _XRPlaneAnchor = __webpack_require__(10); + +var _XRPlaneAnchor2 = _interopRequireDefault(_XRPlaneAnchor); + +var _XRFaceAnchor = __webpack_require__(8); + +var _XRFaceAnchor2 = _interopRequireDefault(_XRFaceAnchor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/* +CameraReality displays the forward facing camera. + +If this is running in the iOS ARKit wrapper app, the camera data will be displayed in a Metal layer below the WKWebKit layer. +If this is running in the Google ARCore Chrome application, it will create a canvas element and use the ARCore provided camera data. +If there is no ARKit or ARCore available, it will use WebRTC's MediaStream to render camera data into a canvas. +*/ +var CameraReality = function (_Reality) { + _inherits(CameraReality, _Reality); + + function CameraReality(xr) { + _classCallCheck(this, CameraReality); + + var _this = _possibleConstructorReturn(this, (CameraReality.__proto__ || Object.getPrototypeOf(CameraReality)).call(this, xr, 'Camera', true, true)); + + _this._initialized = false; + _this._running = false; + + // camera fovy: start with 70 degrees on the long axis of at 320x240 + _this._cameraFov = 70 * Math.PI / 180; + _this._focalLength = 160 / Math.tan(_this._cameraFov / 2); + _this._cameraIntrinsics = [_this._focalLength, 0, 0, 0, _this._focalLength, 0, 160, 120, 1]; + + // These are used if we have access to ARKit + _this._arKitWrapper = null; + + // These are used if we do not have access to ARKit + _this._mediaStream = null; + _this._videoEl = null; + + // These are used if we're using the Google ARCore web app + _this._arCoreCameraRenderer = null; + _this._arCoreCanvas = null; + _this._elContext = null; + _this._vrDisplay = null; + _this._vrFrameData = null; + + // dealing with video frames from webrtc + _this._sendingVideo = false; + _this._videoFramesPaused = false; + _this._sendVideoFrame = false; + _this._videoProjectionMatrix = _MatrixMath2.default.mat4_generateIdentity(); + _this._videoViewMatrix = _MatrixMath2.default.mat4_generateIdentity(); + + _this._lightEstimate = new _XRLightEstimate2.default(); + + // Try to find a WebVR 1.1 display that supports Google's ARCore extensions + if (typeof navigator.getVRDisplays === 'function') { + navigator.getVRDisplays().then(function (displays) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = displays[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var display = _step.value; + + if (display === null) continue; + if (display.capabilities.hasPassThroughCamera) { + // This is the ARCore extension to WebVR 1.1 + _this._vrDisplay = display; + _this._vrFrameData = new VRFrameData(); + if (!window.WebARonARKitSetData) { + _this._arCoreCanvas = document.createElement('canvas'); + _this._xr._realityEls.appendChild(_this._arCoreCanvas); + _this._arCoreCanvas.width = window.innerWidth; + _this._arCoreCanvas.height = window.innerHeight; + _this._elContext = _this._arCoreCanvas.getContext('webgl'); + if (_this._elContext === null) { + throw 'Could not create CameraReality GL context'; + } + } + break; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }); + } + + window.addEventListener('resize', function () { + if (_this._arCoreCanvas) { + _this._arCoreCanvas.width = window.innerWidth; + _this._arCoreCanvas.height = window.innerHeight; + } + if (_this._videoEl) { + setTimeout(function () { + _this._adjustVideoSize(); + }, 10); + } + }, false); + return _this; + } + + _createClass(CameraReality, [{ + key: '_setFovy', + value: function _setFovy(fovy) { + this._cameraFov = fovy * Math.PI / 180; + if (!this._videoEl) { + this._focalLength = 0; + return; + } + + if (this._videoRenderWidth > this._videoRenderHeight) { + this._focalLength = this._videoRenderWidth / 2 / Math.tan(this._cameraFov / 2); + } else { + this._focalLength = this._videoRenderHeight / 2 / Math.tan(this._cameraFov / 2); + } + this._cameraIntrinsics = [this._focalLength, 0, 0, 0, this._focalLength, 0, this._videoRenderWidth / 2, this._videoRenderHeight / 2, 1]; + } + }, { + key: '_adjustVideoSize', + value: function _adjustVideoSize() { + + var canvasWidth = this._videoRenderWidth; + var canvasHeight = this._videoRenderHeight; + var cameraAspect = canvasWidth / canvasHeight; + + var width = this._videoEl.videoWidth; + var height = this._videoEl.videoHeight; + var videoSourceAspect = width / height; + if (videoSourceAspect != cameraAspect) { + // let's pick a size such that the video is below 512 in size in both dimensions + while (width > 512 || height > 512) { + width = width / 2; + height = height / 2; + } + + canvasWidth = this._videoRenderWidth = width; + canvasHeight = this._videoRenderHeight = height; + var cameraAspect = canvasWidth / canvasHeight; + + if (this._videoFrameCanvas) { + this._videoFrameCanvas.width = width; + this._videoFrameCanvas.height = height; + } + } + + this._setFovy(this._cameraFov / (Math.PI / 180)); + + var windowWidth = this._xr._realityEls.clientWidth; + var windowHeight = this._xr._realityEls.clientHeight; + var windowAspect = windowWidth / windowHeight; + + var translateX = 0; + var translateY = 0; + if (cameraAspect > windowAspect) { + canvasWidth = canvasHeight * windowAspect; + windowWidth = windowHeight * cameraAspect; + translateX = -(windowWidth - this._xr._realityEls.clientWidth) / 2; + } else { + canvasHeight = canvasWidth / windowAspect; + windowHeight = windowWidth / cameraAspect; + translateY = -(windowHeight - this._xr._realityEls.clientHeight) / 2; + } + + this._videoEl.style.width = windowWidth.toFixed(2) + 'px'; + this._videoEl.style.height = windowHeight.toFixed(2) + 'px'; + this._videoEl.style.transform = "translate(" + translateX.toFixed(2) + "px, " + translateY.toFixed(2) + "px)"; + + try { + this.dispatchEvent(new CustomEvent(_Reality3.default.WINDOW_RESIZE_EVENT, { + source: this, + detail: { + width: canvasWidth, + height: canvasHeight, + focalLength: this._focalLength + } + })); + } catch (e) { + console.error('WINDOW_RESIZE_EVENT error', e); + } + } + + /* + Called by a session before it hands a new XRPresentationFrame to the app + */ + + }, { + key: '_handleNewFrame', + value: function _handleNewFrame(frame) { + if (this._vrDisplay) { + if (this._arCoreCameraRenderer) { + this._arCoreCameraRenderer.render(); + } + this._vrDisplay.getFrameData(this._vrFrameData); + } + + // WebRTC video + if (this._videoEl && this._sendVideoFrame && !this._videoFramesPaused) { + this._sendVideoFrame = false; + + var canvasWidth = this._videoRenderWidth; + var canvasHeight = this._videoRenderHeight; + this._videoCtx.drawImage(this._videoEl, 0, 0, canvasWidth, canvasHeight); + var imageData = this._videoCtx.getImageData(0, 0, canvasWidth, canvasHeight); + + var data = imageData.data; + var len = imageData.data.length; + // imageData = new ArrayBuffer(len) + // var buffData = new Uint8Array(imageData); + // for (var i = 0; i < len; i++) buffData[i] = data[i] + + var buffers = [{ + size: { + width: canvasWidth, + height: canvasHeight, + bytesPerRow: canvasWidth * 4, + bytesPerPixel: 4 + }, + buffer: imageData + }]; + + var pixelFormat = XRVideoFrame.IMAGEFORMAT_RGBA32; + + var timestamp = frame.timestamp; + + // set from frame + var view = frame.views[0]; + + //this._videoViewMatrix.set(view.viewMatrix); + _MatrixMath2.default.mat4_invert(this._videoViewMatrix, view.viewMatrix); + + this._videoProjectionMatrix.set(view.projectionMatrix); + + var camera = { + arCamera: false, + cameraOrientation: 0, + cameraIntrinsics: this._cameraIntrinsics.slice(0), + // cameraIntrinsics: [(this._videoEl.videoWidth/2) / Math.tan(view._fov.leftDegrees * Math.PI/180), 0, (this._videoEl.videoWidth/2), + // 0, (this._videoEl.videoHeight/2) / Math.tan(view._fov.upDegrees * Math.PI/180), (this._videoEl.videoHeight/2), + // 0, 0, 1], + cameraImageResolution: { + width: this._videoEl.videoWidth, + height: this._videoEl.videoHeight + }, + viewMatrix: this._videoViewMatrix, + projectionMatrix: this._videoProjectionMatrix + }; + + var xrVideoFrame = new XRVideoFrame(buffers, pixelFormat, timestamp, camera); + + try { + this.dispatchEvent(new CustomEvent(_Reality3.default.COMPUTER_VISION_DATA, { + source: this, + detail: xrVideoFrame + })); + } catch (e) { + console.error('COMPUTER_VISION_DATA event error', e); + } + } + // TODO update the anchor positions using ARCore or ARKit + } + }, { + key: '_start', + value: function _start() { + var _this2 = this; + + var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (this._running) return; + this._running = true; + + if (this._vrDisplay !== null) { + // Using WebAR + if (window.WebARonARKitSetData) { + // WebARonARKit renders camera separately + } else { + this._arCoreCameraRenderer = new _ARCoreCameraRenderer2.default(this._vrDisplay, this._elContext); + } + this._initialized = true; + } else if (_ARKitWrapper2.default.HasARKit()) { + // Using ARKit + if (this._initialized === false) { + this._initialized = true; + this._arKitWrapper = _ARKitWrapper2.default.GetOrCreate(); + this._arKitWrapper.addEventListener(_ARKitWrapper2.default.WATCH_EVENT, this._handleARKitWatch.bind(this)); + this._arKitWrapper.waitForInit().then(function () { + _this2._arKitWrapper.watch(parameters); + }); + } else { + this._arKitWrapper.watch(parameters); + } + } else { + // Using WebRTC + if (this._initialized === false) { + this._initialized = true; + navigator.mediaDevices.getUserMedia({ + audio: false, + video: { facingMode: "environment" } + }).then(function (stream) { + _this2._videoEl = document.createElement('video'); + _this2._xr._realityEls.appendChild(_this2._videoEl); + _this2._videoEl.setAttribute('class', 'camera-reality-video'); + _this2._videoEl.setAttribute('playsinline', true); + _this2._videoEl.style.width = '100%'; + _this2._videoEl.style.height = '100%'; + _this2._videoEl.srcObject = stream; + _this2._videoEl.play(); + _this2._setupWebRTC(parameters); + }).catch(function (err) { + console.error('Could not set up video stream', err); + _this2._initialized = false; + _this2._running = false; + }); + } else { + if (this._videoEl) { + this._xr._realityEls.appendChild(this._videoEl); + this._videoEl.play(); + this._setupWebRTC(parameters); + } + } + } + } + }, { + key: '_setupWebRTC', + value: function _setupWebRTC(parameters) { + var _this3 = this; + + if (parameters.videoFrames) { + this._sendingVideo = true; + + this._videoEl.addEventListener('loadedmetadata', function () { + var width = _this3._videoEl.videoWidth; + var height = _this3._videoEl.videoHeight; + + // let's pick a size such that the video is below 512 in size in both dimensions + while (width > 256 || height > 256) { + width = width / 2; + height = height / 2; + } + + _this3._videoRenderWidth = width; + _this3._videoRenderHeight = height; + _this3._videoFrameCanvas = document.createElement('canvas'); + _this3._videoFrameCanvas.width = width; + _this3._videoFrameCanvas.height = height; + _this3._videoCtx = _this3._videoFrameCanvas.getContext('2d'); + + _this3._adjustVideoSize(); + + _this3._sendVideoFrame = true; + }); + } + } + }, { + key: '_requestVideoFrame', + value: function _requestVideoFrame() { + this._sendVideoFrame = true; + } + }, { + key: '_stopVideoFrames', + value: function _stopVideoFrames() { + this._videoFramesPaused = true; + } + }, { + key: '_startVideoFrames', + value: function _startVideoFrames() { + this._videoFramesPaused = false; + } + }, { + key: '_stop', + value: function _stop() { + if (this._running === false) return; + this._running = false; + if (_ARKitWrapper2.default.HasARKit()) { + if (this._arKitWrapper === null) { + return; + } + this._arKitWrapper.stop(); + } else if (this._arCoreCanvas) { + this._xr._realityEls.removeChild(this._arCoreCanvas); + this._arCoreCanvas = null; + } else if (this._videoEl !== null) { + this._videoEl.pause(); + this._xr._realityEls.removeChild(this._videoEl); + } + } + }, { + key: '_handleARKitWatch', + value: function _handleARKitWatch(ev) { + if (ev.detail && ev.detail.objects) { + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = ev.detail.objects[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var anchorInfo = _step2.value; + + this._updateAnchorFromARKitUpdate(anchorInfo.uuid, anchorInfo); + try { + this.dispatchEvent(new CustomEvent(_Reality3.default.UPDATE_WORLD_ANCHOR, { + source: this, + detail: anchorInfo.uuid + })); + } catch (e) { + console.error('UPDATE_WORLD_ANCHOR event error', e); + } + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + } + + if (ev.detail && ev.detail.removedObjects) { + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = ev.detail.removedObjects[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var removedAnchor = _step3.value; + + try { + this.dispatchEvent(new CustomEvent(_Reality3.default.REMOVE_WORLD_ANCHOR, { + source: this, + detail: removedAnchor + })); + } catch (e) { + console.error('REMOVE_WORLD_ANCHOR event error', e); + } + this._deleteAnchorFromARKitUpdate(removedAnchor); + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + } + + if (ev.detail && ev.detail.newObjects) { + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; + + try { + for (var _iterator4 = ev.detail.newObjects[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var addedAnchor = _step4.value; + + try { + this.dispatchEvent(new CustomEvent(_Reality3.default.NEW_WORLD_ANCHOR, { + source: this, + detail: addedAnchor + })); + } catch (e) { + console.error('NEW_WORLD_ANCHOR event error', e); + } + } + } catch (err) { + _didIteratorError4 = true; + _iteratorError4 = err; + } finally { + try { + if (!_iteratorNormalCompletion4 && _iterator4.return) { + _iterator4.return(); + } + } finally { + if (_didIteratorError4) { + throw _iteratorError4; + } + } + } + } + } + }, { + key: '_deleteAnchorFromARKitUpdate', + value: function _deleteAnchorFromARKitUpdate(anchorUUID) { + this._anchors.delete(anchorUUID); + } + }, { + key: '_handleARKitAddObject', + value: function _handleARKitAddObject(anchorInfo) { + this._updateAnchorFromARKitUpdate(anchorInfo.uuid, anchorInfo); + } + }, { + key: '_updateAnchorFromARKitUpdate', + value: function _updateAnchorFromARKitUpdate(uid, anchorInfo) { + var anchor = this._anchors.get(uid) || null; + if (anchor === null) { + // console.log('unknown anchor', anchor) + return; + } + // This assumes that the anchor's coordinates are in the tracker coordinate system + anchor.coordinateSystem._relativeMatrix = anchorInfo.transform; + + // update internal data if any + switch (anchorInfo.type) { + case _ARKitWrapper2.default.ANCHOR_TYPE_PLANE: + anchor.center = anchorInfo.plane_center; + anchor.extent = [anchorInfo.plane_extent.x, anchorInfo.plane_extent.z]; + anchor.alignment = anchorInfo.plane_alignment; + anchor.geometry = anchorInfo.geometry; + break; + case _ARKitWrapper2.default.ANCHOR_TYPE_FACE: + if (anchorInfo.geometry) { + anchor.geometry.vertices = anchorInfo.geometry.vertices; + } + if (anchorInfo.blendShapes) { + anchor.updateBlendShapes(anchorInfo.blendShapes); + } + break; + case _ARKitWrapper2.default.ANCHOR_TYPE_ANCHOR: + break; + case _ARKitWrapper2.default.ANCHOR_TYPE_IMAGE: + break; + } + } + }, { + key: '_addAnchor', + value: function _addAnchor(anchor, display) { + var _this4 = this; + + // Convert coordinates to the tracker coordinate system so that updating from ARKit transforms is simple + if (this._arKitWrapper !== null) { + this._arKitWrapper.addAnchor(anchor.uid, anchor.coordinateSystem._poseModelMatrix).then(function (detail) { + return _this4._handleARKitAddObject(detail); + }); + } + // ARCore as implemented in the browser does not offer anchors except on a surface, so we just use untracked anchors + // We also use untracked anchors for in-browser display, with WebRTC + this._anchors.set(anchor.uid, anchor); + return anchor.uid; + } + + /* + Creates an anchor offset relative to a surface, as found by a ray + normalized screen x and y are in range 0..1, with 0,0 at top left and 1,1 at bottom right + returns a Promise that resolves either to an AnchorOffset with the first hit result or null if the hit test failed + */ + + }, { + key: '_findAnchor', + value: function _findAnchor(normalizedScreenX, normalizedScreenY, display) { + var _this5 = this; + + var testOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + return new Promise(function (resolve, reject) { + if (_this5._arKitWrapper !== null) { + // Perform a hit test using the ARKit integration + _this5._arKitWrapper.hitTest(normalizedScreenX, normalizedScreenY, testOptions || _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANES).then(function (hits) { + if (hits.length === 0) { + resolve(null); + // console.log('miss') + return; + } + var hit = _this5._pickARKitHit(hits); + + // if it's a plane + if (hit.anchor_transform) { + hit.anchor_transform[13] += _XRViewPose2.default.SITTING_EYE_HEIGHT; + hit.world_transform[13] += _XRViewPose2.default.SITTING_EYE_HEIGHT; + + // Use the first hit to create an XRAnchorOffset, creating the XRAnchor as necessary + + // TODO use XRPlaneAnchor for anchors with extents; hopefully the plane will have been created, tho + var anchor = _this5._getAnchor(hit.uuid); + if (anchor === null) { + var coordinateSystem = new XRCoordinateSystem(display, XRCoordinateSystem.TRACKER); + coordinateSystem._relativeMatrix = hit.anchor_transform; + anchor = new _XRAnchor2.default(coordinateSystem, hit.uuid); + _this5._anchors.set(anchor.uid, anchor); + } + + var offsetPosition = [hit.world_transform[12] - hit.anchor_transform[12], hit.world_transform[13] - hit.anchor_transform[13], hit.world_transform[14] - hit.anchor_transform[14]]; + var worldRotation = new _Quaternion2.default().setFromRotationMatrix(hit.world_transform); + var inverseAnchorRotation = new _Quaternion2.default().setFromRotationMatrix(hit.anchor_transform).inverse(); + var offsetRotation = new _Quaternion2.default().multiplyQuaternions(worldRotation, inverseAnchorRotation); + var anchorOffset = new _XRAnchorOffset2.default(anchor.uid); + anchorOffset.poseMatrix = _MatrixMath2.default.mat4_fromRotationTranslation(new Float32Array(16), offsetRotation.toArray(), offsetPosition); + resolve(anchorOffset); + } else { + var _coordinateSystem = new XRCoordinateSystem(display, XRCoordinateSystem.TRACKER); + _coordinateSystem._relativeMatrix = hit.world_transform; + var _anchor = new _XRAnchor2.default(_coordinateSystem, hit.uuid); + _this5._anchors.set(_anchor.uid, _anchor); + + var _anchorOffset = new _XRAnchorOffset2.default(_anchor.uid); + resolve(_anchorOffset); + } + }); + } else if (_this5._vrDisplay !== null) { + // Perform a hit test using the ARCore data + var hits = _this5._vrDisplay.hitTest(normalizedScreenX, normalizedScreenY); + if (hits.length == 0) { + resolve(null); + return; + } + hits.sort(function (a, b) { + return a.distance - b.distance; + }); + var anchor = _this5._getAnchor(hits[0].uuid); + if (anchor === null) { + var coordinateSystem = new XRCoordinateSystem(display, XRCoordinateSystem.TRACKER); + coordinateSystem._relativeMatrix = hits[0].modelMatrix; + coordinateSystem._relativeMatrix[13] += _XRViewPose2.default.SITTING_EYE_HEIGHT; + anchor = new _XRAnchor2.default(coordinateSystem); + _this5._anchors.set(anchor.uid, anchor); + } + resolve(new _XRAnchorOffset2.default(anchor.uid)); + } else { + resolve(null); // No platform support for finding anchors + } + }); + } + + /** + * Creates an ARReferenceImage in the ARKit native side + * @param uid the ID of the image to create + * @param buffer the base64 encoded image + * @param width + * @param height + * @param physicalWidthInMeters + * @returns a promise when the image has been created, error otherwise + * @private + */ + + }, { + key: '_createImageAnchor', + value: function _createImageAnchor(uid, buffer, width, height, physicalWidthInMeters) { + if (this._arKitWrapper) { + return this._arKitWrapper.createImageAnchor(uid, buffer, width, height, physicalWidthInMeters); + } else { + return null; + } + } + + /** + * _activateDetectionImage Uses the ARKit wrapper to add a new reference image to the set of detection images in the ARKit configuration object + * and runs the session again. The promise is resolved when the image is detected by ARKit + * @param uid The name (id) if the image to activate. It has to be previously created calling the "createImageAnchor" method + * @param display The current display + * @returns {Promise<any>} A promise resolved with the image transform in case of success, rejected with error otherwise + */ + + }, { + key: '_activateDetectionImage', + value: function _activateDetectionImage(uid, display) { + var _this6 = this; + + return new Promise(function (resolve, reject) { + if (_this6._arKitWrapper) { + _this6._arKitWrapper.activateDetectionImage(uid).then(function (aRKitImageAnchor) { + if (aRKitImageAnchor.activated === true) { + var coordinateSystem = new XRCoordinateSystem(display, XRCoordinateSystem.TRACKER); + coordinateSystem._relativeMatrix = aRKitImageAnchor.imageAnchor.transform; + var anchor = new _XRImageAnchor2.default(coordinateSystem, aRKitImageAnchor.imageAnchor.uuid); + _this6._anchors.set(aRKitImageAnchor.imageAnchor.uuid, anchor); + resolve(aRKitImageAnchor.imageAnchor.transform); + } else if (aRKitImageAnchor.error !== null) { + reject(aRKitImageAnchor.error); + } else { + reject(null); + } + }); + } else { + reject('ARKit not supported'); + } + }); + } + }, { + key: '_removeAnchor', + value: function _removeAnchor(uid) { + if (this._arKitWrapper) { + this._arKitWrapper.removeAnchor(uid); + } else if (this._getAnchor(uid)) { + this._anchors.delete(uid); + } + } + }, { + key: '_pickARKitHit', + value: function _pickARKitHit(data) { + if (data.length === 0) return null; + var info = null; + + var planeResults = data.filter(function (hitTestResult) { + return hitTestResult.type != _ARKitWrapper2.default.HIT_TEST_TYPE_FEATURE_POINT; + }); + var planeExistingUsingExtentResults = planeResults.filter(function (hitTestResult) { + return hitTestResult.type == _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANE_USING_EXTENT; + }); + var planeExistingResults = planeResults.filter(function (hitTestResult) { + return hitTestResult.type == _ARKitWrapper2.default.HIT_TEST_TYPE_EXISTING_PLANE; + }); + + if (planeExistingUsingExtentResults.length) { + // existing planes using extent first + planeExistingUsingExtentResults = planeExistingUsingExtentResults.sort(function (a, b) { + return a.distance - b.distance; + }); + info = planeExistingUsingExtentResults[0]; + } else if (planeExistingResults.length) { + // then other existing planes + planeExistingResults = planeExistingResults.sort(function (a, b) { + return a.distance - b.distance; + }); + info = planeExistingResults[0]; + } else if (planeResults.length) { + // other types except feature points + planeResults = planeResults.sort(function (a, b) { + return a.distance - b.distance; + }); + info = planeResults[0]; + } else { + // feature points if any + info = data[0]; + } + return info; + } + + /* + Found intersections with anchors and planes by a ray normalized screen x and y are in range 0..1, with 0,0 at top left and 1,1 at bottom right + returns an Array of VRHit + */ + + }, { + key: '_hitTestNoAnchor', + value: function _hitTestNoAnchor(normalizedScreenX, normalizedScreenY, display) { + if (this._arKitWrapper !== null) { + // Perform a hit test using the ARKit integration + var hits = this._arKitWrapper.hitTestNoAnchor(normalizedScreenX, normalizedScreenY); + for (var i = 0; i < hits.length; i++) { + hits[i].modelMatrix[13] += _XRViewPose2.default.SITTING_EYE_HEIGHT; + } + if (hits.length == 0) { + return null; + } + return hits; + } else if (this._vrDisplay !== null) { + // Perform a hit test using the ARCore data + var _hits = this._vrDisplay.hitTest(normalizedScreenX, normalizedScreenY); + for (var _i = 0; _i < _hits.length; _i++) { + _hits[_i].modelMatrix[13] += _XRViewPose2.default.SITTING_EYE_HEIGHT; + } + if (_hits.length == 0) { + return null; + } + return _hits; + } else { + // No platform support for finding anchors + return null; + } + } + }, { + key: '_getHasLightEstimate', + value: function _getHasLightEstimate() { + if (this._arKitWrapper !== null) { + return true; + } else { + return false; + } + } + }, { + key: '_getLightAmbientIntensity', + value: function _getLightAmbientIntensity() { + if (this._arKitWrapper !== null) { + this._lightEstimate.ambientIntensity = this._arKitWrapper.lightIntensity; + return this._lightEstimate.ambientIntensity; + } else { + // No platform support for ligth estimation + return null; + } + } + }, { + key: '_getWorldMappingStatus', + value: function _getWorldMappingStatus() { + if (this._arKitWrapper !== null) { + return this._arKitWrapper.worldMappingStatus; + } else { + // No platform support for ligth estimation + return null; + } + } + + /** + * retrieves a worldMap from the platform, if possible + * @returns a promise when the worldMap has been retrieved + * @private + */ + + }, { + key: '_getWorldMap', + value: function _getWorldMap() { + var _this7 = this; + + return new Promise(function (resolve, reject) { + if (_this7._arKitWrapper) { + _this7._arKitWrapper.getWorldMap().then(function (ARKitWorldMap) { + if (ARKitWorldMap.saved === true) { + resolve(ARKitWorldMap.worldMap); + } else if (ARKitWorldMap.error !== null) { + reject(ARKitWorldMap.error); + } else { + reject(null); + } + }); + } else { + reject('ARKit not supported'); + } + }); + } + + /** + * sets a worldMap for the platform, if possible + * @param worldMap a platform specific worldmap + * @returns a promise when the worldMap has been set + * @private + */ + + }, { + key: '_setWorldMap', + value: function _setWorldMap(worldMap) { + if (this._arKitWrapper) { + return this._arKitWrapper.setWorldMap(worldMap); + } else { + return new Promise(function (resolve, reject) { + reject(new Error('setWorldMap not supported')); + }); + } + } + }, { + key: '_getTimeStamp', + value: function _getTimeStamp(timestamp) { + if (this._arKitWrapper !== null) { + return this._arKitWrapper.timestamp; + } else { + // use performance.now() + //return ( performance || Date ).now(); + return timestamp; + } + } + /* + No floor in AR + */ + + }, { + key: '_findFloorAnchor', + value: function _findFloorAnchor(display) { + var uid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + return new Promise(function (resolve, reject) { + resolve(null); + }); + } + }]); + + return CameraReality; +}(_Reality3.default); + +exports.default = CameraReality; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/* + * Copyright 2017 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the 'License') + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var fragmentSource = '#extension GL_OES_EGL_image_external : require\n\nprecision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform samplerExternalOES uSampler;\n\nvoid main(void) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n}'; + +var vertexSource = 'attribute vec3 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void) {\n gl_Position = vec4(aVertexPosition, 1.0);\n vTextureCoord = aTextureCoord;\n}'; + +/** + * Creates and load a shader from a string, type specifies either 'vertex' or 'fragment' + * + * @param {WebGLRenderingContext} gl + * @param {string} str + * @param {string} type + * @return {!WebGLShader} + */ +function getShader(gl, str, type) { + if (type == 'fragment') { + var shader = gl.createShader(gl.FRAGMENT_SHADER); + } else if (type == 'vertex') { + var shader = gl.createShader(gl.VERTEX_SHADER); + } else { + return null; + } + + gl.shaderSource(shader, str); + gl.compileShader(shader); + + var result = gl.getShaderParameter(shader, gl.COMPILE_STATUS); + if (!result) { + console.error(gl.getShaderInfoLog(shader)); + return null; + } + + return shader; +} + +/** + * Creates a shader program from vertex and fragment shader sources + * + * @param {WebGLRenderingContext} gl + * @param {string} vs + * @param {string} fs + * @return {!WebGLProgram} + */ +function getProgram(gl, vs, fs) { + var vertexShader = getShader(gl, vs, 'vertex'); + var fragmentShader = getShader(gl, fs, 'fragment'); + if (!fragmentShader) { + return null; + } + + var shaderProgram = gl.createProgram(); + gl.attachShader(shaderProgram, vertexShader); + gl.attachShader(shaderProgram, fragmentShader); + gl.linkProgram(shaderProgram); + + var result = gl.getProgramParameter(shaderProgram, gl.LINK_STATUS); + if (!result) { + console.error('Could not initialise arview shaders'); + } + + return shaderProgram; +} + +/** + * Calculate the correct orientation depending on the device and the camera + * orientations. + * + * @param {number} screenOrientation + * @param {number} seeThroughCameraOrientation + * @return {number} + */ +function combineOrientations(screenOrientation, seeThroughCameraOrientation) { + var seeThroughCameraOrientationIndex = 0; + switch (seeThroughCameraOrientation) { + case 90: + seeThroughCameraOrientationIndex = 1; + break; + case 180: + seeThroughCameraOrientationIndex = 2; + break; + case 270: + seeThroughCameraOrientationIndex = 3; + break; + default: + seeThroughCameraOrientationIndex = 0; + break; + } + var screenOrientationIndex = 0; + switch (screenOrientation) { + case 90: + screenOrientationIndex = 1; + break; + case 180: + screenOrientationIndex = 2; + break; + case 270: + screenOrientationIndex = 3; + break; + default: + screenOrientationIndex = 0; + break; + } + var ret = screenOrientationIndex - seeThroughCameraOrientationIndex; + if (ret < 0) { + ret += 4; + } + return ret % 4; +} + +/** + * Renders the ar camera's video texture + */ + +var ARVideoRenderer = function () { + /** + * @param {VRDisplay} vrDisplay + * @param {WebGLRenderingContext} gl + */ + function ARVideoRenderer(vrDisplay, gl) { + _classCallCheck(this, ARVideoRenderer); + + this.vrDisplay = vrDisplay; + this.gl = gl; + this.passThroughCamera = vrDisplay.getPassThroughCamera(); + this.program = getProgram(gl, vertexSource, fragmentSource); + + gl.useProgram(this.program); + + // Setup a quad + this.vertexPositionAttribute = gl.getAttribLocation(this.program, 'aVertexPosition'); + this.textureCoordAttribute = gl.getAttribLocation(this.program, 'aTextureCoord'); + + this.samplerUniform = gl.getUniformLocation(this.program, 'uSampler'); + + this.vertexPositionBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBuffer); + var vertices = [-1.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, 1.0, 0.0, 1.0, -1.0, 0.0]; + var f32Vertices = new Float32Array(vertices); + gl.bufferData(gl.ARRAY_BUFFER, f32Vertices, gl.STATIC_DRAW); + this.vertexPositionBuffer.itemSize = 3; + this.vertexPositionBuffer.numItems = 12; + + this.textureCoordBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, this.textureCoordBuffer); + // Precalculate different texture UV coordinates depending on the possible + // orientations of the device depending if there is a VRDisplay or not + var textureCoords = null; + if (this.vrDisplay) { + var u = this.passThroughCamera.width / this.passThroughCamera.textureWidth; + var v = this.passThroughCamera.height / this.passThroughCamera.textureHeight; + textureCoords = [[0.0, 0.0, 0.0, v, u, 0.0, u, v], [u, 0.0, 0.0, 0.0, u, v, 0.0, v], [u, v, u, 0.0, 0.0, v, 0.0, 0.0], [0.0, v, u, v, 0.0, 0.0, u, 0.0]]; + } else { + textureCoords = [[0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0], [1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0], [1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0], [0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0]]; + } + + this.f32TextureCoords = []; + for (var i = 0; i < textureCoords.length; i++) { + this.f32TextureCoords.push(new Float32Array(textureCoords[i])); + } + // Store the current combined orientation to check if it has changed + // during the update calls and use the correct texture coordinates. + this.combinedOrientation = combineOrientations(screen.orientation.angle, this.passThroughCamera.orientation); + + gl.bufferData(gl.ARRAY_BUFFER, this.f32TextureCoords[this.combinedOrientation], gl.STATIC_DRAW); + this.textureCoordBuffer.itemSize = 2; + this.textureCoordBuffer.numItems = 8; + gl.bindBuffer(gl.ARRAY_BUFFER, null); + + this.indexBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer); + var indices = [0, 1, 2, 2, 1, 3]; + var ui16Indices = new Uint16Array(indices); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, ui16Indices, gl.STATIC_DRAW); + this.indexBuffer.itemSize = 1; + this.indexBuffer.numItems = 6; + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); + + this.texture = gl.createTexture(); + gl.useProgram(null); + + // The projection matrix will be based on an identify orthographic camera + this.projectionMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; + this.mvMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; + return this; + } + + /** + * Renders the quad + */ + + + _createClass(ARVideoRenderer, [{ + key: 'render', + value: function render() { + var gl = this.gl; + gl.useProgram(this.program); + gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexPositionBuffer); + gl.enableVertexAttribArray(this.vertexPositionAttribute); + gl.vertexAttribPointer(this.vertexPositionAttribute, this.vertexPositionBuffer.itemSize, gl.FLOAT, false, 0, 0); + + gl.bindBuffer(gl.ARRAY_BUFFER, this.textureCoordBuffer); + + // Check the current orientation of the device combined with the + // orientation of the VRSeeThroughCamera to determine the correct UV + // coordinates to be used. + var combinedOrientation = combineOrientations(screen.orientation.angle, this.passThroughCamera.orientation); + if (combinedOrientation !== this.combinedOrientation) { + this.combinedOrientation = combinedOrientation; + gl.bufferData(gl.ARRAY_BUFFER, this.f32TextureCoords[this.combinedOrientation], gl.STATIC_DRAW); + } + gl.enableVertexAttribArray(this.textureCoordAttribute); + gl.vertexAttribPointer(this.textureCoordAttribute, this.textureCoordBuffer.itemSize, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + gl.bindTexture(gl.TEXTURE_EXTERNAL_OES, this.texture); + // Update the content of the texture in every frame. + gl.texImage2D(gl.TEXTURE_EXTERNAL_OES, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, this.passThroughCamera); + gl.uniform1i(this.samplerUniform, 0); + + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer); + + gl.drawElements(gl.TRIANGLES, this.indexBuffer.numItems, gl.UNSIGNED_SHORT, 0); + + // Disable enabled states to allow other render calls to correctly work + gl.bindTexture(gl.TEXTURE_EXTERNAL_OES, null); + gl.disableVertexAttribArray(this.vertexPositionAttribute); + gl.disableVertexAttribArray(this.textureCoordAttribute); + gl.bindBuffer(gl.ARRAY_BUFFER, null); + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); + gl.useProgram(null); + } + }]); + + return ARVideoRenderer; +}(); + +/** + * A helper class that takes a VRDisplay with AR capabilities + * and renders the see through camera to the passed in WebGL context. + */ + + +var ARCoreCameraRenderer = function () { + function ARCoreCameraRenderer(vrDisplay, gl) { + _classCallCheck(this, ARCoreCameraRenderer); + + this.vrDisplay = vrDisplay; + this.gl = gl; + + this.videoRenderer = new ARVideoRenderer(vrDisplay, this.gl); + + // Cache the width/height so we're not potentially forcing + // a reflow if there's been a style invalidation + this.width = window.innerWidth; + this.height = window.innerHeight; + window.addEventListener('resize', this.onWindowResize.bind(this), false); + } + + /** + * Updates the stored width/height of window on resize. + */ + + + _createClass(ARCoreCameraRenderer, [{ + key: 'onWindowResize', + value: function onWindowResize() { + this.width = window.innerWidth; + this.height = window.innerHeight; + } + + /** + * Renders the see through camera to the passed in gl context + */ + + }, { + key: 'render', + value: function render() { + var gl = this.gl; + var dpr = 1; + var width = this.width * dpr; + var height = this.height * dpr; + + if (gl.viewportWidth !== width) { + gl.viewportWidth = width; + } + + if (gl.viewportHeight !== height) { + gl.viewportHeight = height; + } + + this.gl.viewport(0, 0, gl.viewportWidth, gl.viewportHeight); + this.videoRenderer.render(); + } + }]); + + return ARCoreCameraRenderer; +}(); + +exports.default = ARCoreCameraRenderer; + +/***/ }) +/******/ ]); +XRDisplay = window.XRDisplay +XRSession = window.XRSession +XRSessionCreateParameters = window.XRSessionCreateParameters +Reality = window.Reality +XRPointCloud = window.XRPointCloud +XRLightEstimate = window.XRLightEstimate +XRAnchor = window.XRAnchor; +XRPlaneAnchor = window.XRPlaneAnchor; +XRFaceAnchor = window.XRFaceAnchor; +XRImageAnchor = window.XRImageAnchor; +XRAnchorOffset = window.XRAnchorOffset; +XRStageBounds = window.XRStageBounds; +XRStageBoundsPoint = window.XRStageBoundsPoint; +XRPresentationFrame = window.XRPresentationFrame; +XRView = window.XRView; +XRViewport = window.XRViewport; +XRCoordinateSystem = window.XRCoordinateSystem; +XRViewPose = window.XRViewPose; +XRLayer = window.XRLayer; +XRWebGLLayer = window.XRWebGLLayer; +XRVideoFrame = window.XRVideoFrame; diff --git a/webxr/textures/vending_m_baseColor.jpeg b/webxr/textures/vending_m_baseColor.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5f1fa1f9f700f4706c69a4d9e2da21312b84e746 GIT binary patch literal 6492 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 SUp)1MLF8Az*!!CL|2F}&_z=wi literal 0 HcmV?d00001 -- GitLab